EFK的安装和收集docker容器日志展示
2024-09-07 17:59:32
在用户根目录创建个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
就可以看到日志成功显示出来了。
最新文章
- java final 关键字
- eclipse如何快速查找某个类
- Nginx:针对IPv4的内核参数优化
- 【Java MyBatis Generator】使用generator自动生成Dao,Mapping和实体文件
- July 7th, Week 28th Thursday, 2016
- The GPG keys listed not correct
- hdu 4772
- sfs
- xml drawable
- django图书管理半成品(MySQL)
- sed,n,N,d,D,p,P,h,H,g,G,x,解析
- Java小知识点总结
- Number Cutting Game HDU - 2848(DFS)
- js深度克隆对象
- Oracle ORA-01940: 无法删除当前连接的用户
- java中Calendar类
- 解题:NOI 2018 归程
- [转] Web移动端Fixed布局的解决方案
- python基础学习1-计数器实例
- HTTP/2探索第一篇——概念
热门文章
- 使用Token进行CSRF漏洞防御
- Scrapy入门到放弃05:让Item在Pipeline中飞一会儿
- C#-WPF数据绑定基础(一)
- Abp Vnext Blazor替换UI组件 集成BootstrapBlazor(详细过程)
- .NET Core 3.0 JsonSerializer.Deserialize 返回dynamic类型对象
- CSP2020 自爆记
- R语言与医学统计图形-【10】ggplot2图形映射
- 65-Binary Tree Zigzag Level Order Traversal
- Excel-电话号码隐藏某几个数为*,起到保护信息作用;
- php代码审计入门前必看