如何通过Filebeat监控Ubuntu数据库日志
导读:通过 Filebeat 监控 Ubuntu 上的 MySQL 日志 一 准备与安装 确认 MySQL 日志路径与权限:常见错误日志为 /var/log/mysql/error.log,慢查询日志可通过配置写入 /var/log/mysq...
通过 Filebeat 监控 Ubuntu 上的 MySQL 日志
一 准备与安装
- 确认 MySQL 日志路径与权限:常见错误日志为 /var/log/mysql/error.log,慢查询日志可通过配置写入 /var/log/mysql/mysql-slow.log。确保运行 Filebeat 的用户(如 filebeat)对日志文件具备读取权限,必要时将用户加入 adm 组或使用 ACL。
- 安装 Filebeat(Ubuntu/Debian):执行
sudo apt-get update & & sudo apt-get install filebeat。安装完成后主配置目录为 /etc/filebeat/,模块目录为 /usr/share/filebeat/modules/。 - 建议启用模块化管理:
filebeat.config.modules: path: ${ path.config} /modules.d/*.yml; reload.enabled: true,便于启用 mysql 模块。
二 配置 MySQL 日志采集
- 方式 A 模块方式(推荐,结构化解析更完善)
- 启用模块:
sudo filebeat modules enable mysql - 按需调整模块配置(示例):编辑 /etc/filebeat/modules.d/mysql.yml
- 错误日志:
var.logs.mysql.error默认指向 /var/log/mysql/error.log - 慢查询日志:将
var.logs.mysql.slowlog.enabled: true,并设置var.logs.mysql.slowlog.path: "/var/log/mysql/mysql-slow.log"
- 错误日志:
- 说明:模块内置了针对 MySQL 错误日志与慢查询日志的处理器与仪表盘雏形,后续在 Kibana 可直接使用。
- 启用模块:
- 方式 B 自定义输入方式(灵活,便于特殊路径或格式)
- 编辑 /etc/filebeat/filebeat.yml,添加输入与区分字段:
filebeat.inputs: - type: log enabled: true paths: - /var/log/mysql/error.log fields: log_type: mysql_error fields_under_root: true - type: log enabled: true paths: - /var/log/mysql/mysql-slow.log fields: log_type: mysql_slow fields_under_root: true # 如为传统多行堆栈,可按需开启多行合并 # multiline.pattern: '^# Time:' # multiline.negate: true # multiline.match: after - 提示:MySQL 慢查询日志常见为“以 # Time: 开头”的多行记录,如需将整个查询作为单事件,请配置 multiline。
- 编辑 /etc/filebeat/filebeat.yml,添加输入与区分字段:
三 配置输出目标
- 输出到 Logstash(便于解析与丰富后再入库)
在 Logstash 侧创建管道(示例):output.logstash: hosts: ["your-logstash-host:5044"]input { beats { port => 5044 } } filter { } output { elasticsearch { hosts => ["your-es-host:9200"] index => "mysql-logs-%{ +YYYY.MM.dd} " } } - 直接输出到 Elasticsearch(简单场景)
output.elasticsearch: hosts: ["your-es-host:9200"] index: "mysql-logs-%{ +YYYY.MM.dd} " - 索引与 ILM:若需自定义索引命名或关闭 ILM,可在输出段设置
index与setup.ilm.enabled: false并配置模板。
四 启动与验证
- 启动与开机自启:
sudo systemctl enable --now filebeat;检查状态:sudo systemctl status filebeat;实时查看日志:sudo tail -f /var/log/filebeat/filebeat。 - 自检配置:
sudo filebeat test config -c /etc/filebeat/filebeat.yml;测试输出:sudo filebeat test output。 - Kibana 可视化:若使用模块方式,启用对应 MySQL 仪表盘;若直连 ES,创建索引模式(如 mysql-logs-*)后构建可视化。
五 生产要点与排错
- 权限与安全:确保 /var/log/mysql/ 对 Filebeat 可读;跨主机传输建议启用 TLS/SSL;敏感信息使用 Keystore 管理。
- 多行与性能:堆栈类日志务必正确配置 multiline;可按需调整
harvester_buffer_size、bulk_max_size、queue.mem.events等参数以平衡吞吐与可靠性。 - 索引与生命周期:结合 ILM 管理热温冷与保留;需要自定义索引模板时关闭 ILM 并配置
setup.template。 - 常见排错:
- 无数据:核对路径、权限、Filebeat 是否运行、输出连通性;用
test config/output快速定位。 - 重复采集:避免同一文件被多个输入重复监控;必要时清理 registry 文件后重启(会重发历史)。
- 慢查询未结构化:确认慢日志已开启并写入指定路径;必要时在 Logstash 增加 grok/ dissect 解析。
- 无数据:核对路径、权限、Filebeat 是否运行、输出连通性;用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过Filebeat监控Ubuntu数据库日志
本文地址: https://pptw.com/jishu/787338.html
