Zabbix报警机制
概念介绍
-
自定义的监控项默认不会自动报警
-
首页也不会提示错误
-
需要配置触发器与报警动作才可以自定报警
-
触发器(trigger)
表达式,如内存不足300M,用户超过30个等
当出发条件发生后,会导致一个触发事件
触发事件会执行某个动作 -
动作(action)
触发器的条件被触发后的行为
可以是发送邮件,也可以是重启某个服务等
实现功能:
- 监控Linux服务器系统账户
- 创建Media,设置邮件服务器及收件人邮箱
- 当系统账户数量超过26人时发送报警邮件
一,创建触发器规则
(1)创建触发器
创建触发器时强烈建议使用英文的语言环境,通过Configuration–> Templates,找到我们之前创建的count.line.passwd模板,点击模板后面的triggers,如图
(2)触发器表达式
创建触发器时需要定义表达式,触发器表达式(Expression)是触发异常的条件,触发器表达式格式如下:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
{主机:key.函数(参数)}<表达式>常数
在如图所示的蓝色方框中编写触发器表达式,可以直接手写,也可以通过add选择表达式模板。
下面,我们看几个表达式的案例:
{web1:system.cpu.load[all,avg1].last(0)}>5
//0为最新数据
如果web1主机最新的CPU平均负载值大于5,则触发器状态Problem
{vfs.fs.size[/,free].max(5m)}<10G
//5m为最近5分钟
根分区,最近5分钟的最大容量小于10G,则状态进入Problem
{vfs.file.cksum[/etc/passwd].diff(0)}>0
//0为最新数据
最新一次校验/etc/passwd如果与上一次有变化,则状态进入Problem
大多数函数使用秒作为参数,可以使用#来表示其他含义.
avg, count, last, min and max 等函数支持额外的第二个参数time_shift(时间偏移量),这个参数允许从过去一段时间内引用数据。
函数内容 | 描述 |
---|---|
sum(600) | 600秒内所有值的总和 |
sum(#5) | 最后5个值的总和 |
last(20) | 最后20秒的值 |
last(#5) | 倒数第5个值 |
avg(1h,1d) | 一天前的1小时的平均值 |
(3)配置触发器
设置触发器名称,如图所示,点击add添加表达式,填写表达式:监控项为账户数量,最近300秒账户数量大于26(根据系统账户数量实际填写)
选择触发器报警级别,Add创建该触发器
二,设置邮件
(1)创建Media
通过Administration(管理)–>Media Type(报警媒体类型)–>选择Email(邮件)
设置邮件服务器信息,设置邮件服务器及邮件账户信息
(2)为用户添加Media
在Administration(管理)–>Users(用户)中找到选择admin账户
点击Admin账户后,在弹出的界面中选择Media(报警媒介ÿ