關注:CodingTechWork
引言
??在使用 Elasticsearch (ES) 和 Kibana 構建數據存儲和分析系統時,索引模板、索引和索引別名的管理是關鍵步驟。本文將詳細介紹如何通過 RESTful API 和 Kibana Dev Tools 創建索引模板、索引以及索引別名,并提供具體的示例代碼和操作步驟。
索引模板的創建
??索引模板是 Elasticsearch 中用于定義索引結構和設置的模板。它可以幫助我們為一組索引設置統一的分片數量、副本數量、字段映射等配置,從而簡化索引的管理。
創建索引模板的 API 請求
??創建索引模板的請求方式為 PUT,請求路徑為 /_template/<template_name>
。請求體中需要定義 index_patterns
、settings
和 mappings
等內容。
- 示例代碼
PUT /_template/template_demo_01
{"index_patterns": ["demo_*"],"settings": {"number_of_shards": 3,"number_of_replicas": 1},"mappings": {"properties": {"message": {"type": "text"},"timestamp": {"type": "date"},"severity": {"type": "keyword"}}}
}
通過 Kibana Dev Tools 創建索引模板
??在 Kibana 的 Dev Tools 中,可以直接粘貼上述代碼并執行。執行成功后,Elasticsearch 會返回一個包含 acknowledged 字段的響應,表示模板已成功創建。
#! Legacy index templates are deprecated in favor of composable templates.
{"acknowledged": true
}
索引的創建
??索引是 Elasticsearch 中存儲數據的基本單位。通過創建索引,我們可以定義數據的存儲結構和查詢方式。上面已經創建了模板,我們只需要demo_
開頭創建索引即可,會復用模板結構。
創建索引的 API 請求
??創建索引的請求方式為 PUT,請求路徑為 <index_name>
。請求體中可以指定索引的 settings
和 mappings
,如果不指定,則會使用默認值或匹配到的索引模板中的配置。
- 示例代碼
PUT demo_logs_202504
通過 Kibana Dev Tools 創建索引
??在 Kibana 的 Dev Tools 中,粘貼上述代碼并執行。執行成功后,Elasticsearch 會返回一個包含 acknowledged 字段的響應,表示索引已成功創建。
{"acknowledged": true,"shards_acknowledged": true,"index": "demo_logs_202504"
}
查看索引結構
GET demo_logs_202504
索引別名的創建
??索引別名是為索引提供一個別名,方便管理和查詢。通過別名,我們可以更靈活地操作索引,而無需直接使用索引名稱。
創建索引別名的 API 請求
??創建索引別名的請求方式為 POST,請求路徑為 /_aliases
。請求體中需要定義 actions,包含 add 或 remove 操作。
示例代碼
POST /_aliases
{"actions": [{"add": {"index": "demo_logs_202504","alias": "demo_logs_read"}},{"add": {"index": "demo_logs_202504","alias": "demo_logs_write"}}]
}
通過 Kibana Dev Tools 創建索引別名
??在 Kibana 的 Dev Tools 中,粘貼上述代碼并執行。執行成功后,Elasticsearch 會返回一個包含 acknowledged 字段的響應,表示別名已成功創建。
{"acknowledged": true
}
查看別名
GET demo_logs_202504/_alias
{"demo_logs_202504": {"aliases": {"demo_logs_read": {},"demo_logs_write": {}}}
}
總結
??通過本文的介紹,我們了解了如何在 Elasticsearch 和 Kibana 中創建索引模板、索引和索引別名。通過 RESTful API 和 Kibana Dev Tools,我們可以靈活地管理索引結構和別名,從而提高數據管理和查詢的效率。