1. 程式人生 > >Es叢集搭建及日誌指令碼

Es叢集搭建及日誌指令碼

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