一、安装Filebeat

  1. 添加Elastic仓库
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
  1. 创建仓库文件在/etc/yum.repos.d/elastic.repo中写入:
[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
  1. 安装Filebeat
sudo yum install filebeat -y

二、配置Filebeat

  1. 编辑配置文件打开/etc/filebeat/filebeat.yml,进行以下修改:
- 配置日志收集路径:
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log  # 按需调整路径
    - /var/log/messages    # 系统日志路径
    - /var/log/secure      # 安全日志路径
  fields:
    env: production       # 环境标识
    service: web-server   # 服务名称
    custom_source: graylog-server       #日志输入端主机名
  fields_under_root: true  # 字段添加到根级别

- 配置输出到Graylog:
output.logstash:
  hosts: ["graylog-server-ip:5044"]  # Graylog服务器IP和端口
  1. 保存并退出编辑器
  2. 开放Graylog防火墙接收filebeat日志
firewall-cmd --zone=public --add-port=5044/tcp --permanent

三、在Graylog中创建Beats输入

  1. 登录Graylog控制台访问http://graylog-server-ip:9000,使用管理员账户登录。

  2. 创建输入

  • 进入 System > Inputs
  • 在 Select Input 下拉菜单中选择 Beats
  • 点击 Launch new input
  • 配置输入参数:
    • Title:自定义名称(如 Filebeat Input)。
    • Bind address:0.0.0.0(或指定IP)。
    • Port:5044(确保端口未被占用)。
  • 点击 Save

四、启动Filebeat服务

  1. 设置开机自启
sudo systemctl enable filebeat
  1. 检查服务状态
filebeat test config -e        #检查配置文件语法
filebeat test output -e     #测试与Graylog的连接
sudo systemctl start filebeat
sudo systemctl status filebeat
  1. 查看实时日志(可选)
journalctl -u filebeat -f

花了半下午,终于大功告成!!!
在这里插入图片描述


五、验证配置(如Graylog已经成功输出后续无需操作)

  1. 生成测试日志
logger "Test message from Filebeat"
  1. 在Graylog中查看日志
  • 进入 Search 页面。
  • 搜索关键词 Test message,确认日志是否显示。

六、防火墙配置(如有需要)

  1. 开放Graylog服务器端口
sudo firewall-cmd --permanent --add-port=5044/tcp
sudo firewall-cmd --reload
  1. CentOS本地出站规则默认允许出站,无需额外配置。

七、SELinux设置(如有拦截)

  1. 允许Filebeat网络连接
sudo setsebool -P filebeat_can_network_connect 1

八、高级配置(可选)

  • 多行日志合并在filebeat.inputs中添加配置处理多行日志(如Java堆栈跟踪):
multiline.pattern: '^[[:space:]]'
multiline.negate: false
multiline.match: after
  • TLS加密若Graylog启用TLS,需在Filebeat中配置SSL:
output.logstash:
  hosts: ["graylog-server-ip:5044"]
  ssl.enabled: true
  ssl.certificate_authorities: ["/path/to/ca.crt"]

常见问题排查:

  • 日志未出现在Graylog:检查Filebeat日志、Graylog输入状态及防火墙设置。
  • 权限问题:使用ls -Z /var/log/检查SELinux上下文,调整策略或路径。
  • 连接失败:使用telnet graylog-server-ip 5044测试端口连通性。

通过以上步骤,Filebeat将成功收集日志并发送至Graylog。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐