Centos7部署Filebeat并接入Graylog
Graylog部署完成后可以通过filebeat快速搜集和发送客户端日志到graylog服务器
·
一、安装Filebeat
- 添加Elastic仓库
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
- 创建仓库文件在/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
- 安装Filebeat
sudo yum install filebeat -y
二、配置Filebeat
- 编辑配置文件打开/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和端口
- 保存并退出编辑器
- 开放Graylog防火墙接收filebeat日志
firewall-cmd --zone=public --add-port=5044/tcp --permanent
三、在Graylog中创建Beats输入
-
登录Graylog控制台访问http://graylog-server-ip:9000,使用管理员账户登录。
-
创建输入
- 进入 System > Inputs。
- 在 Select Input 下拉菜单中选择 Beats。
- 点击 Launch new input。
- 配置输入参数:
- Title:自定义名称(如 Filebeat Input)。
- Bind address:0.0.0.0(或指定IP)。
- Port:5044(确保端口未被占用)。
- 点击 Save。
四、启动Filebeat服务
- 设置开机自启
sudo systemctl enable filebeat
- 检查服务状态
filebeat test config -e #检查配置文件语法
filebeat test output -e #测试与Graylog的连接
sudo systemctl start filebeat
sudo systemctl status filebeat
- 查看实时日志(可选)
journalctl -u filebeat -f
花了半下午,终于大功告成!!!
五、验证配置(如Graylog已经成功输出后续无需操作)
- 生成测试日志
logger "Test message from Filebeat"
- 在Graylog中查看日志
- 进入 Search 页面。
- 搜索关键词 Test message,确认日志是否显示。
六、防火墙配置(如有需要)
- 开放Graylog服务器端口
sudo firewall-cmd --permanent --add-port=5044/tcp
sudo firewall-cmd --reload
- CentOS本地出站规则默认允许出站,无需额外配置。
七、SELinux设置(如有拦截)
- 允许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。
更多推荐
所有评论(0)