Filebeat 是一个轻量级的日志收集器,它可以用来从不同的来源(例如文件、TCP、UDP等)收集日志数据。要收集 MySQL 的慢查询日志(slow query log)与错误日志,您需要执行以下步骤:
1.mysql开启慢日志
- 检查数据库是否开启慢查询功能
show variables like '%slow_query_log%';
- 开启数据库慢日志
vi /etc/my.cny
#开启慢查询
slow_query_log=ON
#慢日志路径,可自行修改
slow_query_log_file=/var/log/mariadb/slow.log
#慢查询阈值,单位秒
long_query_time=5
- 修改完配置需要重启数据库生效
2.开启filebeat模块功能
- 启动mysql模块
filebeat modules enable mysql
- 修改mysql模块配置文件/etc/filebeat/modules.d/mysql.yml
- module: mysql
# Error logs
error:
enabled: true
var.paths: ["/var/log/mariadb/mariadb.log"]
# Slow logs
slowlog:
enabled: true
var.paths: ["/var/log/mariadb/slow.log"]
3.filebeat转发配置
- /etc/filebeat/filebeat.yml
output.elasticsearch:
#es配置
hosts: ["192.168.0.10:9200"]
indices:
#错误日志转发配置
- index: "mariadb-error-%{[beat.version]}-%{+yyyy.MM}"
when.contains:
source: "/var/log/mariadb/mariadb.log"
#慢日志转发配置
- index: "mysql-slow-%{[beat.version]}-%{+yyyy.MM}"
when.contains:
source: "/var/log/mariadb/slow.log"
# 设置开启模板和覆盖模板,将Elasticsearch的输出设置为true,Redis的输出设置为false
setup.template.enabled: true
setup.template.overwrite: true
filebeat.config.modules:
#模块路径
path: ${path.config}/modules.d/*.yml
#开关
reload.enables: true
#10秒重新加载一次模块
reload.period: 10s
修改完配置需要重启服务