目录
触发器基础概念
创建和管理触发器
示例
定义一个触发器
在 Zabbix 中,触发器(Trigger)用于定义在监控数据满足特定条件时触发警报或动作。触发器是实现监控告警和自动响应的核心组件之一。以下是关于 Zabbix 触发器的详细解释和用法:
我们触发器的定义是:界定某特定的item采集到的数据的非合理区间或非合理状态。通常为逻辑表达式。 逻辑表达式(阈值):通常用于定义数据的不合理区间,其结果如下: OK
(不符合条件):正常状态 --> 较老的zabbix版本,其为FALSE; PROBLEM
(符合条件):非正常状态 --> 较老的zabbix版本,其为TRUE; 一般,我们评定采样数值是否为合理区间的比较稳妥的方法是——根据最后N次的平均值来判定结果;这个最后N次通常有两种定义方式:
-
最近N分钟所得结果的平均值
-
最近N次所得结果的平均值
触发器基础概念
-
触发器条件:
- 触发器基于监控项(Item)的数值定义条件。当监控项的数值满足条件时,触发器将被激活并执行相关的动作。
-
触发器表达式:
- 触发器使用表达式来定义条件,表达式由一个或多个函数组成,这些函数基于监控项的数值进行评估。例如,
{hostname:system.cpu.load.avg(5m)}>2.0
表示如果主机的 CPU 负载在过去5分钟内平均超过2.0,触发器将激活。
- 触发器使用表达式来定义条件,表达式由一个或多个函数组成,这些函数基于监控项的数值进行评估。例如,
-
触发器状态:
- 触发器可以处于以下几种状态:
- OK: 表示触发器未激活,条件未满足。
- 问题: 表示触发器已激活,条件已满足,可能需要采取响应措施。
- 未知: 表示监控数据不足或无法评估触发器的条件。
- 触发器可以处于以下几种状态:
创建和管理触发器
在 Zabbix Web 界面上,你可以通过以下步骤创建和管理触发器:
-
创建触发器:
- 登录 Zabbix Web 界面,导航到 Configuration -> Hosts -> Triggers -> Create trigger。
- 在创建触发器时,定义触发器的名称、表达式、优先级和描述。
-
配置触发器表达式:
- 触发器表达式由以下部分组成:
{hostname:item.key.func(params)} operator value
- 示例表达式:
{host1:system.cpu.load.avg(5m)}>2.0
{host2:vm.memory.size[available].last()}<1000000
- 触发器表达式由以下部分组成:
-
设置触发器优先级:
- 每个触发器都有一个优先级,用于确定触发器在问题发生时通知的紧急程度。优先级分为信息、警告、一般、重要和严重。
-
定义操作:
- 在触发器激活时,可以定义 Zabbix Server 执行的动作,如发送电子邮件、发送短信、运行脚本等。
-
启用和禁用触发器:
- 可以随时启用或禁用触发器,以便在测试、维护或不需要时停止触发器的监控和警报。
示例
假设我们有一个触发器用于监控服务器的 CPU 负载情况:
- 名称: High CPU load on {HOST.NAME}
- 表达式:
{host1:system.cpu.load.avg(5m)}>2.0
- 优先级: 一般
- 描述: 当服务器 {HOST.NAME} 的 CPU 负载在过去5分钟内平均超过2.0时,触发此警报。
通过创建和管理触发器,可以根据具体需求对系统性能和状态进行监控,及时响应和解决问题,确保系统的可靠性和稳定性。
定义一个触发器
net.if.out[ens33,packets]#用于获取指定网络接口(在这里是 ens33)的输出数据包数量(packets)。具体来说:#net.if.out:这部分指示 Zabbix 使用网络接口的输出数据统计。
#ens33:这是网络接口的名称或标识符,它指定了要监控的具体网络接口。在不同的操作系统和网络配置中,网络接口名称可能会有所不同。
#packets:表示监控的指标,即输出的数据包数量。
菜单条目URL 是当出现报警信息时,可以直接点击这个链接快速跳转你设置的页面,我在下面的图中演示了复制一个URL粘贴到这里。
选择合适的规则点击插入
现在添加好了触发器,来到192.168.226.129主机测试,在主机中下载一些东西
比如我下载了mysql
yum install -y mysql-server
回到监控页面看信息
因此可以看到当数据超过触发器的规则就会出现报警。