前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zabbix使用内置监控项实现日志监控告警

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

作者头像
章工运维
发布2023-05-19 19:40:39
1.6K0
发布2023-05-19 19:40:39
举报
文章被收录于专栏:章工运维

# zabbix 5.0 监控日志

除了灵活的使用自定义监控项的方式,这里使用zabbix自带的日志监控。本文使用的是zabbix-5.0版本

# 使用条件

项目

要求

zabbix_agent

配置主动式参数

时间同步

zabbix_server和zabbix_agent

监控项类型

zabbix客户端(主动式)

被监控日志文件

zabbix用户需要可读权限

注意点:

其中,zabbix_agent.conf内关于zabbix客户端(主动式)的配置有以下2个

  1. ServerActive=192.168.1.101 #填写zabbix_server的地址
  2. Hostname=Zabbix server #填写本机主机名,要求一套监控系统内唯一,且要和web端配置的主机名一项保持一致。建议填写zabbix_agent的ip地址

日志文件的权限问题,可以用这条测试

代码语言:javascript
复制
sudo -u zabbix cat /usr/local/nginx/logs/access.log

# 监控项说明

# 内置的监控项

代码语言:javascript
复制
 log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]
日志文件监控。返回日志,是一条记录一行日志内容
log.count[fil,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]
监控日志文件行数统计。返回整数
logrt[file_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]	
日志文件监控与轮转服务。返回日志
logrt.count[file_regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]	
日志文件监视中匹配行的计数与日志轮换支持。 返回整型

# 参数说明

  1. file或file_regexp

日志文件所在的路径或者绝对路径名,后者可以使用正则匹配分割日志,比如/usr/local/nginx/logs/access.log*

  1. regexp

匹配正则表达式,可以使用关键词,比如ERROR

  1. encoding

在Linux/unix系统下默认编码为UTF-8,在Windows系统下默认编码为ANSI

  1. maxlines

每次给zabbix-server或者zabbix-Proxy发送的日志的最大行数,此参数会高于zabbix-agent.conf中的MaxLinesPerSecond参数值,通过此参数,可以控制一次发送的日志的数据条数,如果发送次数过多,可能会对zabbix-agnet的负载和I/O有很大的影响

  1. mode
  • all

为默认参数,表示匹配所有的日志,包括以前存的日志也会进行匹配

  • skip

表示跳过已存在的日志数据,只有新的日志才会进行匹配,一般使用此项

  1. output

表示匹配输出的正则表达式,\1~\9表示返回的匹配的第几个字符串,\0表示返回匹配的全部字符串,全部输出为默认值

  1. maxdelay

以秒为单位的最大延迟,用于忽略老的日志数据,及时获取当前的日志数据。(4.0+)当处理日志过多,在更新周期内达到maxlines的发送上限,但还有日志未发送时,会导致大量堆积,在严重的情况下,会造成日志处理速度跟不上,使用此参数忽略过期的日志发送0是默认值,永远不会忽略日志文件行输入可以是浮点数(float)>0.0,忽略较旧的行,以获得在maxdelay秒内分析最新行,会丢弃在规定时间内的无法发送的数据

  1. options

日志轮询、切割方式(4.0+)rotate,日志轮询、切割,默认值copytruncate,先拷贝文件,然后清空日志的轮询方式,copytruncate不能与maxdelay一起使用,如使用此参数,maxdelay必须为0或者未指定[size=12.0000pt]

# 使用实例

# 新建监控项

代码语言:javascript
复制
logrt[/tmp/error.log,"error",,,,skip,,]
# 表示监控的日志文件为/tmp/error.log,正则匹配关键词error,模式选择跳过旧日志,不使用的其他参数需要留空

# 查看最新数据

通过echo模拟日志写入,之后根据【更新间隔】时间的不同,可以在【监控】–【最新数据】内看到模拟的报错信息

# 新建触发器

代码语言:javascript
复制
{192.168.1.100:logrt[/tmp/error.log,"error",,,skip,,,].str(error)}=1
and
{192.168.1.100:logrt[/tmp/error.log,"error",,,skip,,,].nodata(60s)}=0
# 实测这样的表达式可以实现,日志内出现error关键词即告警,在60秒内未收到新的error信息视为故障恢复
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # zabbix 5.0 监控日志
  • # 使用条件
  • # 监控项说明
    • # 内置的监控项
      • # 参数说明
      • # 使用实例
        • # 新建监控项
          • # 查看最新数据
            • # 新建触发器
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档