用elk+filebeat監控容器日誌

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

1.安裝docker環境docker

2. 準備鏡像json

拉取 elk鏡像,咱們用sebp/elkvim

docker  pull  sebp/elk,瀏覽器

3. 啓動容器服務器

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

-p 端口映射,5601爲kibana 使用,9200爲elasticsearch使用,5044爲logstash使用工具

-d 守護進程運行容器搜索引擎

在瀏覽器輸入hostip:5601spa

正常狀況下會顯示界面,可是沒有日誌,由於尚未收集日誌信息,咱們要作的是將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的部分功能進行了說明。

相關文章
相關標籤/搜索