zabbix监控日志文件 MySQL日志为例(95)

凉白开 zabbix2773,88029字数 1948阅读6分29秒阅读模式

一般情况下,日志最先反映出应用当前的问题,在海量日志里面找到我们异常记录,然后记录下来,并且根据情况报警,大家可以监控系统日志、nginx、Apache、业务日志。这边我拿常见的MySQL日志做监控,大家看演示。

监控日志key

首先要了解key,文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

log[ file  ,<regexp>,<encoding>,<maxlines>,<mode>,<output>]文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

file:文件名,写绝对路径文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

regexp:要匹配内容的正则表达式,或者直接写你要检索的内容也可以,例如我想检索带ERROR关键词的记录文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

encoding:编码相关,留空即可文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

maxlines:一次性最多提交多少行,这个参数覆盖配置文件zabbxi_agentd.conf中的’MaxLinesPerSecond’,我们也可以留空文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

mode:默认是all,也可以是skip,skip会跳过老数据文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

output:输出给zabbix server的数据。可以是\1、\2一直\9,\1表示第一个正则表达式匹配出得内容,\2表示第二个正则表达式匹配错的内容。文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

备注:我极力推荐大家使用第二个参数,看到网上一些zabbix监控日志的教程,几乎只有第一个参数,这样将会导致日志文件里的内容统统丢给zabbix_server记录,我想,这一定不是大家想看到的。文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

日志文件权限配置

给日志文件加上读取权限,为了演示方便,我直接给777文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

# chmod 777 /data/mydata/mydata_3306/li220-237.err

如果权限给的不到位,zabbix agent日志有类似如下报错:文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

4780:20150311:135742.401 cannot open '/data/mydata/mydata_3306/li220-237.err': [13] Permission denied
 4780:20150311:135742.401 active check "log[/data/mydata/mydata_3306/li220-237.err,ERROR,,,,]" is not supported
 4779:20150311:135742.402 cannot open '/data/mydata/mydata_3306/li220-237.err': [13] Permission denied
 4779:20150311:135742.402 active check "log[/data/mydata/mydata_3306/li220-237.err,ERROR,,,,]" is not supported

zabbix配置

Host>>目标主机>>item>>create item,如下:文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

logrt

zabbix日志监控

说明:文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

1. type必须选择zabbix agent(active),因为数据是zabbix被监控的主动提交给server文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

2. key:log[/data/mydata/mydata_3306/li220-237.err,ERROR,,,,],我不多说了,细心的人会说,还有一个叫logrt得key,有什么区别,等会儿讲.文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

3. log time format:yyMMddphh:mm:ss,对应日志的行头150311 11:47:09,y表示年、M表示月、d表示日、p和:一个占位符,h表示小时,m表示分钟,s表示秒。文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

zabbix监控MySQL日志查看

切换到最新日志里面,找到相应数据,如下是我的监控截图文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

logrt

zabbix监控MySQL日志

接下来便是触发器,大家可以根据自己的情况来创建触发器,例如日志中包含某个字符串等等,如上图,我们可以触发执行mysql表修复。文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

logrt介绍

key:
log[ file,<regexp>,<encoding>,<maxlines>,<mode>,<output>]
logrt[file_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>]

如果仔细看可以发现,第一个参数不一样,logrt的第一个参数可以使用正则表达式。针对日志回滚用得,例如我们每天都切割nginx日志,日志名位www.ttlsa.com_2017-01-01.log、www.ttlsa.com_2017-01-02.log等等,使用log肯定不合适,如果文件名使用正则,那么新增的日志文件会立即加入监控。文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

备注:不管新日志、老日志,只要他们有变更,zabbix都会监控。文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-monitor-logs/

 

 

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
凉白开
  • 本文由 发表于 12/03/2015 01:00:57
  • 转载请务必保留本文链接:https://www.ttlsa.com/zabbix/zabbix-monitor-logs/
  • logrt
  • zabbix日志监控
  • 日志监控
评论  27  访客  27
    • 懒人
      懒人 0

      请教下这里的日志监控日期格式应该如何配置?
      logrt[D:\kcxp\log\%date:~0,4%%date:~5,2%%date:~8,2%\sys.log,success],
      %date:~0,4%%date:~5,2%%date:~8,2% 代表20160607的日期格式,
      用* 试过也不支持

      • liulang628
        liulang628 0

        我的日志监控不成功,

          • 匿名
            匿名 9

            @ liulang628 解决没,我的3.0.8日志监控也没有成功,看不到数据

          • 扛靶子
            扛靶子 1

            请问出现ZBX_NOTSUPPORTED ,accessible only as active check是什么原因,如何才能解决

              • 匿名
                匿名 9

                @ 扛靶子 我的也是,兄弟解决没?

                • 匿名
                  匿名 9

                  @ 扛靶子 解决了吗?

                • sea
                  sea 9

                  zabbix监控MySQL日志
                  请问怎么写触发报警器?

                  • 苏幕遮
                    苏幕遮 1

                    11997:20160820:112222.265 cannot stat ‘/mnt/hswx/mrs/logs/mrs.log’: [13] Permission denied
                    11997:20160820:112232.267 cannot stat ‘/mnt/hswx/mrs/logs/mrs.log’: [13] Permission denied
                    11997:20160820:112242.268 cannot stat ‘/mnt/hswx/mrs/logs/mrs.log’: [13] Permission denied
                    11997:20160820:112242.268 active check “log[/mnt/hswx/mrs/logs/mrs.log,ERROR,,,,]” is not supported
                    我把zabbix 添加到了suduer,而且把日志权限改成了666(日志本身没法执行,就666),但是还是会有上面的报错,请问怎么破?

                      • 啊啊啊
                        啊啊啊 9

                        @ 苏幕遮 父目录进不去

                      • snowice
                        snowice 0

                        能不能问一下 我这边用你的方法在zabbix服务端成功监控了日志 但是客户端用同样的方法却获取不到数据 客户端数据如cpu 内存使用情况能正常获取 并且我已经关闭了两边的iptables和selinux.我实在不知道还有哪里有问题了 能帮帮我么 万分感谢

                          • 卢俊义
                            卢俊义 1

                            @ snowice 作者也不知道

                          • 仰望着星空
                            仰望着星空 1

                            能具体说下logrt这个键值吗?我们现在日志是以back-log-201601,back-log-201602这种格式弄得,正则这样写对吗:logrt[back-log-_*]

                            • 85757916
                              85757916 3

                              谢谢分享…

                              • 三次握手
                                三次握手 9

                                请问zabbix可以实现像计划任务似的功能吗,领导让我在特定的时间对日志进行过滤,如果可以的话,突然过滤大量的日志信息会不会让CPU跑满了。

                                  • 凉白开
                                    凉白开 9

                                    @ 三次握手 可以配置时间段~

                                  • lklkxcxc
                                    lklkxcxc 0

                                    {Patrol:log[/home/zabbix/ora_alert.log].regexp(ORA|oracle,#50)}=1我这么设置tigger为什么报警的时候只能把log的第一条给告警出来,其它的条目在lastdata可以看到,但是就是不告警

                                    • vicky
                                      vicky 0

                                      请问这个Log time format的作用是什么啊?如果我不写,好像也能监控到数据。
                                      谢谢

                                      • 承轩
                                        承轩 0

                                        带日期的日志,使用通用的正则表达式就行?

                                        • Aceslup
                                          Aceslup 9

                                          <encoding>,<maxlines>,<mode>,<output>几个参数咋没介绍列。

                                            • 凉白开
                                              凉白开 9

                                              @ Aceslup 你没仔细看吧~

                                            • night
                                              night 9

                                              如果我同一个目录下日志非常的多,会不会造成 zabbix 疯狂的扫所有的日志?造成 zabbix_agentd 的某个子进程 CPU 100%?

                                                • TTTLSA
                                                  TTTLSA 9

                                                  @ night 请使用正则,文件不能太多。

                                                • 时光飞逝
                                                  时光飞逝 9

                                                  zabbix监控日志,被监控端的zabbix_agentd.conf中不用定义UserParameter 吗?

                                                    • TTLSA
                                                      TTLSA 9

                                                      @ 时光飞逝 对的,不需要~

                                                        • 时光飞逝
                                                          时光飞逝 9

                                                          @ TTLSA 好吧,我用zabbix2.2.2,按照你的方法没看到有日志数据,(就是你说的“如下是我的监控截图”)

                                                            • TTLSA
                                                              TTLSA 9

                                                              @ 时光飞逝 2.2也是一样的方法,请看服务器端和客户端两方面的日志。

                                                      评论已关闭!