用elk+filebeat監控容器日志


elk  為 elasticsearch(查詢搜索引擎),logstash(對日志進行分析和過濾,然后轉發給elasticsearch),kibana(一個web圖形界面用於可視化elasticsearch數據)縮寫

1.安裝docker環境

2. 准備鏡像

拉取 elk鏡像,我們用sebp/elk

docker  pull  sebp/elk,

3. 啟動容器

docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk  -d

-p 端口映射,5601為kibana 使用,9200為elasticsearch使用,5044為logstash使用

-d 守護進程運行容器

在瀏覽器輸入hostip:5601

正常情況下會顯示界面,但是沒有日志,因為還沒有收集日志信息,我們要做的是將docker的日志導入elk.

4.安裝filebeat

我們知道docker 會將容器日志記錄到 /var/lib/docker/containers/id/id-json.log

只要將此文件發給elk就可以實現日志管理,elk提供了一個配套工具filebeat,轉發日志和監控日志文件

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.1-x86_64.rpm

rpm -ivh  filebeat-6.1.1-x86_64.rpm

修改配置文件

cd /etc/filebeat

vim  filebeat.yml

enable   改為 true

paths:改為

- /var/lib/docker/container/*/*.log

- /var/log/syslog

 啟動filebeat,systemctl   start   filebeat

進入ELK容器,修改cd /etc/logstash/conf.d/

vim  02-beats-input.conf

下三行刪除掉,意思是否使用證書,本例是不使用證書的,如果你需要使用證書,將logstash.crt拷貝到客戶端,然后在filebeat.yml里面添加路徑即可

    ssl => true
    ssl_certificate => "/pki/tls/certs/logstash.crt"
    ssl_key => "/pki/tls/private/logstash.key"

注意:sebp/elk docker是自建立了一個證書logstash.crt,默認使用*通配配符,如果你使用證書,filebeat.yml使用的服務器地址必須使用域名,不能使用IP地址,否則會報錯,這個坑是我踩后得出來的心得,說見官網文檔說明即可

5.

打開kibana管理頁面:http://ip:5601  新建filebeat-*

這時我們啟動容器,就可以在kibana看到有新的日志輸出。

在此,我們只是對elk的部分功能進行了說明。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM