EFK的安裝和收集docker容器日志展示


在用戶根目錄創建個filebeat.docker.yml文件,文件內容如下

filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false

filebeat.autodiscover:
  providers:
    - type: docker
      templates:
        - condition:
            contains:
              docker.container.labels.collectLog: "true"
          config:
            - type: container
              paths:
                - /var/lib/docker/containers/${data.docker.container.id}/*.log


processors:
- add_cloud_metadata: ~

output.elasticsearch:
  hosts: '${ELASTICSEARCH_HOSTS:elasticsearch:9200}'
  username: '${ELASTICSEARCH_USERNAME:}'
  password: '${ELASTICSEARCH_PASSWORD:}'

其中templates的condition里表示的是收集labels里有collectLog: "true"的容器的日志

 

 

通過docker-compose安裝es filebeat kibana。(PS:這個單節點的efk,集群高可用的話一般還需要搭配隊列,redis或者kafka。而且es一般也是集群,filebeat是每個節點一個,那樣的話就得用k8s才方便了)

version: "3"
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0
    container_name: es
    environment:
    - discovery.type=single-node
    ports:
    - 9200:9200
    - 9300:9300
  kibana:
    image: docker.elastic.co/kibana/kibana:7.8.0
    container_name: kibana
    ports:
    - 5601:5601
  filebeat:
    image: docker.elastic.co/beats/filebeat:7.8.0
    container_name: filebeat
    environment:
    - output.elasticsearch.hosts=["elasticsearch:9200"]
    user: root
    volumes:
    - "~/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro"
    - "/var/lib/docker/containers:/var/lib/docker/containers:ro"
    - "/var/run/docker.sock:/var/run/docker.sock:ro"

 

然后啟動一個容器,labels里有collectLog: "true"就行.

這里我以一個asp.net core服務為例,docker-compose.yml如下,鏡像和服務名改為你自己的即可。

version: "3"
services:
  xx_api:
    container_name: xx_api
    image: registry.cn-beijing.aliyuncs.com/xx/xx3api:latest
    labels:
      collectLog: "true"
    ports:
    - 9005:80

 

最后在kibana顯示日志。

打開kibana的站點,點擊Management

 

 

 

然后點擊Kibana的Index Patterns, 再點創建索引樣式

 

 

 

輸入filebeat*,點擊下一步

 

 

然后選個模式,我選的是timestamp的。這樣就創建索引了。

回到主頁,點擊logs

 

 就可以看到日志成功顯示出來了。

 


免責聲明!

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



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