文档章节

logstash parse mysql log

MrYx3en
 MrYx3en
发布于 2016/07/05 17:09
字数 382
阅读 135
收藏 2

#mysql-slow.log

# Time: 160623 11:59:21
# User@Host: root[root] @ localhost []  Id:    16
# Schema:   Last_errno: 0  Killed: 0
# Query_time: 7.685155  Lock_time: 0.000082  Rows_sent: 0  Rows_examined: 1000000  Rows_affected: 1000000
# Bytes_sent: 14
SET timestamp=1466654361;
delete from  sbtest.sbtest;
# Time: 160623 12:04:27
# User@Host: root[root] @ localhost []  Id:    22
# Schema:   Last_errno: 0  Killed: 0
# Query_time: 2.471750  Lock_time: 0.000136  Rows_sent: 1  Rows_examined: 9590000  Rows_affected: 0
# Bytes_sent: 69
SET timestamp=1466654667;
select count(*) from sbtest.sbtest;
# Time: 160623 12:08:03
# User@Host: root[root] @ localhost []  Id:    23
# Schema:   Last_errno: 0  Killed: 0

#mysql-error.log

InnoDB: 127 rollback segment(s) active.
150830 20:27:48  InnoDB: Waiting for the background threads to start
150831  9:27:49 Percona XtraDB (http://www.percona.com) 1.1.8-rel24.0 started; log sequence number 1836571746540
150831  9:27:49 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it

#dmesg

PCI: pci_cache_line_size set to 64 bytes
NetLabel: Initializing
NetLabel:  domain hash size = 128
NetLabel:  protocols = UNLABELED CIPSOv4
NetLabel:  unlabeled traffic allowed by default

#logstash version: 2.3.2

input {
    beats {
        port => 5140
        host => "127.0.0.1"
    }
}

filter {
    if [type] == "mysql-slow" {
        multiline {
            pattern => "^# User@Host:"
            negate => true
            what => "previous"
        }
        mutate {
            rename => { "host" => "hostname" }
        }
        grok {
            match => { "message" => "(?m)^#\s+User@Host:\s+%{USER:user}\[[^\]]+\]\s+@\s+(?:(?<userhost>\S*) )?\[(?:%{IP:clientip})?\]\s+Id:\s+%{NUMBER:id:int}\n#\s+Schema:\s+(?:%{WORD:schema}?)\s+Last_errno:\s+%{NUMBER:last_errno}\s+Killed:\s+%{NUMBER:killed}\n#\s+Query_time:\s+%{NUMBER:query_time:float}\s+Lock_time:\s+%{NUMBER:lock_time:float}\s+Rows_sent:\s+%{NUMBER:rows_sent:int}\s+Rows_examined:\s+%{NUMBER:rows_examined:int}\s+Rows_affected:\s+%{NUMBER:rows_affected:int}\n# Bytes_sent:\s+%{NUMBER:bytes_sent:int}\nSET\s+timestamp=%{NUMBER:timestamp};\n(?<query>(?<action>\w+)\s+.*)\n#\s+Time:.*$" }
            remove_field => [ "message", "beat", "input_type", "offset", "time", "source" ]
        }
        if "_grokparsefailure" in [tags] {
            drop {}
        }
        date {
          match => [ "timestamp", "UNIX", "YYYY-MM-dd HH:mm:ss"]
          remove_field => [ "timestamp" ]
        }
    }
    if [type] == "dmesg" {
        grok {
            match => { "message" => "(?<dmesg>.*)" }
            remove_field => [ "message", "beat", "input_type", "offset", "source" ]
        }
    }
    if [type] == "mysql-error" {
        grok {
            match => { "message" => "(?:(?<time>\d{6}\s+\d+:\d+:\d+)\s+(?:\[(?<loglevel>\w+)\]\s+|)|)(?<errmsg>.*)" }
            remove_field => [ "message", "beat", "input_type", "offset", "source" ]
        }
        date {
            match => [ "time", "yyMMdd HH:mm:ss", "yyMMdd  H:mm:ss" ]
        }
    }
}

output {
    stdout {
        codec => rubydebug
    }
#    elasticsearch {
#        bind_host => "127.0.0.1"
#        port => "9200"
#        protocol => http
#    }
#    if [type] == "mysql-error" and "[error]" in [loglevel] {
#        email {
#            from => "logstash_alert@company.local"
#            subject => "mysql error"
#            to => "yangg@163.com"
#            via => "smtp"
#            body => "%{errmsg}"
#        }
#    }
}

© 著作权归作者所有

共有 人打赏支持
MrYx3en
粉丝 10
博文 131
码字总数 30542
作品 0
宝鸡
系统管理员
私信 提问
ELK收集日志到mysql数据库

场景需求 在使用ELK对日志进行收集的时候,如果需要对数据进行存档,可以考虑使用数据库的方式。为了便于查询,可以同时写一份数据到Elasticsearch 中。 环境准备 CentOS7系统: 192.168.20...

酥心糖
2017/12/13
0
0
logstash推送mysql慢查询日志

本文将将介绍通过logstash用来收集mysql的慢查询日志,然后推送给elasticsearch,并创建自定义的索引,最终通过kibana进行web展示。 环境介绍: 操作系统版本:centos6.6 64bit Mysql版本: ...

ylw6006
2015/12/03
0
0
Logstash语法常用案例解析(一)

摘要 简述logstash的常用插件,以及简单的使用案例 一:基础运行 建议使用supervisor来管理ELK中的各个组件,方便同一管理 安装 https://www.aolens.cn/?p=809 有讲解 提供一个常用的配置: ...

aolens
2017/05/25
0
0
分布式日志收集之Logstash 笔记(一)

(一)logstash是什么? logstash是一种分布式日志收集框架,开发语言是JRuby,当然是为了与Java平台对接,不过与Ruby语法兼容良好,非常简洁强大,经常与ElasticSearch,Kibana配置,组成著...

九劫散仙
2015/11/05
0
0
logstash 多行合并

在logstash的输出中,每行日志开头都会加上timestamp. ,对于mysql的slowlog 和tomcat log多行输出格式,就显得画蛇添足了,可读性很差,如: 因此需要使用logstash的 multiline 多行合并功能...

weidabao123
2016/12/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

4.57 MariaDB慢查询日志 4.58 Tomcat_JDK部署 4.59 zrlog安装 4.60 Nginx代理Tomcat

4.57 MariaDB慢查询日志 为什么要配置慢查询日志? 目的是为了帮助我们分析MariaDB的瓶颈点。 如何配置? 1)进入MariaDB里面执行:show variables like 'slow%';show variables li...

Champin
今天
3
0
自动机器学习简述(AutoML)

为什么需要自动机器学习 对于机器学习的新用户而言,使用机器学习算法的一个主要的障碍就是算法的性能受许多的设计决策影响。随着深度学习的流行,工程师需要选择相应的神经网络架构,训练过...

naughty
今天
2
0
Android Studio Unable to resolve dependency for错误的排查

记录一次Android Studio Unable to resolve dependency for错误的排查 Android Studio 3.2.1 错误提示 Unable to resolve dependency for... 原因:在gradle中设置的代理并没有gradle 4.6的版......

Gemini-Lin
今天
0
0
java常用设计模式

设计模式; 一个程序员对设计模式的理解: “不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“...

呵呵哒灬
今天
5
0
Kafka入门

1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词...

watermelon11
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部