一、集群節點信息
通過 Ansible inventory 定義的集群節點分組如下:
-
[es](Elasticsearch 節點)
- 192.168.100.150
- 192.168.100.151
- 192.168.100.152
-
[logstash](Logstash 節點)
- 192.168.100.151
-
[kibana](Kibana 節點)
- 192.168.100.150
二、集群啟動腳本(es_start.sh)
1. 腳本功能
通過 Ansible 批量啟動集群組件,遵循依賴順序啟動原則,確保組件間協作正常。
2. 啟動順序及說明
#!/bin/bash# 1. 先啟動Elasticsearch(核心存儲組件,需等待集群就緒)
echo "===== 啟動Elasticsearch集群 ====="
ansible es -m shell -a "systemctl start elasticsearch && systemctl status elasticsearch | grep 'Active:'"# 等待Elasticsearch集群初始化(根據集群規模調整等待時間)
echo -e "\n===== 等待Elasticsearch集群就緒(60秒) ====="
sleep 60# 檢查Elasticsearch集群健康狀態
echo -e "\n===== 檢查Elasticsearch集群健康狀態 ====="
ansible es[0] -m shell -a "curl -s -u elastic:your_elastic_password 'http://192.168.100.150:9200/_cluster/health' | jq .status"# 2. 啟動Kibana(依賴Elasticsearch)
echo -e "\n===== 啟動Kibana組件 ====="
ansible kibana -m shell -a "systemctl start kibana && systemctl status kibana | grep 'Active:'"# 3. 最后啟動Logstash(數據采集組件,依賴Elasticsearch接收數據)
echo -e "\n===== 啟動Logstash組件 ====="
ansible logstash -m shell -a "systemctl start logstash && systemctl status logstash | grep 'Active:'"echo -e "\n===== 集群啟動完成 ====="
3. 啟動邏輯說明
- 優先啟動 Elasticsearch:作為核心存儲組件,需先確保集群就緒(通過 60 秒等待和健康狀態檢查)。
- 其次啟動 Kibana:Kibana 依賴 Elasticsearch 提供數據,需在 ES 就緒后啟動。
- 最后啟動 Logstash:Logstash 負責數據采集,需在 ES 可用后啟動以避免數據丟失。
三、集群停止腳本(es_stop.sh)
1. 腳本功能
通過 Ansible 批量停止集群組件,遵循反向依賴順序,確保數據安全。
2. 停止順序及說明
#!/bin/bash# 1. 先停止Logstash(數據采集組件,避免新數據寫入)
echo "===== 停止Logstash組件 ====="
ansible logstash -m shell -a "systemctl stop logstash && systemctl status logstash | grep 'Active:'"# 2. 停止Kibana(可視化組件,不影響數據存儲)
echo -e "\n===== 停止Kibana組件 ====="
ansible kibana -m shell -a "systemctl stop kibana && systemctl status kibana | grep 'Active:'"# 3. 最后停止Elasticsearch(核心存儲組件,確保數據寫入完成)
echo -e "\n===== 停止Elasticsearch集群 ====="
ansible es -m shell -a "systemctl stop elasticsearch && systemctl status elasticsearch | grep 'Active:'"echo -e "\n===== 集群停止完成 ====="
3. 停止邏輯說明
- 先停止 Logstash:避免新數據持續寫入,確保現有數據已處理完畢。
- 再停止 Kibana:Kibana 僅用于可視化,停止后不影響數據存儲。
- 最后停止 Elasticsearch:確保所有數據已落盤,避免強制停止導致數據損壞。
四、腳本使用說明
- 權限設置:確保腳本可執行
chmod +x es_start.sh es_stop.sh
- 啟動集群:
./es_start.sh
- 停止集群:
./es_stop.sh
- 注意事項:
- 替換腳本中的
your_elastic_password
為實際 Elasticsearch 密碼。 - 可根據集群規模調整
sleep 60
的等待時間(節點越多,可能需要更長時間)。 - 腳本通過
grep 'Active:'
實時輸出組件狀態,便于確認操作結果。
- 替換腳本中的