1. 程式人生 > >elk(elasticsearch+logstash+kibana)安裝入坑

elk(elasticsearch+logstash+kibana)安裝入坑

關於日誌,大家應該都有所瞭解,日誌的作用是為了排查問題,尤其是突發的問題,或者提供監控報警功能。傳統的日誌監控,都是在生產機上通過命令grep或less等命令查詢日誌檔案,當伺服器叢集,數量多的時候,傳統方式效率低下,無法及時確定問題,難以監控。最近公司打算優化日誌監控,查閱大量資源,發現了一款開源日誌系統-elasticsearch+logstash+kibana。

下面大致介紹一下elk的三大部分(由於水平有限,採用百科和官網解釋):

Elasticsearch(資料儲存):

ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。設計用於

雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。基於elasticsearch搜尋速度快、零配置等特點,我們使用它作為資料儲存,來提高日誌查詢速度。

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配置檔案:

  1. input {
  2. tcp {
  3. host => "192.168.159.129"
  4. port => 4560
  5. mode => "server"
  6. tags => ["tags"]
  7. ##格式json
  8. codec => json_lines
  9. }
  10. }
  11. output {
  12. elasticsearch {
  13. hosts => "192.168.159.129:9200"
  14. #指定索引名字
  15. index => "applog"
  16. }
  17. stdout { codec => rubydebug}
  18. }

特別注意,其中的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安裝的一些心得,如果有不對的地方,希望大家能夠指正,謝謝大家。