【20180417】ELK日志管理之filebeat收集分析mysql慢日志

环境版本

filebeat: 6.2.3
mysql: 5.6.38

错误信息

{
  "_index": "mysql-slow-2018.04.17",
  "_type": "doc",
  "_id": "AWLRiDqYhjFMCbqrK5ez",
  "_version": 1,
  "_score": null,
  "_source": {
    "@timestamp": "2018-04-17T02:56:22.823Z",
    "offset": 100619865,
    "beat": {
      "hostname": "test-db1",
      "name": "test-db1",
      "version": "6.2.3"
    },
    "prospector": {
      "type": "log"
    },
    "source": "/var/log/mysql_3306/mysql-slow.log",
    "fileset": {
      "module": "mysql",
      "name": "slowlog"
    },
    "message": "# [email protected]: test_db[test_table] @  [10.10.10.10]  Id: 1874266\n# Query_time: 2.088465  Lock_time: 0.000086 Rows_sent: 67  Rows_examined: 18862\nSET timestamp=1523933781;\nselect id, dct, mh, topcolor, bit_count(dct^1144174128272565460) as dist from image_feature where topcolor=\"278522176103c518c774fe2a73b20569\" and created_at<\"2018-04-17 10:54:16\" and id not in (120251270,120251181,120251202,120251209,120251221,120251229,120251240,120251252,120251259,120251270,120251278) having dist<=20 order by dist;",
    "error": {
      "message": "Provided Grok expressions do not match field value: [# [email protected]: test_db[test_table] @  [10.10.10.10]  Id: 1874266\\n# Query_time: 2.088465  Lock_time: 0.000086 Rows_sent: 67  Rows_examined: 18862\\nSET timestamp=1523933781;\\nselect id, dct, mh, topcolor, bit_count(dct^1144174128272565460) as dist from image_feature where topcolor=\\\"278522176103c518c774fe2a73b20569\\\" and created_at<\\\"2018-04-17 10:54:16\\\" and id not in (120251270,120251181,120251202,120251209,120251221,120251229,120251240,120251252,120251259,120251270,120251278) having dist<=20 order by dist;]"
    }
  },
  "fields": {
    "@timestamp": [
      1523933782823
    ]
  },
  "highlight": {
    "beat.name": [
      "@[email protected]@/[email protected]"
    ]
  },
  "sort": [
    1523933782823
  ]
}
{
  "_index": "mysql-slow-2018.04.17",
  "_type": "doc",
  "_id": "AWLRb2nl6-SuKroP98i-",
  "_version": 1,
  "_score": null,
  "_source": {
    "@timestamp": "2018-04-17T02:29:21.535Z",
    "offset": 100614853,
    "beat": {
      "hostname": "test-db1",
      "name": "test-db1",
      "version": "6.2.3"
    },
    "prospector": {
      "type": "log"
    },
    "source": "/var/log/mysql_3306/mysql-slow.log",
    "message": "# Time: 180417 10:29:18",
    "fileset": {
      "module": "mysql",
      "name": "slowlog"
    },
    "error": {
      "message": "Provided Grok expressions do not match field value: [# Time: 180417 10:29:18]"
    }
  },
  "fields": {
    "@timestamp": [
      1523932161535
    ]
  },
  "highlight": {
    "error.message": [
      "Provided Grok expressions do not match field value: [# @[email protected]@/[email protected]: 180417 10:29:18]"
    ]
  },
  "sort": [
    1523932161535
  ]
}

上面的这些信息可以在Kibana的Discover中可以查询得到。

  1. 从上面的JSON信息我们可以很明确的获取得到俩个信息:

    • 一个就是Kibana无法解析MySQL实例的slow日志。
    • 另外一个就是类似 "# Time: 180417 10:26:11"这样子的时间信息也被当作了MySQL的SQL信息发送给Kibana。
  2. 其实主要问题就是在于pipeline,

问题解决

  1. 修改module/mysql/slowlog/config/slowlog.yml

    修改之前:
    exclude_lines: [‘^[\/\w\.]+, Version: .* started with:.*‘]   # Exclude the header
    修改之后:
    exclude_lines: [‘^[\/\w\.]+, Version: .* started with:.*‘,‘^# Time.*‘]   # Exclude the header
  2. 修改module/mysql/slowlog/ingest/pipeline.json
    修改之前:
    "patterns":[
        "^# [email protected]: %{USER:mysql.slowlog.user}(\\[[^\\]]+\\])? @ %{HOSTNAME:mysql.slowlog.host} \\[(%{IP:mysql.slowlog.ip})?\\](\\s*Id:\\s* %{NUMBER:mysql.slowlog.id})?\n# Query_time: %{NUMBER:mysql.slowlog.query_time.sec}\\s* Lock_time: %{NUMBER:mysql.slowlog.lock_time.sec}\\s* Rows_sent: %{NUMBER:mysql.slowlog.rows_sent}\\s* Rows_examined: %{NUMBER:mysql.slowlog.rows_examined}\n(SET timestamp=%{NUMBER:mysql.slowlog.timestamp};\n)?%{GREEDYMULTILINE:mysql.slowlog.query}"
                ]
    修改之后:
      "patterns":[
        "^# [email protected]: %{USER:mysql.slowlog.user}(\\[[^\\]]+\\])? @ %{HOSTNAME:mysql.slowlog.host} \\[(IP:mysql.slowlog.ip)?\\](\\s*Id:\\s* %{NUMBER:mysql.slowlog.id})?\n# Query_time: %{NUMBER:mysql.slowlog.query_time.sec}\\s* Lock_time: %{NUMBER:mysql.slowlog.lock_time.sec}\\s* Rows_sent: %{NUMBER:mysql.slowlog.rows_sent}\\s* Rows_examined: %{NUMBER:mysql.slowlog.rows_examined}\n(SET timestamp=%{NUMBER:mysql.slowlog.timestamp};\n)?%{GREEDYMULTILINE:mysql.slowlog.query}"
                ],

原文地址:http://blog.51cto.com/11819159/2104359

时间: 2024-08-30 06:56:20

【20180417】ELK日志管理之filebeat收集分析mysql慢日志的相关文章

分析Mysql慢日志脚本及快速定位慢Sql

分析Mysql慢日志是运维工作中,不可少的.要快速定位慢Sql,以及发现后优化Sql及修改业务,保证数据库稳定高效地工作.下面是我工作中解决的思路... 1.先查看本地数据库慢日志文件 2.编写分析慢日志脚本 #!/usr/bin/python #coding=utf-8  #字符编码 import re  #导入正则匹配模块 import time #导入时间模块 import sys  #导入sys模块 import MySQLdb #导入连接mysql模块 canshu=len(sys.a

利用OSSIM收集分析远程apache日志(视频教程)

环境: OSSIM Server : 192.168.11.228 日志搜集器 Http Server   : 192.168.11.15     日志发生器 通过设置192.168.11.15机器上的rsyslog转发到192.168.11.228实现日志收集,利用apache 插件归一化处理并入库分析. 时长: 约14分钟 浏览地址: http://edu.51cto.com/index.php?do=lesson&id=93652 51CTO学院优秀讲师评选中,我期待您的宝贵一票! htt

pt-query-digest分析mysql查询日志

[[email protected] log]# pt-query-digest slowq.log # 200ms user time, 10ms system time, 24.39M rss, 205.12M vsz# Current date: Thu Dec 17 15:32:04 2015# Hostname: hank-yoon.com# Files: slowq.log# Overall: 8 total, 2 unique, 0.00 QPS, 0.00x concurrenc

Python写的分析MySQL binlog日志工具

因为MySQL数据库增删改突然暴增,需要查询是那些表的操作特别频繁,写了一个用来分析bin-log的小工具,找出增删改查的表,并按照操作次数降序排列,以下是代码: #for mysql5.5 binlog import os,sys #python binlog.py binglog-0001 '2013-07-01 00:00:00' '2013-07-02 00:00:00' def log_w(type,text):     logfile = "%s.txt" % (type,

ELK学习实验018:filebeat收集docker日志

Filebeat收集Docker日志 1 安装docker [[email protected] ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 [[email protected] ~]# yum update [[email protected] ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/d

云计算Docker全面项目实战(Maven+Jenkins、日志管理ELK、WordPress博客镜像)

2013年,云计算领域从此多了一个名词“Docker”.以轻量著称,更好的去解决应用打包和部署.之前我们一直在构建Iaas,但通过Iaas去实现统一功  能还是相当复杂得,并且维护复杂.将特殊性封装到镜像中实现几乎一致得部署方法,它就是“Docker”,以容器为技术核心,实现了应用的标准化.企业可  以快速生成研发.测试环境,并且可以做到快速部署.实现了从产品研发环境到部署环境的一致化.Docker让研发更加专注于代码的编写,并且以“镜像”作  为交付.极大的缩短了产品的交付周期和实施周期. 课

日志管理基础介绍

日志介绍 记录系统的历史事件:时间  地点   人物   事件 记录日志要确保时间是准确的 系统日志服务 事件记录格式:  日期时间   主机   进程[pid]: 事件内容 C/S架构:通过TCP或UDP协议的服务完成日志记录传送,将分布在不同主 机的日志实现集中管理 rsyslog特性: CentOS6和7 多线程 UDP, TCP, SSL, TLS, RELP MySQL, PGSQL, Oracle实现日志存储 强大的过滤器,可实现过滤记录日志信息中任意部分 自定义输出格式 ELK:

SQL Server中的事务日志管理(9/9):监控事务日志

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 对于在我们关注下的所有数据库,在日志维护方面,我们的首要目标是最优化写性能,为了支持SQL Server写入日志的所有活动,包括数据修改,数据读取,索引维护等等.但是,留意下可能的日志碎片也是重要的,如前面文章介绍的,它会影响需要读取日志的过程性能,例如日志备份

SANS:2014年日志管理调查报告

2014年10月份,SANS发布了2014年度的<日志管理调查报告>.在今年,对于日志分析/安全分析的报告分为了两个,一个是延续了2013年的安全分析(Security Analytics)的调研报告,另一个则是重新续上了2012年的日志管理(Log Management)的调研报告.在2013年,两个调研主题合并到一起了.这也说明了安全分析与日志管理正在向着不同的路径前进. 这次调研了522名专业人士.其中97%的受访者都表示他们收集了日志[在2012年这一数据则是89%],42%的受访者将