通过 Filebeat 监控 Ubuntu 上的 MySQL 日志
一 准备与安装
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 日志采集
sudo filebeat modules enable mysqlvar.logs.mysql.error 默认指向 /var/log/mysql/error.logvar.logs.mysql.slowlog.enabled: true,并设置 var.logs.mysql.slowlog.path: "/var/log/mysql/mysql-slow.log"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
三 配置输出目标
output.logstash:
hosts: ["your-logstash-host:5044"]
在 Logstash 侧创建管道(示例):input { beats { port => 5044 } }
filter { }
output {
elasticsearch {
hosts => ["your-es-host:9200"]
index => "mysql-logs-%{+YYYY.MM.dd}"
}
}
output.elasticsearch:
hosts: ["your-es-host:9200"]
index: "mysql-logs-%{+YYYY.MM.dd}"
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。五 生产要点与排错
harvester_buffer_size、bulk_max_size、queue.mem.events 等参数以平衡吞吐与可靠性。setup.template。test config/output 快速定位。