Zabbix可以使用log监控类型来监控日志文件。

在配置Item的时候,Type选择Zabbix agent (active),这里主要需要配置的是Key。下面是监控日志的两种key——log和logtr。

log[/path/to/some/file,<regexp>,<encoding>,<maxlines>,<mode>,<output>]

logtr[/path/to/some/filename_format,<regexp>,<encoding>,<maxlines>,<mode>,<output>]

◆ regexp:要匹配内容的正则表达式,或者直接写你要检索的内容也可以,例如我想检索带ERROR关键词的记录

◆ encoding:编码相关,留空即可

◆ maxlines:一次性最多提交多少行,这个参数覆盖配置文件zabbxi_agentd.conf中的’MaxLinesPerSecond’,我们也可以留空

◆ mode:默认是all,也可以是skip,skip会跳过老数据

◆ output:输出给zabbix server的数据。可以是\1、\2一直\9,\1表示第一个正则表达式匹配出得内容,\2表示第二个正则表达式匹配错的内容。

如果仔细看可以发现,第一个参数不一样,logrt的第一个参数可以使用正则表达式。针对日志回滚用得,例如我们每天都切割nginx日志,日志名位www.a.com_2015-01-01.log、www.a.com_2015-01-02.log等等,使用log肯定不合适,如果文件名使用正则,那么新增的日志文件会立即加入监控。

备注:不管新日志、老日志,只要他们有变更,zabbix都会监控。

只要配置了<regexp>,Zabbix会根据<regexp>的正则表达式来匹配日志中的内容。注意,一定要保证Zabbix用户对日志文件有可读权限,否则这个Item的状态会变成“unsupported”。


注意事项:

1、Zabbix Server和Zabbix Agent会追踪日志文件的大小和最后修改时间,并且分别记录在字节计数器和最新的时间计数器中。

2、Agent会从上次读取日志的地方开始读取日志。

3、字节计数器和最新时间计数器的数据会被记录在Zabbix数据库,并且发送给Agent,这样能够保证Agent从上次停止的地方开始读取日志。

4、当日志文件大小小于字节计数器中的数字时,字节计数器会变为0,从头开始读取文件。

5、所有符合配置的文件,都会被监控。

6、一个目录下的多个文件如果修改时间相同,会按照字母顺序来读取。

7、到每个Update interval的时间时,Agent会检查一次目录下的文件。

8、Zabbix Agent每秒发送日志量,有一个日志行数上限,防止网络和CPU负载过高,这个数字在zabbix_agentd.conf中的MaxLinePerSecond。

9、在logtr中,正则表达式只对文件名有效,对文件目录无效。

监控案例:

公司的云泊系统中会记录Pms终端连接的三种状态,

1、断开连接

2、连接成功

3、重连成功

这些日志使我们想要获取到的。其他的是一些Debug日志和Error日志,这些我们不关心

所以我们需要将需要监控的日志获取到。以下是我们想要获取的日志信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ApiServer | 2016-07-12 10:18:49.509 | INFO  | send mail successfully, content:2016-07-12 10:18:47, 停车场:智慧园停车场重连成功
ApiServer | 2016-07-12 10:02:10.576 | INFO  | send mail successfully, content:2016-07-12 10:02:08, 停车场:智慧园停车场重连成功
ApiServer | 2016-07-12 11:14:15.021 | INFO  | send mail successfully, content:2016-07-12 11:14:13, 停车场:智慧园停车场重连成功
ApiServer | 2016-07-12 11:18:33.241 | INFO  | send mail successfully, content:2016-07-12 11:18:30, 停车场:智慧园停车场重连成功
ApiServer | 2016-07-12 12:04:49.299 | INFO  | send mail successfully
ApiServer | 2016-07-12 11:22:13.236 | INFO  | send mail successfully, content:2016-07-12 11:22:11, 停车场
ApiServer | 2016-07-12 12:33:22.945 | INFO  | send mail successfully, content:2016-07-12 12:33:21, 智慧园停车场连接断开
ApiServer | 2016-07-12 12:33:22.945 | INFO  | send mail successfully, content:2016-07-12 12:33:21, 智慧园停车场连接断开
ApiServer | 2016-07-12 12:33:22.945 | INFO  | send mail successfully, content:2016-07-12 12:33:21, 智慧园停车场连接断开
ApiServer | 2016-07-12 12:33:22.945 | INFO  | send mail successfully, content:2016-07-12 12:33:21, 智慧园停车场连接断开
ApiServer | 2016-07-12 03:29:51.751 | INFO  | send mail successfully, content:2016-07-12 03:29:50, 智慧园停车场连接断开
ApiServer | 2016-07-12 04:14:09.640 | INFO  | send mail successfully, content:2016-07-12 04:14:08, 智慧园停车场连接断开
ApiServer | 2016-07-12 05:45:17.496 | INFO  | send mail successfully, content:2016-07-12 05:45:16, 智慧园停车场连接断开
ApiServer | 2016-07-12 07:53:22.012 | INFO  | send mail successfully, content:2016-07-12 07:53:20, 智慧园停车场连接断开
ApiServer | 2016-07-12 08:24:52.001 | INFO  | send mail successfully, content:2016-07-12 08:24:50, 智慧园停车场连接断开
ApiServer | 2016-07-12 12:33:28.890 | INFO  | send mail successfully, content:2016-07-12 12:33:27, 停车场:智慧园停车场连接成功
ApiServer | 2016-07-12 09:53:49.780 | INFO  | send mail successfully, content:2016-07-12 09:53:48, 停车场:智慧园停车场重连成功

创建监控项:

注意:我这里是测试环境,并非生产环境。

这里我匹配的关键字是停车场

创建trigger:

Trigger的解释:

1
(({10.10.10.202:log[/mnt/test.log,停车场,,,,].regexp(断开)})#0)&{10.10.10.202:log[/mnt/test.log,停车场,,,,].nodata(30)}=0

A:

1
(({10.10.10.202:log[/mnt/test.log,停车场,,,,].regexp(断开)})#0)

log中包含了‘停车场’且包含‘断开’字符串,则表达式为真。

B:

1
{10.10.10.202:log[/mnt/test.log,停车场,,,,].nodata(30)}=0

表示30秒内有数据产生则表达式为真,即30秒内如果没有新数据了,则表达式为假。为假,则告警恢复了。

A&B:表示A、B都为真,才为真。即item返回数据中会包含"断开",则触发器被触发,30秒内没有新数据的话,触发器恢复。这样就保证了触发器不会一直在触发状态。

再来看一个例子

1
{Template OS Linux:system.localtime.nodata(5m)}=1&{Template OS Linux:icmpping.last(0)}=1

这个是zabbix自带的linux os template中的一个监控项,

1
system.localtime.nodata(5m)}=1

表示5分钟内没有数据为真,注意等号后面是1.

这里有一个问题:如果系统产生一条日志被匹配到了,触发了告警。此时告警没有恢复,那么接下来的30秒之类如果还有日志被匹配到了,那么它是不会触发告警的。而nodata的时间间隔最少为30秒,所以我们无法通过调整时间来解决这个问题。那么我们可以通过创建多个trigger来解决这个问题。

前面说了状态有三种,所以我们创建的trigger有3个,这样能保证每一个状态的日志都能触发告警。

下面是另外两个状态的trigger

本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1825761,如需转载请自行联系原作者

zabbix日志监控相关推荐

  1. zabbix日志监控:操作系统、业务系统、文件大小、多行日志

    zabbix日志监控:操作系统.业务系统.文件大小.多行日志 目录 1 监控操作系统日志 2 监控业务系统日志 具体要求: 分析: 操作: 3 监控日志文件大小 (1)在被管主机当中安装agent ( ...

  2. 基于docker安装部署Zabbix及使用,自动发现、日志监控报警及参照官方文档遇到的问题(图文)

    目录 一.相关原理 (1)概述 (2)Zabbix 功能 (3)Zabbix 概述 (4)zabbix监控架构详解 二.主要步骤 (一)工具/环境准备 (二)docker安装及测试 (三)docker ...

  3. Zabbix监控系统系列之八:日志监控

    ======= 系列目录 ======= Zabbix监控系统系列之一 : Server部署 Zabbix监控系统系列之二 : 初始化配置 Zabbix监控系统系列之三 :版本升级 Zabbix监控系 ...

  4. zabbix 5.0 使用内置监控项实现日志监控告警

    zabbix 5.0 监控日志 除了灵活的使用自定义监控项的方式,这里使用zabbix自带的日志监控.本文使用的是zabbix-5.0版本 使用条件 项目 要求 zabbix_agent 配置主动式参 ...

  5. zabbix全网监控介绍

    zabbix全网监控 面试题:你公司监控什么? 利用OSI/IOS7层协议进行回答 应用层:监控协议http/https/ssh 如nginx mysql rsync tomcat(进程,URL地址. ...

  6. linux下构建Zabbix网络监控平台

    linux下构建Zabbix网络监控平台 由于图片过多,本人不想一张一张上传,请下载我的详细文章: linux下构建zabbix网络监控平台[技术文档](河南-清小小)-下载地址: http://do ...

  7. 为什么说Prometheus是足以取代Zabbix的监控神器?

    点击上方"朱小厮的博客",选择"设为星标" 回复"666"获取公众号专属资料 一.简介 Kubernetes自从2012年开源以来便以不可阻 ...

  8. Zabbix分布式监控(zabbix-proxy)的配置关键点

    Zabbix Proxy简介 Zabbix Proxy是实现Zabbix分布式监控的重要组成部分,是连接Zabbix Agent和Zabbix Server的"中间人"." ...

  9. Zabbix Agent2监控redis

    为能及时发现redis服务的存活性状态,以及服务的info信息,慢查询的日志数,因此使用Zabbix Agent2进行监控. 一 监控Redis的实现原理 redis插件位于源码的zabbix-age ...

  10. Zabbix 分布式监控

    Zabbix 分布式监控 ### 1.介绍 分布式监控概述:proxy and node 1.Zabbix 的三种架构 Server-agent Server-Node-agent Server-Pr ...

最新文章

  1. linux监控目录变动
  2. Emmet插件:HTML/CSS代码快速编写神器
  3. 【直播课】有三AI直播答疑服务上线,如何学习计算机视觉与准备面试直播限时免费...
  4. at指令 和c语言,学渣求指教,如何识别字符串中的AT命令并逐个输出,求程序!!!...
  5. mysql不用limit怎么分页_mysql limit 分页的用法及注意要点
  6. Vue_template是什么
  7. 第三次学JAVA再学不好就吃翔(part20)--面向对象
  8. pyculiarity解决报错ValueError: data must be a 2 column data.frame, with thefirst column...
  9. kettle mysql 乱码
  10. vi/vim 键盘图
  11. centos7网络环境配置(optenstack环境配置)
  12. JavaScript学习——JavaScript 条件 语句 switch语句 while语句
  13. 【SpringBoot】整合MyBatis
  14. 【不读唐诗,不足以知盛世】盛唐诗坛的璀璨明星们
  15. CallStack获取函数堆栈
  16. 微信H5 分享(自定义标题、图片、链接) 与 禁止分享(微信隐藏功能按钮) 功能的写法
  17. 论文笔记(显微图像拼接)——A fast algorithm for material image sequential stitching
  18. 2022韦莱韬悦人力资源管理季刊
  19. 知乎:电脑长时间不关机会缩短电脑寿命吗?
  20. linux下使用mail定时发送邮件-阿里企业邮箱发送

热门文章

  1. 程序员必备开发工具(IDE)推荐
  2. lettcode算法题目--玛祖游戏
  3. Unity Shader - CheckerBoard(棋盘格) 等 Pattern 的测试
  4. 泰坦尼克号生命值预测
  5. 如何通过命令行显示 Linux 硬件信息
  6. 两台计算机互联方案,如何连接两台电脑
  7. 查询vue版本时报错:“文件名、目录名或卷标语法不正确“
  8. EXCEL和公式里的 通配符
  9. 宾夕法尼亚州立大学:探索量子AI如何加速治愈癌症
  10. Anaconda重装后【系统找不到指定的路径】