ELK 监控MySQL日志

确保 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

相关推荐
一江寒逸8 分钟前
零基础从入门到精通MongoDB(下篇):进阶精通篇——吃透高级查询、事务、索引优化与集群架构,成为MongoDB实战高手
数据库·mongodb·架构
sa1002712 分钟前
一键获取淘宝天猫商品评论:API 接口实战与多语言实现教程
数据库·oracle
huanmieyaoseng100320 分钟前
Linux安装达梦数据库DM8
linux·运维·数据库
香蕉鼠片27 分钟前
Mysql进阶篇
数据库·mysql·oracle
数厘28 分钟前
2.12 sql 数据插入(INSERT INTO)
数据库·sql·oracle
薛定e的猫咪29 分钟前
2026 年 4 月实测:OpenAI Codex 保姆级教程,从安装到 MCP、Skills 与多智能体协作
前端·数据库·人工智能
wgzrmlrm7430 分钟前
Django怎么优雅发送邮件_Python配置SMTP后端实现异步通知
jvm·数据库·python
014-code32 分钟前
Redis 删除缓存失败怎么办?重试、死信、补偿的工程化方案
数据库·redis·缓存
I love studying!!!33 分钟前
Web应用程序:用户账户
前端·数据库·sqlite
quxuexi35 分钟前
MySQL B+树与复合索引完全指南:从底层原理到高性能优化
b树·mysql·性能优化