要求:沿用上一个案例,使用Zabbix实现报警功能,实现以下目标:

1.监控Linux服务器系统账户
2.创建Media, 设置邮件服务器及收件人邮箱
3.当系统账户数量超过26人时发送报警邮件

方案:

自定义的监控项默认不会自动报警,首页也不会提示错误,需要配置触发器与报警动作才可以自定报警。什么是触发器(trigger) ?
表达式,如内存不足300M,用户超过30个等当出发条件发生后,会导致一个触发事件触发事件会执行某个动作
什么是动作(action) ?
动作是触发器的条件被触发后所执行的行为
可以是发送邮件、也可以是重启某个服务等
参考如下操作步骤:

1.创建触发器并设置标记
2.设置邮箱
3.创建Action动作

 步骤

步骤一:创建触发器规则
1)创建触发器
创建触发器时强烈建议使用英文的语言环境,通过Configuration--> Templates,找到我们之前创建的count.line.passwd模板,点击模板后面
的triggers,如图所示。

zabbix报警转发java zabbix报警机制_zabbix报警转发java

 

 

zabbix报警转发java zabbix报警机制_Problem_02

 

 

2)触发器表达式
创建触发器时需要定义表达式,触发器表达式(Expression) 是触发异常的条件,触发器表达式格式如下:
{<server>:<key> . <function>(< parameter> )} <operator> <constant>
{主机: key.函数(参数)}<表达式> 常数
在如图-2所示的蓝色方框中编写触发器表达式,可以直接手写,也可以通过add选择表达式模板。

zabbix报警转发java zabbix报警机制_邮件服务器_03

 

 

下面,我们看几个表达式的案例:

{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

大多数函数使用秒作为参数,可以使用#来表示其他含义(具体参考表-1)。

avg, count, last, min and max 等函数支持额外的第二个参数time_shift(时间偏移量),这个参数允许从过去一段时间内引用数据。

3)配置触发器

设置触发器名称,如图-3所示,点击add添加表达式,填写表达式:监控项为账户数量,最近300秒账户数量大于26(根据系统账户数量实际填写)

zabbix报警转发java zabbix报警机制_邮件服务器_04

zabbix报警转发java zabbix报警机制_Problem_05

选择触发器报警级别,如图下图1所示,Add创建该触发器,如下图2所示。

zabbix报警转发java zabbix报警机制_zabbix报警转发java_06

zabbix报警转发java zabbix报警机制_Problem_07

步骤二:设置邮件

1) 创建Media
通过Administration (管理) - > Media Type (报警媒体类型) -- >选择Email (邮件),如图。

 

zabbix报警转发java zabbix报警机制_Problem_08

 

 设置邮件服务器信息,设置邮件服务器及邮件账户信息,点击上图email进入设置。

 

zabbix报警转发java zabbix报警机制_邮件服务器_09

 

2)为用户添加Media

 在Administration (管理) -->Users (用户)中找到选择admin账户,

 

zabbix报警转发java zabbix报警机制_zabbix报警转发java_10

 

 

点击Admin账户后,在弹出的界面中选择Media (报警媒介)菜单-- >点击Add(添加)报警媒介,点击Add (添加) 后,在Meida Type中填写报警类型,收件人,时间等信息。

zabbix报警转发java zabbix报警机制_Problem_11

步骤三:创建Action动作

1) Action动作
Action (动作)是定义当触发器被触发时的时候,执行什么行为。
通过Configuration (配置) --> Actions (动作) -->Create action (创建动作),如图所示。

 

zabbix报警转发java zabbix报警机制_zabbix报警转发java_12

2)配置Action动作的触发条件

填写Action动作的名称,配置什么触发器被触发时会执行本Action动作(账户数量大于26)如图:

zabbix报警转发java zabbix报警机制_Problem_13

 

 

3)配置Action动作的具体行为
配置动作的具体操作行为(发送信息或执行远程命令),无限次数发送邮件,60秒1次,发送给Admin用户,如图所示。

zabbix报警转发java zabbix报警机制_触发器_14

 

 

zabbix报警转发java zabbix报警机制_zabbix报警转发java_15

 

4)测试效果
在被监控主机创建账户(让账户数量大于26),
然后登录监控端Web页面,在仪表盘中查看问题报警(需要等待一段时间)

 

zabbix报警转发java zabbix报警机制_邮件服务器_16

 

 

 

查看报警邮件,在监控服务器上使用mail命令查收报警邮件,