最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
CentOS Filebeat与Logstash怎样联动
时间:2026-06-28 09:21:58 编辑:袖梨 来源:一聚教程网
在 CentOS 上让 Filebeat 与 Logstash 协同工作

一 架构与端口约定
- Filebeat 负责采集本地日志文件,作为轻量采集器将数据发送到 Logstash 的 Beats 输入插件(默认端口 5044)。
- Logstash 在 5044 端口监听 Beats 数据,进行解析与加工(如 Grok、Date、mutate 等),再输出到 Elasticsearch 或标准输出用于调试。
- 常见输出索引命名:filebeat-%{+YYYY.MM.dd} 或按业务字段拆分如 %{[index_prefix]}-%{+YYYY.MM.dd}。
二 安装与目录
- 在 CentOS 上可直接通过 YUM 安装(示例命令,需具备对应仓库权限):
- 安装 Filebeat:
sudo yum install filebeat - 安装 Logstash:
sudo yum install logstash
- 安装 Filebeat:
- 常用配置路径:
- Filebeat:/etc/filebeat/filebeat.yml
- Logstash 管道配置:/etc/logstash/conf.d/*.conf
- 服务管理:
- 启动/开机自启:
sudo systemctl start|enable filebeat、sudo systemctl start|enable logstash - 查看日志:
sudo journalctl -u filebeat -f、sudo journalctl -u logstash -f。
- 启动/开机自启:
三 最小可用配置示例
- Filebeat 配置(/etc/filebeat/filebeat.yml):收集系统日志并发送到本机 Logstash
filebeat.inputs:- type: logenabled: truepaths:- /var/log/*.logoutput.logstash:hosts: ["localhost:5044"]- Logstash 配置(/etc/logstash/conf.d/filebeat.conf):接收 Beats 数据并写入 ES
input {beats {port => 5044}}filter {# 示例:解析 Apache 访问日志;其他日志请替换为合适的 grok 模式grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}date {match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]}}output {elasticsearch {hosts => ["localhost:9200"]index => "filebeat-%{+YYYY.MM.dd}"}}- 启动顺序建议:先启动 Logstash(确保 5044 监听正常),再启动 Filebeat。
四 验证与常见问题
- 服务与连通性检查
- 状态:
sudo systemctl status filebeat、sudo systemctl status logstash - 日志:
sudo journalctl -u filebeat -f、sudo journalctl -u logstash -f - 连通性(在 Filebeat 主机上):
nc -vz <logstash_ip> 5044
- 状态:
- Elasticsearch 数据校验
- 索引列表:
curl -X GET "localhost:9200/_cat/indices?v" - 查询样本:
curl -X GET "localhost:9200/filebeat-*/_search?pretty"
- 索引列表:
- 调试技巧
- 临时将 Logstash 输出改为
stdout { codec => rubydebug }观察事件结构。 - 使用 Filebeat 自检:
filebeat test config、filebeat test output(可快速发现配置与输出连通性问题)。
- 临时将 Logstash 输出改为
五 进阶用法
- 多项目索引拆分(按 Filebeat 自定义字段路由)
- Filebeat 增加字段:
filebeat.inputs:- type: logenabled: truepaths:- /opt/logs/app1/*.logfields:project: "app1"- type: logenabled: truepaths:- /opt/logs/app2/*.logfields:project: "app2"fields_under_root: trueoutput.logstash:hosts: ["logstash:5044"] - Logstash 按字段设置索引前缀:
input { beats { port => 5044 } }filter {if [project] == "app1" {mutate { add_field => { "index_prefix" => "filebeat-app1" } }} else if [project] == "app2" {mutate { add_field => { "index_prefix" => "filebeat-app2" } }} else {mutate { add_field => { "index_prefix" => "filebeat-default" } }}}output {elasticsearch {hosts => ["elasticsearch:9200"]index => "%{[index_prefix]}-%{+YYYY.MM.dd}"}}
- Filebeat 增加字段:
- 多行日志(如 Java 堆栈)
- Filebeat 片段:
- type: logenabled: truepaths:- /apps/usr/appdata/logs/*.logmultiline.pattern: '^[[:space:]]+(at|.{3})[[:space:]]'multiline.negate: falsemultiline.match: after
- Filebeat 片段:
- 安全与网络
- 若跨主机部署,开放 Logstash 主机 5044/TCP 入站;生产环境建议启用 TLS 与 认证(在 Beats 与 Logstash 双方配置证书与密码/密钥)。
相关文章
- 心动小镇冰雪季食材囤积指南 06-30
- 心动小镇新年版本最新兑换码汇总一览 06-30
- 伊莫是回合制游戏吗 伊莫新手入门指南 06-30
- 重返未来1999 6狂想增幅效果解析 06-30
- 伊莫时装获取方法 伊莫时装怎么获得 06-30
- 遗忘之海测试资格获取攻略 遗忘之海内测/删档测试报名入口与资格获取方法 06-30