更多文章请移步:www.yanjun.pro
1、告警工作流程
-
告警概述
告警是监控的重要职能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生后即可知道监控指标是否超过规定阈值,从而决定是否采取相关措施处理故障
-
告警流程
首先是触发器达到规定阈值,然后action对事件信息进行处理,一方面是给用户发送告警信息,另一方面是执行相关命令,达到对事件故障自动尝试恢复的效果
-
zabbix告警配置步骤
- 配置trigger(触发器)
- 配置用户
- 配置告警方式
- 配置action(动作)
2、告警触发器(trigger)配置
2.1、trigger的作用
trigger是一组逻辑条件表达式,用于item在其更新周期内所产生的数据与目标阈值是否相同。在zabbix-server首次启动过程中,会将host、template、trigger、items等数据全部加载到内存缓存中,因此zabbix-server进程在收到每个item所产生的数据后,会立即在缓存中查找该item是否配置有trigger表达式,如果配置有,则将trigger表达式的阈值与当前item的数据进行比较,若满足阈值,则判断当前item处于故障(problem)状态;若不满足阈值,则处于正常(OK)状态
2.2、trigger的故障等级定义
trigger故障等级分为 p0 ~ p5 六个等级
- p0:灾难级别,该级别为重大故障,涉及到核心业务的正常运行
- p1:危险级别,该级别为危险级别,涉及到应用的正常运行
- p2:一般级别,对系统有影响,但不涉及致命危险的故障
- p3:警告级别,可能对系统具有影响的故障
- p4:信息级别:不影响系统正常运行状态的故障
- p5:不通知:一般用于测试告警
2.3、trigger配置步骤
trigger配置步骤为:【configuration】 —> 【hosts】/【templates】 —> 【triggers】 —> 【create trigger】
-
配置参数说明
-
name:触发器名称,支持{HOST.HOST}、 {HOST.NAME}、 {HOST.CONN}、 {HOST.DNS}、 {HOST.IP}、 {ITEM.VALUE}、 {ITEM.LASTVALUE}
-
Operational data:运行数据,运行数据允许定义任意字符串和宏,宏将在 Monitoring —> Problems 中动态解析为实时数据,虽然触发器名称中的宏将在问题发生时解析为它们的值,并将成为静态问题名称的基础,但操作数据中的宏保持了动态显示最新信息的能力。
-
Severity:触发器的事件级别
事件级别 故障定义 故障灯颜色 Not classified 未知等级 灰色 Information 一般信息 浅蓝 Warning 警告信息 黄色 Average 一般故障 橙色 High 高级别故障 浅红 Disaster 致命故障 红色 -
Expression:定义故障/问题的表达式
-
OK event generation:确认事件生成选项
- Expression:问题/故障生成表达式
- Recovery expression:问题/故障恢复表达式
- None:不恢复到OK状态
-
Recovery expression:故障恢复表达式
-
PROBLEM event generation mode:故障事件产生模式
- Single:在第一次告警触发后,后续出现的相同告警会做告警聚合,最终只产生一条告警信息
- Multiple:在第一次告警触发后,后续出现的相同告警不会做告警聚合,会产生多条告警信息
-
OK event closes:是否关闭OK事件
- All problems:关闭所有问题
- All problems if tag values match:关闭标签匹配的问题
-
Allow manual close:是否允许手动关闭
-
Tag for matching:输入需要做匹配的标签,仅在“All problems if tag values match”开启时使用
-
URL:如果不为空,则可以在【Monitoring】 —> 【Problems】中看到该URL选项
-
Enabled:是否启用该trigger
-
2.4、trigger告警依赖配置
告警依赖,是指一个事件的成立,需要依赖另一个事件,一般用于逻辑比较复杂的业务
2.5、trigger表达式
-
表达式语法
{<server>:<key>.<函数>(<参数>)}<操作符><数值>
-
相关选项
-
函数
参考官方文档
-
参数
- sum(600):对最近600秒内获取到的数值求和
- sum(#5):对最近获取到的5个数值求和
- avg、count、last、min、max:支持某个时间段之间的数据获取
-
操作符
支持算数运算符和逻辑运算符
-
-
trigger表达式示例
判断/etc/passwd文件是否有变化,当文件之前的cksum值与最近的值不同时,则触发告警
{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff()}=1
3、告警处理配置
在trigger和告警表达式配置好后,如果item中匹配到了告警表达式后,系统将触发告警,但是默认情况下,告警信息只是在本地体现,并不会主动对外发送,因此需要配置告警的处理方式
3.1、action功能概述
action的功能主要是对发生的事件根据一定条件,采取相应的措施
action的事件来源有4种:trigger(触发器)、discovery(网络自动发现)、auto registration(agent自动注册)、internal(内部事件)
3.2、action配置步骤
-
配置步骤
【configuration】 —> 【action】 —> 【create action】 —> “action”
-
Name:action名称
-
Conditions:匹配条件,zabbix支持的匹配条件如下:
- trigger name
- trigger
- trigger severity
- application
- host
- host group
- problem is suppressed
- tag name
- tag value
- temple
- time priod
各匹配条件都支持逻辑运算符
-
enabled:是否启用该action
-
4、告警处理措施
详细配置,请参考官方文档
4.1、告警处理措施的类型
- 发送消息:将故障信息通过指定媒体发送出去
- 执行远程命令:通过脚本处理故障
4.2、配置告警处理措施
【configuration】 —> 【action】 —> 【create action】 —> “Operations”
-
参数说明
- Default operation step duration:默认操作步骤间隔时间
- Pause operations for suppressed problems:暂停对隐藏问题的处理
- Operations:配置告警措施
- Recovery operations:恢复告警措施配置
- Update operations:更新告警措施配置
-
具体告警措施配置
- Operation type:措施类型
- send message:发送信息
- remote command:远程执行命令
- Steps:步骤,一个告警发送多次
- Step duration:每个步骤间隔时间
- Send to user groups:接受告警的用户组
- Send to users:接受告警的用户
- Send only to:告警发送方式,可以选择一种,也可以选"all",如果用户配置了多种告警接收方式,当配置为”all“时,用户可以以多种方式接收同一个告警
- Custom message:自定义告警信息
- Conditions:可以配置用户在确认后不再继续发送信息
- Operation type:措施类型
5、配置Email告警
-
配置media类型
【Administration】 —> 【Media types】 —> 【create media types】- Name:media类型名称
- Type:media类型
- SMTP server:Email服务器地址
- SMTP helo:SMTP服务器地址
- SMTP email:发送邮件的邮箱
-
在用户管理界面,添加对应的告警方式