在用户根目录创建个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

就可以看到日志成功显示出来了。

最新文章

  1. java final 关键字
  2. eclipse如何快速查找某个类
  3. Nginx:针对IPv4的内核参数优化
  4. 【Java MyBatis Generator】使用generator自动生成Dao,Mapping和实体文件
  5. July 7th, Week 28th Thursday, 2016
  6. The GPG keys listed not correct
  7. hdu 4772
  8. sfs
  9. xml drawable
  10. django图书管理半成品(MySQL)
  11. sed,n,N,d,D,p,P,h,H,g,G,x,解析
  12. Java小知识点总结
  13. Number Cutting Game HDU - 2848(DFS)
  14. js深度克隆对象
  15. Oracle ORA-01940: 无法删除当前连接的用户
  16. java中Calendar类
  17. 解题:NOI 2018 归程
  18. [转] Web移动端Fixed布局的解决方案
  19. python基础学习1-计数器实例
  20. HTTP/2探索第一篇——概念

热门文章

  1. 使用Token进行CSRF漏洞防御
  2. Scrapy入门到放弃05:让Item在Pipeline中飞一会儿
  3. C#-WPF数据绑定基础(一)
  4. Abp Vnext Blazor替换UI组件 集成BootstrapBlazor(详细过程)
  5. .NET Core 3.0 JsonSerializer.Deserialize 返回dynamic类型对象
  6. CSP2020 自爆记
  7. R语言与医学统计图形-【10】ggplot2图形映射
  8. 65-Binary Tree Zigzag Level Order Traversal
  9. Excel-电话号码隐藏某几个数为*,起到保护信息作用;
  10. php代码审计入门前必看