Es叢集搭建及日誌指令碼
阿新 • • 發佈:2018-12-19
1.場景還原
近日,筆者專案中需要做系統化的日誌採集,筆者靈機一動,elk最好不過;今天筆者就es叢集搭建作此分享
2.實現方案
①筆者整合的是elasticsearch-2.4.6,下載對應的tar包
②叢集配置
節點1配置:
cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["120.26.128.151:9300", "120.26.52.240:9300"]
節點2配置:
cluster.name: elasticsearch node.name: node-2 network.host: 0.0.0.0 http.port: 9200 discovery.zen.ping.unicast.hosts: ["120.26.128.151:9300", "120.26.52.240:9300"]
效果圖
3.日誌刪除指令碼編寫
如上圖,定期的清理日誌檔案十分重要,這裡筆者就清理三天前的es日誌指令碼為例
#!/bin/bash source /etc/profile #定義刪除3天以前的函式 delete_indices(){ check_day=`date -d '-3 days' '+%F'` index_day=$1 #將日期轉換為時間戳 check_day_timestamp=`date -d "$check_day" +%s` index_day_timestamp=`date -d "$index_day" +%s` #當索引的時間戳值小於當前日期3天前的時間戳時,刪除此索引 if [ ${index_day_timestamp} -lt ${check_day_timestamp} ];then #轉換日期格式 format_date=`echo $1 | sed 's/-/\./g'` curl -XDELETE http://120.26.52.240:9200/*$format_date fi } curl -XGET http://120.26.52.240:9200/_cat/indices | awk -F" " '{print $3}' | awk -F"-" '{print $NF}' | egrep "[0-9]*\.[0-9]*\.[0-9]*" | sort | uniq | sed 's/\./-/g' | while read LINE do #呼叫索引刪除函式 delete_indices $LINE done
es叢集優化,關注博主下期更博;
我是張星,歡迎加入博主技術交流群,群號:526601468