elk(elasticsearch+logstash+kibana)安裝入坑
關於日誌,大家應該都有所瞭解,日誌的作用是為了排查問題,尤其是突發的問題,或者提供監控報警功能。傳統的日誌監控,都是在生產機上通過命令grep或less等命令查詢日誌檔案,當伺服器叢集,數量多的時候,傳統方式效率低下,無法及時確定問題,難以監控。最近公司打算優化日誌監控,查閱大量資源,發現了一款開源日誌系統-elasticsearch+logstash+kibana。
下面大致介紹一下elk的三大部分(由於水平有限,採用百科和官網解釋):
Elasticsearch(資料儲存):
ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。設計用於
Logstash(蒐集、資料轉換、傳輸):
Logstash 是開源的伺服器端資料處理管道,能夠同時從多個來源採集資料,轉換資料,然後將資料傳送到您最喜歡的 “儲存庫” 中。logstash具有三大元件—input、filter、output,input用來接收各種各樣的資料,filter用來格式化資料,output輸出資料到我們指定的地方。這裡我們使用elasticsearch來作為我們的儲存庫。
Kibana(日誌視覺化):
Kibana是一個開源的分析與視覺化平臺,被設計與Elasticsearch一起使用。可以搜尋、檢視、互動(crud)存放在Elasticsearch索引裡的資料,使用各種不同的圖表、表格、地圖等kibana能夠很輕易地展示高階資料分析與視覺化。
粗略介紹這三大工具的作用,至於具體使用,這裡不是重點,也不是一兩句話能夠說清楚的,現在,我們先搭建出一個elk的環境,後續相關操作,再慢慢詳談。只要大家環境能夠搭建正確,怎麼使用,肯定難不倒大家的。
下面是一個正常安裝流程,入坑開始:
Elasticsearch安裝:
首先,我們開始下載最新elasticsearch(路徑:/usr/local/):
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
解壓:
[[email protected] local]# tar -zvxf elasticsearch-6.2.4.tar.gz
進入bin目錄,進行執行:
[[email protected] local]# cd elasticsearch-6.2.4/
[[email protected] elasticsearch-6.2.4]# ./bin/elasticsearch
這時,大家會發現如下錯誤:
從錯誤中,可以看出,elasticsearch不允許使用root賬戶進行啟動,我們需要建立新的使用者。
[[email protected] elasticsearch-6.2.4]# useradd elk
使用新使用者啟動,會報使用者沒有相應許可權:
切換root配置許可權,然後使用elk賬戶啟動:
[[email protected] elasticsearch-6.2.4]# chown -R elk:elk /usr/local/elasticsearch-6.2.4
如果啟動時,報出:
編輯 /etc/security/limits.conf,追加以下內容;
* soft nofile 65536
* hard nofile 65536
編輯 /etc/sysctl.conf,追加以下內容:
vm.max_map_count=262144
重新啟動,elasticsearch啟動成功,如果想要外網訪問,開啟遠端訪問:
[[email protected] elasticsearch-6.2.4]# vi config/elasticsearch.yml
訪問9200埠,如開啟遠端還不能訪問,關閉防火牆或開啟9200埠:
另外,Elasticsearch後臺啟動:
[[email protected] elasticsearch-6.2.4]# ./bin/elasticsearch -d
Kibana安裝:
開始下載最新安裝包(路徑:/usr/local/):
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz
解壓:
[[email protected] local]# tar -zvxf kibana-6.2.4-linux-x86_64.tar.gz
後臺啟動:
[[email protected] kibana-6.2.4-linux-x86_64]# ./bin/kibana &
如需外網訪問,開啟遠端,如果外網不能訪問,關閉防火牆或開啟5601埠:
訪問5601埠,表示配置成功:
logstash安裝:
開始下載最新安裝包(路徑:/usr/local/):
[[email protected] local]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz
解壓:
[[email protected] local]# tar -zvxf logstash-6.2.4.tar.gz
進入config目錄,新增logstash.conf配置檔案:
- input {
- tcp {
- host => "192.168.159.129"
- port => 4560
- mode => "server"
- tags => ["tags"]
- ##格式json
- codec => json_lines
- }
- }
- output {
- elasticsearch {
- hosts => "192.168.159.129:9200"
- #指定索引名字
- index => "applog"
- }
- stdout { codec => rubydebug}
- }
特別注意,其中的ip地址(192.168.159.129)換成本機ip地址,不能使用localhost或者127.0.0.1,否則連線不上本機的elasticsearch。
啟動logstash:
[[email protected] logstash-6.2.4]# ./bin/logstash -f config/logstash.conf
這是筆者關於elk安裝的一些心得,如果有不對的地方,希望大家能夠指正,謝謝大家。