确保 MySQL 日志写入文件
[mysqld]
2log_error = /usr/local/mysql/data/mysqld.error.log
3slow_query_log = ON
4slow_query_log_file = /usr/local/mysql/data/localhost-slow.log
5long_query_time = 2
在 MySQL 服务器上配置 Filebeat(7.8.1)
启用 mysql 模块
sudo filebeat modules enable mysql
bash
- module: mysql
error:
enabled: true
var.paths: ["/usr/local/mysql/data/mysqld.error.log"]
slowlog:
enabled: true
var.paths: ["/usr/local/mysql/data/localhost-slow.log"]
配置输出到 Logstash
vim /etc/filebeat/filebeat.yml
bash
# 启用 logstash 输出
output.logstash:
hosts: ["192.168.10.179:5044"] # ← 替换为你的 Logstash 节点 IP 和端口
在 Logstash 节点配置接收 Filebeat 数据
创建 Logstash 配置文件(如 /etc/logstash/conf.d/mysql.conf)
bash
input {
2 beats {
3 port => 5044
4 # 可选:设置主机名字段
5 host => "0.0.0.0"
6 }
7}
8
9# 可选:对 MySQL 日志做额外处理(如脱敏 SQL)
10filter {
11 # 如果是慢查询日志,可以提取 SQL 语句等(Filebeat 模块已解析大部分字段)
12 if [event][module] == "mysql" {
13 mutate {
14 add_tag => ["mysql"]
15 }
16 }
17}
18
19output {
20 elasticsearch {
21 hosts => ["http://192.168.10.170:9200", "http://192.168.10.173:9200"]
22 index => "filebeat-mysql-%{+YYYY.MM.dd}"
重启 Logstash
sudo systemctl restart logstash
第四步:在 MySQL 服务器上完成权限和启动
sudo useradd -r -s /sbin/nologin -U filebeat
启动 Filebeat
sudo systemctl enable filebeat
2sudo systemctl start filebeat
查看 MySQL
