首页主机资讯如何通过Filebeat监控Ubuntu数据库日志

如何通过Filebeat监控Ubuntu数据库日志

时间2026-01-20 15:48:04发布访客分类主机资讯浏览1005
导读:通过 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 模块方式(推荐,结构化解析更完善)
    1. 启用模块:sudo filebeat modules enable mysql
    2. 按需调整模块配置(示例):编辑 /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"
    3. 说明:模块内置了针对 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。

三 配置输出目标

  • 输出到 Logstash(便于解析与丰富后再入库)
    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}
    "
      }
    
    }
    
    
  • 直接输出到 Elasticsearch(简单场景)
    output.elasticsearch:
      hosts: ["your-es-host:9200"]
      index: "mysql-logs-%{
    +YYYY.MM.dd}
        "
    
  • 索引与 ILM:若需自定义索引命名或关闭 ILM,可在输出段设置 indexsetup.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_sizebulk_max_sizequeue.mem.events 等参数以平衡吞吐与可靠性。
  • 索引与生命周期:结合 ILM 管理热温冷与保留;需要自定义索引模板时关闭 ILM 并配置 setup.template
  • 常见排错:
    • 无数据:核对路径、权限、Filebeat 是否运行、输出连通性;用 test config/output 快速定位。
    • 重复采集:避免同一文件被多个输入重复监控;必要时清理 registry 文件后重启(会重发历史)。
    • 慢查询未结构化:确认慢日志已开启并写入指定路径;必要时在 Logstash 增加 grok/ dissect 解析。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何通过Filebeat监控Ubuntu数据库日志
本文地址: https://pptw.com/jishu/787338.html
Filebeat能否与Kafka配合使用在Ubuntu Ubuntu中如何利用Filebeat进行数据备份

游客 回复需填写必要信息