Ubuntu Filebeat如何监控日志
导读:Ubuntu 上部署与配置 Filebeat 监控日志 一 安装与准备 导入 Elastic GPG 并添加 APT 源(以 8.x 为例,按需替换为 7.x): sudo apt update sudo apt install -y...
Ubuntu 上部署与配置 Filebeat 监控日志
一 安装与准备
- 导入 Elastic GPG 并添加 APT 源(以 8.x 为例,按需替换为 7.x):
- sudo apt update
- sudo apt install -y apt-transport-https wget
- wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor | sudo tee /usr/share/keyrings/elastic-keyring.gpg > /dev/null
- echo “deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main” | sudo tee /etc/apt/sources.list.d/elastic-8.x.list > /dev/null
- sudo apt update & & sudo apt install -y filebeat
- 配置文件默认路径:/etc/filebeat/filebeat.yml。修改前建议备份:sudo cp /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.bak。
二 配置输入与输出
- 编辑配置文件:sudo nano /etc/filebeat/filebeat.yml。常用两种输入方式(二选一或混用):
- 经典 log 输入(适合简单场景与旧版本):
- filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/auth.log
- /var/log/**/*.log
- type: log
enabled: true
paths:
- filebeat.inputs:
- filestream 输入(Filebeat 7.14+ 推荐,支持多行、状态恢复等):
- filebeat.inputs:
- type: filestream
id: syslog
enabled: true
paths:
- /var/log/syslog
- /var/log/auth.log
- type: filestream
id: syslog
enabled: true
paths:
- filebeat.inputs:
- 常用处理与过滤(可选):
- processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
- drop_fields: fields: [“agent.ephemeral_id”, “agent.id”, “ecs.version”]
- processors:
- 输出到 Elasticsearch(开发/单机测试):
- output.elasticsearch: hosts: [“localhost:9200”] index: “filebeat-%{ [agent.version]} -%{ +yyyy.MM.dd} ”
- 输出到 Logstash(生产常用,便于解析与丰富):
- output.logstash: hosts: [“logstash.example.com:5044”]
- 安全传输(如启用 TLS,示例):
- output.elasticsearch: hosts: [“es.example.com:9200”] ssl.certificate_authorities: [“/etc/filebeat/certs/ca.crt”] ssl.verification_mode: “certificate”
- 经典 log 输入(适合简单场景与旧版本):
- 验证配置并启动:
- sudo filebeat test config -e
- sudo systemctl enable --now filebeat
- sudo journalctl -u filebeat -f
三 常见输出目标示例
- 输出到 Logstash(供后续解析与入库):
- output.logstash: hosts: [“logstash.example.com:5044”]
- 在 Logstash 侧创建管道(示例)接收 Beats 并写入 ES:
- input { beats { port => 5044 } }
- filter { mutate { remove_field => [“host”] } } # 可按需增减
- output { elasticsearch { hosts => [“es.example.com:9200”] index => “app-logs-%{ +YYYY.MM.dd} ” } }
- 输出到 Redis(作为缓冲队列):
- output.redis: hosts: [“redis.example.com:6379”] key: “filebeat” db: 0 timeout: 5
- 输出到 Kafka(高吞吐场景):
- output.kafka: hosts: [“kafka1:9092”,“kafka2:9092”] topic: “filebeat-logs-%{ +yyyy.MM.dd} ” codec.json: pretty: false escape_html: false
四 模块与多行日志
- 使用内置模块快速采集常见服务日志(自动加载仪表盘与管道):
- 启用模块:sudo filebeat modules enable system nginx mysql
- 生成/应用模板与仪表盘(对接 ES 时):sudo filebeat setup -e
- 模块配置目录:/etc/filebeat/modules.d/,可按需编辑(如 nginx、mysql 日志路径与解析规则)。
- 多行日志(如 Java 堆栈):
- 在对应 input 下增加:
- multiline.type: pattern multiline.pattern: ‘^[[:space:]]’ multiline.negate: true multiline.match: after
- 在对应 input 下增加:
- 权限与路径注意事项:
- 确保 Filebeat 对日志目录有读取权限(如 /var/log/、/home/Logs/ 等挂载目录)。
- 容器/挂载场景需保证宿主机路径与容器内路径正确映射,且权限一致。
五 验证与运维
- 自检与运行态查看:
- 配置语法:sudo filebeat test config
- 输出连通:sudo filebeat test output
- 服务状态与日志:sudo systemctl status filebeat;sudo journalctl -u filebeat -f
- 索引与生命周期管理:
- Filebeat 不负责“归档”,建议配合 Elasticsearch ILM 做滚动与保留(示例策略可按大小/时间滚动,30 天后删除)。
- 在 Kibana 的 Discover/Stack Management 中查看索引与仪表盘是否正常写入。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Filebeat如何监控日志
本文地址: https://pptw.com/jishu/771643.html
