zabbix 添加触发器 Triggers 和 图形 Graphs

2023-10-17 22:30

本文主要是介绍zabbix 添加触发器 Triggers 和 图形 Graphs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

触发器 Triggers

触发器介绍
触发器是条件的定义,一个触发器是根据一个监控项的返回值,将之对比预先设置的阈值,当监控项返回了不符合预定义的值范围后,就进行触发下一步操作的警戒线,一般要对创建的监控项设置触发器以及触发方式和值的大小
可以在指定主机上创建触发器,只是针对指定主机有效
也可以在指定模板上创建触发器,则使用此模板的所有主机都有效,一个模板中可以有多触发器
触发器中使用的表达式是非常灵活的。你可以使用它们去创建关于监控统计的复杂逻辑测试。

触发器严重性
触发器严重性表示触发器的重要程度
Zabbix支持下列6种触发器的严重程度:

严重性颜色
未分类灰色
信息浅蓝色
警告黄色
一般严重橙色
严重浅红色
灾难红色

严重性功能

  • 通过不同的颜色区分不同的严重程度
  • 报警音频,不同的音频代表不同的严重程度
  • 用户媒介,不同的用户媒介(通知渠道)代表不同的严重程度。例如,短信 - 高严重性,email - 其他。
  • 不同的严重性通过触发器执行对应的条件动作

触发器表达式格式
一个简单的表达式格式:

{<server|template>:<key>.<function>(<parameter>)}<operator><constant>

触发器官方文档
https://www.zabbix.com/documentation/6.0/zh/manual/config/triggers/expression

函数官方文档
https://www.zabbix.com/documentation/6.0/zh/manual/appendix/triggers/functions
https://www.zabbix.com/documentation/6.0/manual/appendix/triggers/functions

触发器表达式常用函数

函数名称说明范例
avg()监控项的平均值[avg(#5) → 最新5个值的平均值] [avg(1h) → 最近一小时的平均值] [avg(1h,1d) → 一天前的一小时内的平均值]
min()监控项的最小值[CPU使用率最近5分钟的最小值大于6][system.cpu.load.min(5m)>6][CPU最近5次最小的值大于2][system.cpu.load.min(#5)>2]
max()监控项的最大值[max(#5) → 最新5个值的最大值] [max(1h) → 最近一小时的最大值]
last()最后的第几个值[注意last的 #num 参数和在其它函数中的作用不同] [例如:返回值 3, 7, 2, 6, 9] [last() 通常等同于 last(#1)] [last(#5) - 第五个最新值 ,注意:不是五个最新值] [last(#2)将返回值为7,last(#5)返回值为9] [last(#10,30) 表示每隔30s采样一次,取倒数第10个值]
diff()比对上一次文件的内容返回值为1,表示发生变化,返回值为0,表示没有变化
nodata()监控一段时间内是否返回数据[时间不少于30秒,因为timer处理器每30秒调用一次] [返回1 - 指定评估期没有接收到数据] [返回0 - 其它]
触发器示例:
#示例
www.zabbix.com 主机的处理器负载过高
{www.zabbix.com:system.cpu.load[all,avg1].last()}>5
'www.zabbix.com:system.cpu.load[all,avg1]' 给出了被监控参数的简短名称。它指定了服务器
是“www.zabbix.com”,监控项的键值是“system.cpu.load[all,avg1]”。通过使用函数“last()”获
取最新的值。最后,“>5”意味着当www.zabbix.com最新获取的处理器负载值大于5时触发器就会处于异常状
态#示例
www.zabbix.com is overloaded
{www.zabbix.com:system.cpu.load[all,avg1].last()}>5 or 
{www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2 
当前处理器负载大于5或者最近10分钟内最小值大于2,表达式为true。#示例
/etc/passwd文件被修改
使用函数diff:
{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff()}=1
当文件/etc/passwd的checksum值与最近的值不同时,表达式为true。
类似的,表达式可以用于监控重要文件的修改, 如/etc/passwd, /etc/inetd.conf, /kernel等#示例
有用户正在从互联网上下载一个大文件
使用min函数:
{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K
在过去5分钟内,eth0上接收字节数大于100kb时,表达式为true。#示例
SMTP服务群集的两个节点都停止。 注意在一个表达式中使用两个不同的主机:
{smtp1.zabbix.com:net.tcp.service[smtp].last()}=0 and 
{smtp2.zabbix.com:net.tcp.service[smtp].last()}=0 当SMTP服务器smtp1.zabbix.com和smtp2.zabbix.com都停止,表达式为true#示例
Zabbix agent需要升级
使用str()函数:
{www.zabbix.com:agent.version.str("beta8")}=1
如果Zabbix agent版本是beta8(可能是1.0beta8),则表达式为真。#示例
服务器无法访问
{www.zabbix.com:icmpping.count(30m,0)}>5
当主机“www.zabbix.com”在30分钟内超过5次不可达,则表达式为真#示例
3分钟内没有心跳检查
使用nodata()函数:
{www.zabbix.com:tick.nodata(3m)}=1
要使用这个触发器,'tick'必须定义成一个
Zabbix[:manual/config/items/itemtypes/trapper|trapper]]监控项。主机应该使用
zabbix_sender定期发送这个监控项的数据。
如果在180秒内没有接收到数据,则触发值变为异常状态。
注意:nodata可以在任何类型的监控项中使用。#示例
夜间的CPU负载
使用time()函数:
{zabbix:system.cpu.load[all,avg1].min(5m)}>2 and 
{zabbix:system.cpu.load[all,avg1].time()}>000000 and 
{zabbix:system.cpu.load[all,avg1].time()}<060000
仅在夜间(00:00-06:00),触发器状态变可以变为真。#示例
检查客户端本地时间是否与Zabbix服务器时间同步
使用fuzzytime()函数:
{MySQL_DB:system.localtime.fuzzytime(10)}=0 当MySQL_DB服务器的本地时间与Zabbix server之间的时间相差超过10秒,触发器将变为异常状态。#示例
比较今天的平均负载和昨天同一时间的平均负载(使用第二个“时间偏移”参数)。
{server:system.cpu.load.avg(1h)}/{server:system.cpu.load.avg(1h,1d)}>2
如果最近一小时平均负载超过昨天相同小时负载的2倍,触发器将触发。#示例
使用了另一个监控项的值来获得触发器的阈值:
{Template PfSense:hrStorageFree[{#SNMPVALUE}].last()}<{Template 
PfSense:hrStorageSize[{#SNMPVALUE}].last()}*0.1
如果剩余存储量下降到10%以下,触发器将触发。#示例
使用评估结果获取超过阈值的触发器数量:
({server1:system.cpu.load[all,avg1].last()}>5) +
({server2:system.cpu.load[all,avg1].last()}>5) +
({server3:system.cpu.load[all,avg1].last()}>5)>=2
如果表达式中至少有两个触发器大于5,触发器将触发。
滞后

有时我们需要一个OK和问题状态之间的区间,而不是一个简单的阈值。
例如,我们希望定义一个触发器,当机房温度超过20C时,触发器会出现异常,我们希望它保持在那种
状态,直到温度下降到15C以下。
为了做到这一点,我们首先定义问题事件的触发器表达式。然后在事件成功迭代中选择恢复表式,
并为OK事件输入恢复表达式。
请注意,只有首先解决问题事件才会评估恢复表达式。如果问题条件仍然存在,则不能通过恢复表达式来解决问题
示例 1
机房温度过高。
问题表达式:

{server:temp.last()}>20

恢复表达式:

{server:temp.last()}<=15

示例 2
磁盘剩余空间过低。
问题表达式: it is less than 10GB for last 5 minutes

{server:vfs.fs.size[/,free].max(5m)}<10G

恢复表达式: it is more than 40GB for last 10 minutes

{server:vfs.fs.size[/,free].min(10m)}>40G
自定义触发器

配置单条件触发器
自定义单条件触发器:设置内存低于 30% 进行告警,点击对应主机→ 创建触发器获取内存还剩余的百分比:
剩余 30% 可用,则需要告警通知;剩余 50% 可用,就算恢复;
编辑触发器表达式

#问题表达式: 
{Webserverb:mem_use_percent.last()}<30
#恢复表达式: 
{Webserver:mem.use_percent.last()}>60
#测试内存
dd if=/dev/zero of=/dev/null bs=1000M count=1024

配置多条件触发器
自定义多条件触发器:设置空闲内存低于 30%并且swap使用大于1% 进行告警

#增加swap的自定义监控项
UserParameter=swap_use,free |awk '/^Swap/{print $3*100/$2}'
#编辑触发器表达式
#问题表达式:
{Webserver:mem_unuse_percent.last()}<=30 and{Web:swap_use.last()}>=1#恢复表达式:
{Webserver:mem_unuse_percent.last()}>=50
#使用命令压测
dd if=/dev/zero of=/dev/null bs=500M count=1024
#只满足内存低于30%,所以不会警告
dd if=/dev/zero of=/dev/null bs=1000M count=1024
#内存低于30%,并且swap使用超过1%

触发器依赖关系
什么是触发依赖
有时候一台主机的可用性依赖于另一台主机。如果一台路由器宕机,则路由器后端的服务器将变得不可用。
如果这两者都设置了触发器,你可能会收到关于两个主机宕机的通知,然而只有路由器是真正故障的。
这就是主机之间某些依赖关系可能有用的地方,设置依赖关系的通知会被抑制,而只发送根本问题的通知。
触发器依赖关系示例
例如,主机位于路由器2后面,路由器2在路由器1后面。

Zabbix - 路由器1 - 路由器2 - 主机

如果路由器1宕机,显然主机和路由器2也不可达,然而我们不想收到主机、路由器1和路由器2都宕机的3条通知。
因此,在这种情况下我们定义了两个依赖关系:

'主机宕机' 触发器依赖于 '路由器2宕机' 触发器
'路由器2宕机' 触发器依赖于 '路由器1宕机' 触发器

触发器依赖案例
依赖场景环境说明
假设:充当R 路由节点,H 充当主机节点

  • 模拟当H节点的80端口如果不存活,需要检查R节点的80端口是否存活
  • 如果R路由节点的80端口存活,则触发H主机节点的80端口不存活警告
  • 如果R路由节点的80端口不存活,则仅触发路由节点的警告,而不触发主机节点的警告

定义触发器表达式
R路由节点:定义监控项,配置触发器
H主机节点:定义监控项,配置触发器

模拟路由与主机故障
模拟R路由器、H主机节点同时障时,会同时收到两个告警,显然不符合预期效果

配置触发器依赖关系
在H服务器节点上对应的触发器上配置依赖关系,依赖R路由节点对应的触发器

再次模拟路由与节点故障

  • 关闭 “路由器” 80端口,以及主机节点80端口;此时只有路由节点会警告
  • 启用 “路由器” 80端口,关闭主机节点80端口,此时只有主机节点会警告

图形 Graphs

什么是图形
随着时间的推移,Zabbix采集到大量监控数据,对于用户而言,如果可以通过可视化图形方式查看历史数据,而不仅仅是看到当前数字,那会更容易了解发生了什么事情以及发展的趋势.

自定义图形
Zabbix 本身提供了一些图形,但用户也可以自定义图形
自定义图表,顾名思义,就是提供自定义定制的功能。
自定义图表需要人为配置,可以为某台主机、多台主机、某个模板创建自定义图表。

在模版中创建图形
因为要做自定义图形,所以我们需要先自定义一些监控模版,为了节省时间我们直接导入之前的模版,这里小伙伴们也可以自行编写但格式要是 .xml 格式

示例

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export><version>5.0</version><date>2022-06-24T11:16:24Z</date><groups><group><name>Templates</name></group></groups><templates><template><template>Template qingtong</template><name>Template qingtong</name><groups><group><name>Templates</name></group></groups><items><item><name>内存空闲率 mem_unuse_percent</name><key>mem_unuse_percent</key><delay>10s</delay><value_type>FLOAT</value_type></item><item><name>内存使用率 mem_use_percent</name><key>mem_use_percent</key><delay>10s</delay><value_type>FLOAT</value_type></item><item><name>tcp监听端口 80</name><key>net.tcp.listen[80]</key><delay>10s</delay><valuemap><name>tcp 端口状态</name></valuemap><triggers><trigger><expression>{last()}&lt;&gt;1</expression><name>tcp port 80 down</name><priority>HIGH</priority></trigger></triggers></item><item><name>tcp_state[CLOSE-WAIT]连接数</name><key>tcp_state[CLOSE-WAIT]</key><delay>10s</delay></item><item><name>tcp_state[CLOSED]连接数</name><key>tcp_state[CLOSED]</key><delay>10s</delay></item><item><name>tcp_state[CLOSING]连接数</name><key>tcp_state[CLOSING]</key><delay>10s</delay></item><item><name>tcp_state[ESTABLISHED]连接数</name><key>tcp_state[ESTABLISHED]</key><delay>10s</delay></item><item><name>tcp_state[FIN-WAIT-1]连接数</name><key>tcp_state[FIN-WAIT-1]</key><delay>10s</delay></item><item><name>tcp_state[FIN-WAIT-2]连接数</name><key>tcp_state[FIN-WAIT-2]</key><delay>10s</delay></item><item><name>tcp_state[LAST-ACK]连接数</name><key>tcp_state[LAST-ACK]</key><delay>10s</delay></item><item><name>tcp_state[LISTEN]连接数</name><key>tcp_state[LISTEN]</key><delay>10s</delay></item><item><name>tcp_state[SYN-RECV]连接数</name><key>tcp_state[SYN-RECV]</key><delay>10s</delay></item><item><name>tcp_state[SYN-SENT]连接数</name><key>tcp_state[SYN-SENT]</key><delay>10s</delay></item><item><name>tcp_state[TIME-WAIT]连接数</name><key>tcp_state[TIME-WAIT]</key><delay>10s</delay></item><item><name>当前用户登录数量</name><key>user.login.count</key><delay>10s</delay><triggers><trigger><expression>{last()}&gt;=6</expression><recovery_mode>RECOVERY_EXPRESSION</recovery_mode><recovery_expression>{last()}&lt;4</recovery_expression><name>用户登录数过多</name><priority>AVERAGE</priority></trigger></triggers></item></items><screens><screen><name>当前主机状态</name><hsize>2</hsize><vsize>1</vsize><screen_items><screen_item><resourcetype>0</resourcetype><style>0</style><resource><name>tcp 连接状态</name><host>Template wang</host></resource><width>500</width><height>100</height><x>0</x><y>0</y><colspan>1</colspan><rowspan>1</rowspan><elements>0</elements><valign>0</valign><halign>0</halign><dynamic>0</dynamic><sort_triggers>0</sort_triggers><url/><application/><max_columns>3</max_columns></screen_item><screen_item><resourcetype>0</resourcetype><style>0</style><resource><name>内存使用情况</name><host>Template qingtong</host></resource><width>500</width><height>100</height><x>1</x><y>0</y><colspan>1</colspan><rowspan>1</rowspan><elements>0</elements><valign>0</valign><halign>0</halign><dynamic>0</dynamic><sort_triggers>0</sort_triggers><url/><application/><max_columns>3</max_columns></screen_item></screen_items></screen></screens></template></templates><graphs><graph><name>tcp 连接状态</name><graph_items><graph_item><sortorder>1</sortorder><color>1A7C11</color><item><host>Template qingtong</host><key>tcp_state[CLOSE-WAIT]</key></item></graph_item><graph_item><sortorder>2</sortorder><color>F63100</color><item><host>Template qingtong</host><key>tcp_state[CLOSED]</key></item></graph_item><graph_item><sortorder>3</sortorder><color>2774A4</color><item><host>Template qingtong</host><key>tcp_state[CLOSING]</key></item></graph_item><graph_item><sortorder>4</sortorder><color>A54F10</color><item><host>Template qingtong</host><key>tcp_state[ESTABLISHED]</key></item></graph_item><graph_item><sortorder>5</sortorder><color>FC6EA3</color><item><host>Template qingtong</host><key>tcp_state[FIN-WAIT-1]</key></item></graph_item><graph_item><sortorder>6</sortorder><color>6C59DC</color><item><host>Template qingtong</host><key>tcp_state[FIN-WAIT-2]</key></item></graph_item><graph_item><sortorder>7</sortorder><color>AC8C14</color><item><host>Template qingtong</host><key>tcp_state[LAST-ACK]</key></item></graph_item><graph_item><sortorder>8</sortorder><color>611F27</color><item><host>Template qingtong</host><key>tcp_state[LISTEN]</key></item></graph_item><graph_item><sortorder>9</sortorder><color>F230E0</color><item><host>Template qingtong</host><key>tcp_state[SYN-RECV]</key></item></graph_item><graph_item><sortorder>10</sortorder><color>5CCD18</color><item><host>Template qingtong</host><key>tcp_state[SYN-SENT]</key></item></graph_item><graph_item><sortorder>11</sortorder><color>BB2A02</color><item><host>Template qingtong</host><key>tcp_state[TIME-WAIT]</key></item></graph_item></graph_items></graph><graph><name>内存使用情况</name><yaxismax>0</yaxismax><show_work_period>NO</show_work_period><show_triggers>NO</show_triggers><type>PIE</type><graph_items><graph_item><sortorder>1</sortorder><color>FF0000</color><item><host>Template qingtong</host><key>mem_use_percent</key></item></graph_item><graph_item><sortorder>2</sortorder><color>43A047</color><item><host>Template qingtong</host><key>mem_unuse_percent</key></item></graph_item></graph_items></graph></graphs><value_maps><value_map><name>tcp 端口状态</name><mappings><mapping><value>0</value><newvalue>down</newvalue></mapping><mapping><value>1</value><newvalue>up</newvalue></mapping></mappings></value_map></value_maps>
</zabbix_export>

添加图形
在这里插入图片描述
选中所有监控项
在这里插入图片描述

在这里插入图片描述

将模版关联至主机
在这里插入图片描述

查看图形,等待数据返回即可
在这里插入图片描述

这篇关于zabbix 添加触发器 Triggers 和 图形 Graphs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/228365

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

kubernetes集群部署Zabbix监控平台

一、zabbix介绍 1.zabbix简介 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。 2.zabbix特点 (1)安装与配置简单。 (2)可视化web管理界面。 (3)免费开源。 (4)支持中文。 (5)自动发现。 (6)分布式监控。 (7)实时绘图。 3.zabbix的主要功能

第六章习题11.输出以下图形

🌏个人博客:尹蓝锐的博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~ 1、题目要求: 输出以下图形

一个图形引擎的画面风格是由那些因素(技术)决定的?

可能很多人第一直覺會認為shader決定了視覺風格,但我認為可以從多個方面去考慮。 1. 幾何模型 一個畫面由多個成分組成,最基本的應該是其結構,在圖形學中通常稱為幾何模型。 一些引擎,如Quake/UE,有比較強的Brush建模功能(或應稱作CSG),製作建築比較方便。而CE則有較強的大型地表、植被、水體等功能,做室外自然環境十分出色。而另一些遊戲類型專用的引擎,例

「大数据分析」图形可视化,如何选择大数据可视化图形?

​图形可视化技术,在大数据分析中,是一个非常重要的关键部分。我们前期通过数据获取,数据处理,数据分析,得出结果,这些过程都是比较抽象的。如果是非数据分析专业人员,很难清楚我们这些工作,到底做了些什么事情。即使是专业人员,在不清楚项目,不了解业务规则,不熟悉技术细节的情况下。要搞清楚我们的大数据分析,这一系列过程,也是比较困难的。 我们在数据处理和分析完成后,一般来说,都需要形成结论报告。怎样让大

OpenGL/GLUT实践:流体模拟——数值解法求解Navier-Stokes方程模拟二维流体(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub:A-UESTCer-s-Code 文章目录 1 实现效果2 实现过程2.1 流体模拟实现2.1.1 网格结构2.1.2 数据结构2.1.3 程序结构1) 更新速度场2) 更新密度值 2.1.4 实现效果 2.2 颜色设置2.2.1 颜色绘制2.2.2 颜色交互2.2.3 实现效果 2.3 障碍设置2.3.1 障碍定义2.3.2 障碍边界条件判定2.3.3 障碍实现2.3.

zabbix-高级应用(主被动监控、邮件告警、企业微信告警)

文章目录 zabbix-高级应用监控路由器交换机SNMP简单网络管理协议测试案例配置网络设备创建主机创建监控项测试监控项 自动发现什么是自动发现Discovery?配置自动发现1、创建自动发现规则2、创建Action动作(发现主机后自动执行什么动作)3、通过动作,执行添加主机,链接模板到主机等操作4、测试,创建新的虚拟机(符合发现规则) 主被动监控1、概述2、创建被监控主机(主动监控)

Android shape 图形

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <!-- "oval","rectangle", "line","ring" 形状--><!-- 圆角 --><cornersandroid

QGraphicsView、QGraphicsScene和QGraphicsItem图形视图框架(二)疑难杂症

疑难杂症1 1.问题: 设置场景的背景图片时,采用setBackgroundBrush()方法和重写drawBackground()函数得到的结果很不一样,而且通过setSceneRect设置场景原点位置之后得到的结果也有很大区别。 如下图 第一个和第三个中重写了QGraphicsScene的drawBackground()函数,区别在于第一个的场景原点在左上角,第三个的原点在中心。

Oracle数据库(触发器、存储过程、函数、包)

一、触发器(trigger) 推荐练习文档: http://wenku.baidu.com/link?url=brtd9myO4XIaEjRPaRB0yWgV2_TfXmNxS6KKjB_avq7d0hPs3SknJdrs-JLtWe–H-f3q-I61HUxkcqqAFMC0z6Zf65QBbmFRB8TAlULmGS http://www.cnblogs.com/friends