filebeat是一个轻量级的日志收集工具,相比logstash,功能更加单一,但是占用的资源较小
Filebeat是用于转发和集中日志数据的轻量级传送器。Filebeat作为代理安装在服务器上,它监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或Logstash进行索引。
docker pull docker.elastic.co/beats/filebeat:8.9.1
获取filebeat.yml文件
curl -L -O https://raw.githubusercontent.com/elastic/beats/8.9/deploy/docker/filebeat.docker.yml
docker run容器
复制配置文件到本地 /usr/share/filebeat/modules.d
docker cp filebeat:/usr/share/filebeat/filebeat.yml ./filebeta.yml
docker cp filebeat:/usr/share/filebeat/modules.d/ ./modules.d/
#修改配置filebeta.yml
https://blog.csdn.net/weixin_44953658/article/details/118358918
#查看哪些模块启动了
filebeat modules list
#启用nginx module
filebeat modules enable nginx
#查看modules.d目录下的文件发生了什么变化,可以看到已经由.disabled改成了.yml
# 其实 filebeat modules enable nginx就喝mv命令是一样的,给改个名字而已
https://www.elastic.co/guide/en/beats/filebeat/8.9/configuring-howto-filebeat.html
filebeat.config:
modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: true
processors:
- add_cloud_metadata: ~
- add_docker_metadata: ~
output.elasticsearch:
hosts: '${ELASTICSEARCH_HOSTS:172.16.xxx.xx:9200}'
username: '${ELASTICSEARCH_USERNAME:xxxx}'
password: '${ELASTICSEARCH_PASSWORD:xxx}'
index: "dk1-%{[agent.version]}" #写入的索引名称,修改了这个设置需要同时配置 setup.template.name和 setup.template.pattern
"filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" #输出为filebeat-8.9.2-2024-01-17
setup.template.name: "dk1"
#模板名称,默认值是filebeat, 版本号会附加到名称后,最终显示为 filebeat-%{[agent.version]}
setup.template.pattern: "dk1"
#模板模式,默认值是filebeat, 模式中始终包含版本,最终模式为 filebeat-%{[agent.version]}
# 指定用于映射的索引模板, 如果启用了模板加载(默认启动),filebeat会在连接后自动加载索引模板
#配置参考说明 https://www.elastic.co/guide/en/beats/filebeat/8.9/configuration-template.html
modules.d/nginx.yml
https://blog.csdn.net/weixin_44953658/article/details/118358918
vim /etc/filebeat/modules.d/nginx.yml
- module: nginx
access:
enabled: true
var.paths: ["/nginx/access-*.log"]
error:
enabled: true