一 Action概述
当产生Trigger后,即当触发器条件被满足时,采取一些操作,如发送事件通知,远程执行命令等,需要配置Action。
名称 | 作用 |
---|---|
Trigger | 当Trigger的状态从OK变为PROBLEM |
Discovery | 当network discovery工作 |
Auto registration | 主动模式的agent自动注册 |
Internal | 当Items变成不被支持(unsupported)或者Trigger变为未知状态(unknown state) |
二 Action配置
2.1 配置步骤
- Configuration---->Actions
- 在Event source中选择事件来源
- Create action
- 设置Action参数
- Conditions,设置执行动作
2.2 具体配置
Action条件配置:
参数 | 描述 |
---|---|
Name | 唯一的Action名字 |
Type of calculation | 条件之间的关系,且或非 |
Conditions | 维护周期 触发器状态为PROBLEM |
New condition | 添加新的更多的条件 |
具体操作配置:
操作配置参数
参数 | 描述 |
---|---|
Default operation step duration | 默认时间间隔为1小时 |
Default subject | 默认报警通知主题,可以包含宏,如{TRIGGER.NAME} |
Default message | 默认通知内容,可以包含宏,如{HOST.NAME} |
Pause operations while in maintenance | 维护周期时间内暂时此告警操作 |
Operations | 操作内容 |
Operation details | 具体操作细节 Steps:执行操作的起始次数,0结束表示无限制 Step duration:每次操作的时间间隔 Operation type:操作形式,发送信息,发送远程命令 Send to User groups:发送信息所接受的用户组 Send to Users:发送信息所接受的用户 Send only to:发送信息通知的介质,如邮件、即使讯息 Default message:默认信息内容 |
解释:
默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户和zabbix administrator组。
假如故障持续了1个小时,它也只发送一次。如果改成1-0,0是表示不限制.无限发送
间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件。
相关参考参数:
- 告警主机:{HOST.NAME}
- 主机IP: {HOST.IP}
- 告警时间:{EVENT.DATE} {EVENT.TIME}
- 告警等级:{TRIGGER.SEVERITY}
- 告警信息:{TRIGGER.NAME}
- 问题详情:{ITEM.NAME}:{ITEM.VALUE}
- 事件ID: {EVENT.ID}
恢复操作配置:
恢复操作配置参数
参数 | 描述 |
---|---|
Default subject | 默认报警通知主题 |
Default message | 默认通知内容 |
Operations | 事件恢复后执行的操作内容 |
Operation details | 具体操作细节 Steps:执行操作的起始次数,0结束表示无限制 Step duration:每次操作的时间间隔 Operation type:操作形式,发送信息,发送远程命令 Send to User groups:发送信息所接受的用户组 Send to Users:发送信息所接受的用户 Send only to:发送信息通知的介质,如邮件、即使讯息 Default message:默认信息内容 |
保存后
三 发送消息中的宏配置
宏配置是在消息主题和消息内容中完成的。
示例一:
消息:{TRIGGER.NAME}:{TRIGGER.STATUS}
接受内容后变为:Processor load is too high on server zabbix.zabbix.com:PROLEM
示例二:
消息:Processor load is:{zabbix.zabbix.com:system.cpu.load[avg1].last(0)}
接受内容后变为:Processor load is:1.45
示例三:
消息: Latest value:{{HOST.HOST}:{ITEM.KEY}.last(0)}
MAX for 15 minutes:{{HOST.HOST}:{ITEM.KEY}.max(900)}
MIN for 15 minutes:{{HOST.HOST}:{ITEM.KEY}.min(900)}
接受内容后变为:Latest value:1.45
MAX for 15 minutes:2..44
MIN for 15 minutes:1.01
示例四:
消息: Problem:
Event ID:{EVENT.ID}
Event value:{EVENT.VALUE}
Event status:{EVENT.STATUS}
Event time:{EVENT.TIME}
Event date:{EVENT.DATE}
Event age:{EVENT.AGE}
Event acknowledgement:{EVENT.ACK.STATUS}
Event acknowledgement history:{EVENT.ACK.HISTORY}
Recovery:
Event ID:{EVENT.RECOVERY.ID}
Event value:{EVENT.RECOVERY.VALUE}
Event status:{EVENT.RECOVERY.STATUS}
Event time:{EVENT.RECOVERY.TIME}
Event date:{EVENT.RECOVERY.DATE}
接受内容后变为:
Problem:
Event ID:21874
Event value:1
Event status:PROBLEM
Event time:13:04:30
Event date:2016.06.03
Event age:5m
Event acknowledgement:Yes
Event acknowledgement history:2016.06.03 13:04:30 "John Smith (Admin)"
Recovery:
Event ID:21896
Event value:0
Event status:OK
Event time:13:10:07
Event date:2016.06.03
四 Conditions(条件)配置
4.1 条件的逻辑运算
AND:所有的条件必须同时满足
OR:满足条件中的一个即可
AND/OR:两个关系的组合,AND用于不同条件的关系,OR用户相同条件的关系
运算符 | 描述 | 运算符 | 描述 |
---|---|---|---|
= | 条件等于 | like | 部分匹配 |
>= | 条件大于或等于 | not like | 部分不匹配 |
>= | 条件小于或等于 | in | 在范围内 |
<> | 排除 | not in | 不在范围内 |
4.2 触发器的状态
如果Trigger从OK---->PROBLEM,则状态变为PROBLEM
如果Trigger从PROBLEM---->OK,则状态变为OK
对Trigger创建一个新的Action时,会自动添加以下两个条件
Trigger value = PROBLEM:任何问题都会发送消息,如果没有配置条件,则会发送所有事件消息
Maintenance status = not in maintenance:在维护时间段将不会发送消息
五 Operation type(操作类型)
5.1 动作有以下两种
- 发送消息(send message)
- 执行远程命令(Remote command)
5.2 配置发送消息的步骤
- 配置消息发送介质,步骤为:Administration---->Media types
- 配置一个对需要发送消息设备的用户,步骤为:Administration---->Users---->Create User
- 配置Action中的消息发送
注意:配置的用户必须对需要发送消息的主机的Trigger具备可读权限。
5.3 远程命令配置
- 通过远程命令可以执行以下操作:
- 若服务无响应,自动重启应用(Web服务、中间件、CRM)
- 通过IPMI协议远程重启服务器
- 清空磁盘无用文件,释放空间
- 当CPU负载过高,从一个物理机迁移VM到另一台物理机
- 当CPU资源不足时,为云环境增加一个节点资源CPU(磁盘、内存及其他)等
注意:
- 远程命令不支持主动模式的Agent,是从Server向Agent执行,即被动模式
- 远程命令不支持代理模式
- 命令的长度被限制为255个字符
- 可以在一个操作中执行多条命令,添加新的远程命令即可
- 远程命令可以包含宏
- Zabbix用户必须对该命令具有执行权限,或可以无密码模式sudo
- Agent的防火墙允许从数据包进来的命令
- Zabbix不会检测命令是否执行成功,只是执行命令
配置过程:
1 开启Agent对远程命令的支持
[root@imxhy02 ~]# vi /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
[root@imxhy02 ~]# systemctl restart zabbix-agent.service
2 web添加对remote command
即当Zabbix-ClientCentOS-02登录用户超过2的时候,发送信息给administrator用户组和admin用户,并且执行pkill -kill -t pts/2命令。
注意:当Zabbix用户执行root命令的时候,需要先设置此命令的权限,visudo。
六 discovery配置
6.1 自动发现discovery有以下8种
- 增加主机(add host)
- 删除主机(remove host)
- 开启主机监控(enable host)
- 关闭主机监控(disable host)
- 增加到组(add to group)
- 从一个组中删除(delete from group)
- 链接到模板(link to templates)
- 取消模板链接(unlink from template)
6.2 自动注册auto-registration动作有以下6种
- 发送消息(send message)
- 远程命令(remote command)
- 增加主机(add host)
- 关闭主机监控(disable)
- 增加到组(add ro group)
- 链接到模板(link to template)