filebeat

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

modules.d 模块管理

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命令是一样的,给改个名字而已

filebeta.yml 配置

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

nginx日志模块

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