本文将介绍使用 zabbix 监控日志文件,并在出现设定的标志(例如:error)后报警。

感谢 @Landy 提出了这个问题。

实现目标

监控 /tmp/test.log 文件,如果1分钟内该文件中出现关键词 error,就告警,持续1分钟没有错误后恢复。

最终效果如下:

<div class="image-wrapper-box">

<div class="image-wrapper">
    <ul class="image-box">
        <li><img alt="ZABBIX 监控 log 特征并报警" itemprop="screenshot" class="portrait" src="https://cache.img.qiansw.com:1443/usr/uploads/2017/03/2758709069.jpg"></li>
        <li><img alt="ZABBIX 监控 log 特征并报警" itemprop="screenshot" class="portrait" src="https://cache.img.qiansw.com:1443/usr/uploads/2017/03/4170169703.jpg"></li>
    </ul>
</div>

</div>

创建自定义监控项

请参考下面图片创建自定义监控项。

因为记录的是文本,如果比较在意磁盘占用空间,建议将历史记录时间设定的稍短一些。

zabbix 监控log.jpg

创建监控项的触发器

参照下面图片设定触发器,您可以到这里参考 触发器语法

{api:log[/tmp/test.log,error].nodata(60)}=0

zabbix log 监控 触发器创建.jpg

测试

直接操作被监控服务器,在监控的文件中追加了一行带关键词的文本。

echo "error:Test." >> /tmp/test.log

查看log记录

在最新数据中可以直接查看最新数据,或者该项的历史数据。

查看log数据.jpg

log 历史 数据.jpg

此时手机也接收到告警消息,一分钟后不符合触发器条件,告警消失。

测试成功。