由於公司需要管理平臺,方便維護。需要搭建EKL這套系統,所以做了一個來測試。
這個日誌環境的搭建,比較簡單,並且可視化顯示。因爲網上很多關於ELK的安裝,配置之類的文章,這裏就不再過多的贅述了。主要講解整體思路,因爲我開始也是知道有ELK這麼個東西,並不知道從項目生產日誌到怎麼可視化出來。這裏也要感謝下我曾哥,給我講了很多東西,在此也記錄一下,希望能幫到一部分人。
整體流程 日誌(項目的日誌文件) -> filebeat -> logstash -> es -> es-head(一般調試用)或者kibana 展示
實際項目還用了kafka 用作緩衝,filebeat提取數據先存到kafka,再存到logstash
第一步:安裝ES,具體步奏省略。
第二步:安裝logstash,在你的/logstash/config添加一個配置文件: logstash-es.conf
目的是從filebeat讀取數據,存到es
logstash-es.conf主體內容:
input {
stdin { }
beats {
port => 5044
}
}
output {
elasticsearch {
action => "index"
hosts => "你的es的ip地址:9200"
index => "logstash-%{+YYYY-MM}"
}
stdout { codec=> "rubydebug" }
}
第三步:安裝filebeat 並在你的filebeat目錄下修改filebeat.yml 文件
上面是從什麼地方讀取;
下面是要輸出到什麼地方去;
現在很多配置都用不到,但是默認情況下並沒有全部用 # 註釋掉,所以要將剩餘配置全部用 # 號註釋掉。
第四步:安裝es-head;
第五步:安裝kibana;
在你的/config目錄下 修改kibana.yml 各項配置如下(我忘了是不是默認的了,好像是默認就這樣,wow 塗改那裏是你安裝kibana的ip地址 )
第五步: 啓動ELK, 建議每啓動一個就新建一個linux窗口(我用的SecureCRT),方便查看啓動信息,剛開始你可能看不懂,你多操作一段時間,就能慢慢懂了,後面可以直接後臺啓動。
1、elasticsearch 用rootes用戶在bin目錄下面輸入 ./elasticsearch 命令啓動 訪問http://你的ip地址:9200/ 測試是否成功,頁面顯示json則成功;rootes用戶是因爲es不支持root啓動,所以要建一個專門的es的用戶來操作
2、logstash啓動的時候需要指定配置文件啓動 (啓動較慢)
bin目錄下面輸入 ./logstash -f ../config/logstash-es.conf 啓動 logstash-es.conf就是剛剛修改的配置文件
3、filebeat 啓動 bin目錄下面輸入 ./filebeat -e -c filebeat.yml 啓動
4、在elasticsearch-head目錄下# npm run start 訪問 http://你的ip地址:9100/ 測試是否成功
如果你配置成功,在數據瀏覽頁面,點擊索引就會出現你的日誌文件信息。(我也沒有設置什麼索引,默認就是這樣)
點擊右邊的日誌文件 就會有詳細的日誌信息:
很多信息,其實好多項都沒用,對於我們有用的就只有message,或者其他時間什麼的(看具體需求)。不需要的項可以在logstash的logstash.conf配置文件設置filter過濾條件,將不需要的項剔除掉,以後再補充吧。
5、kibana 直接bin下面 ./kibana啓動 訪問http://你的ip地址:5601
點擊綠色箭頭查詢 右邊就出現你的日誌文件信息
補充:
安裝過程或者啓動過程中會有很多問題,絕大部分都能直接百度到解決方法(起碼我就是這樣),我只是將ELK連成一條線,梳理出一條思路,具體能幹嘛用,這個東西。
測試日誌文件,你直接隨便複製一些.log文件到filebeat 讀取的文件目錄下就行了,用來測試。
有時候軟件啓動錯誤,但是端口號是佔用的,用netstat -tunlp|grep ‘端口號‘ 來查詢進程,然後kill -9 殺死,再重啓就行了。