一般提到監控,很多人就會想到監控服務器運行狀態,網絡運行狀態。其實由于業務需要,服務器和網絡設備每時每刻產生的海量日志也同樣的重要。
為什么選用ELK?
- 首先我們來了解一下ELK:
ELK是Elasticsearch、Logstash、Kibana的簡稱,這三者是核心套件,但并非全部。
Elasticsearch是實時全文搜索和分析引擎,提供搜集、分析、存儲數據三大功能;是一套開放REST和JAVA API等結構提供高效搜索功能,可擴展的分布式系統。它構建于Apache Lucene搜索引擎庫之上。
Logstash是一個用來搜集、分析、過濾日志的工具。它支持幾乎任何類型的日志,包括系統日志、錯誤日志和自定義應用程序日志。它可以從許多來源接收日志,這些來源包括 syslog、消息傳遞(例如 RabbitMQ)和JMX,它能夠以多種方式輸出數據,包括電子郵件、websockets和Elasticsearch。
Kibana是一個基于Web的圖形界面,用于搜索、分析和可視化存儲在 Elasticsearch指標中的日志數據。它利用Elasticsearch的REST接口來檢索數據,不僅允許用戶創建他們自己的數據的定制儀表板視圖,還允許他們以特殊的方式查詢和過濾數據。
- ELK的優勢
1.開源免費
ELK是屬于免費開源軟件,在初期使用階段無需承擔高額的軟件費用。
2.分布式部署以及擴容方便
Elasticsearch的高度擴展性,這一點類似于Ceph,能夠在新節點加入以后,索引index會自動在新節點平衡。擺脫了以往單節點性能瓶頸。
3.用途
ELK開源解決方案開源用在故障排查、監控預警、關聯事件、數據分析等等,用途及其廣泛。
linux部署ELK
本次Linux采用centos7.6來部署ELK。
[root@elk ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
和之前文章類似,這次我還是采用Docker,(原因就是無需部署各種環境)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 安裝Elasticsearch
先去docker官網獲取最新的Elasticsearch鏡像,如下圖最新版本是7.9.3
拉取最新的Elasticsearch鏡像:
docker pull elasticsearch:7.9.3
創建網絡,讓其他組件運行在同一個網絡下:
docker network create yunweichongzi
運行elasticsearch容器:
docker run -d --name elasticsearch --net yunweichongzi -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.9.3
瀏覽器或者用curl訪問IP+9200端口,出現如下圖的提示代表elasticsearch安裝成功。
2.安裝Kibana
同樣拉取kibana鏡像,注意一定要和elasticsearch的版本一致。
docker pull kibana:7.9.3
運行kibana容器。
docker run -d --name kibana --net yunweichongzi -p 5601:5601 kibana:7.9.3
通過瀏覽器訪問ip+5601,訪問到下面的頁面代表安裝成功。
3.安裝Logstash
拉取同版本的鏡像
docker pull logstash:7.9.3
創建兩個文件一個是logstash.yml,另一個是test.conf
cat logstash.yml
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
cat conf.d/test.conf
input {
beats {
port => 5044
codec => "json"
}
}
output {
elasticsearch { hosts => ["172.18.0.2:9200"] }
stdout { codec => rubydebug }
}
cat conf.d/test.conf
input {
beats {
port => 5044
codec => "json"
}
}
output {
elasticsearch { hosts => ["172.18.0.2:9200"] }
stdout { codec => rubydebug }
}
啟動kibana容器:
docker run -it -d -p 5044:5044 --name logstash --network yunweichongzi --privileged=true -v /root/elk/logstash.yml:/usr/share/logstash/config/logstash.yml -v /root/elk/conf.d/:/usr/share/logstash/conf.d/ logstash:7.9.3
最后檢查一下容器運行情況。到此ELK就安裝完成了,但是還缺一個filebeat(這個等下一篇文章檢索日志的時候安裝)。
出現上圖界面以后就可以了。
windows安裝了ELK
是不是覺得Linux太麻煩,Windows版的就簡單了。這里為了篇幅就不詳細一步一步截圖了。
Windows版的elk安裝官網有詳細的教程:
下載圖中的軟件,進行安裝,然后按照官網的提示即可運行ELK
總結
無論是通過Linux還是windows安裝,都是可以達到對日志進行監控的目的。下一篇文章就會詳細的介紹如何使用ELK對服務器日志,網站日志,服務日志進行監控與告警。
希望大家能夠多多關注,多年致力于互聯網搬磚,各種互聯網技術都稍有涉獵。如果大家遇到一些問題可以私信或者留言給我。我們可以一起討論!