2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 创建监控项

概述

要在Zabbix管理页面创建一个监控项,请执行以下操作:

  • 进入到: 配置主机
  • 在主机所在的行单击 监控项
  • 点击屏幕右上角的创建监控项
  • 输入表单中监控项的参数

你也可以通过打开一个监控项,按克隆 按钮,然后以不同的名称保存。

配置

监控项 选项卡包含了常规监控项属性:

所有必填输入字段都标有红色星号。

参数 描
名称 命名监控项名称。
可以使用以下宏:
$1, $2...$9 - 指的是监控项的第1、2...9个参数
例如:$1上的可用磁盘空间
如果监控项的key是 "vfs.fs.size[/,free]", 说明将自动更改为 "Free disk space on /"
类型 项类型。参考单个 监控项类型 章节.
键值 项键值.
可支持的监控项键值 能够在各个监控项类型中找到。
这个键值在单个主机中必须是唯一的。
如果键值的类型是'Zabbix 客户端'、'Zabbix客户端(主动式)', '简单检查' 或者 'Zabbix整合', 则此key必须被 Zabbix 客户端 或者 Zabbix 服务端 支持。
也可以查看: 正确的 键值的格式.
主机接口 选择主 接口。编辑主机级别的监控项时,此字段可用。
信息类型 执行转 后存储在数据库中的数据类型(如果有)。
数字(无正负) - 64位无符号整数
数字(浮点) - 浮点数
可以存储负值。
允许范围: -999999999999.9999 到 999999999999.9999.
从Zabbix 2.2开始,也支持科学计数值。例如。 1e+7,1e-4。
字符 - 短文本数据
日志 - 具有可选日志相关属性的长文本数据(timestamp, source, severity, logeventid)
文本 - 长文本数据。可参见 文本数据限制
单位 设置了单位符号,Zabbix将在收到数据后再加工处理,并使用设置单位后缀进行显示。
默认情况下,如果原始值超过1000,则除以1000,并相应显示。 例如,如果设置 bps 并接收到值为881764,则将显示为881.76 Kbps。
特殊处理用于B(字节),Bps(每秒字节数)单位,除以1024.因此,如果单位设置为B或Bps,Zabbix将显示:
1 为 1B/1Bps
1024 为 1KB/1KBps
1536 为 1.5KB/1.5KBps
如果使用以下与时间相关的单位,则使用特殊处理:
unixtime - 转换成“yyyy.mm.dd hh:mm:ss”。 要正确转换,接收的值必须是数字(无符号)类型的信息。
uptime - 转换为 "hh:mm:ss" 或者 "N days, hh:mm:ss"
例如,如果你收到的值为881764(秒),则显示为“10天,04:56:04”
s - 转换成“yyy mmm ddd hhh mmm sss ms”; 参数被视为秒数。
例如,如果您收到的值为881764(秒),则显示为“10d 4h 56m”
只显示3个主要单位,如“1m 15d 5h”或“2h 4m 46s”。 如果没有显示天数,则仅显示两个级别 - “1m 5h”(不显示分钟,秒或毫秒)。 如果该值小于0.001,将被转换成“<1 ms”。
请参阅 单位黑名单.
更新间隔 每N秒 检索一次这个项目的新值。允许的最大更新间隔为86400秒(1天)。
支持时间后缀,例如 30s,1m,2h,1d。
支持用户宏
注意:如果设置为“0”,则不会轮询该项。 但是,如果自定义间隔(灵活/调度)也存在非零值,则会在自定义间隔持续时间期间轮询该项。
注意 可以通过按立即检查按钮立即轮询现有被动监控项的值。
自定义时间间隔 你可以创建用 检查监控项的自定义规则:
Flexible - 创建更新间隔的异常(间隔不同的频率)
Scheduling - 创建自定义轮询时间表。
详细信息请查看 自定义间隔
间隔 字段支持时间后缀 , 例如 30s, 1m, 2h, 1d.
支持用户宏
从Zabix 3.0.0开始支持时间表。
注意: 不适用于Zabbix Agent的活动监控项。
历史数据保留时长 在数据库中保存 细历史的持续时间(1小时至25年)。housekeeper将删除较旧的数据。
按秒存储。 支持时间后缀, 例如 2h, 1d.
支持用户宏
Administration → General → Housekeeper 中可以覆盖该值。 如果存在全局设置,将显示一条警告消息: 建议保留最小可能天数的记录值,以减少数据库中的历史记录的大小。你可以保留较长的趋势数据,而不是保存长期的历史数据。参见历史和趋势。 请参考 历史与趋势.
趋势存储时间 在数据库中 持聚合(每小时最小值,最大值,平均值,计数)历史的持续时间(1天到25年)。 housekeeper将删除较旧的数据。
按秒存储。 支持时间后缀, 例如 2h, 1d.
支持用户宏
Administration → General → Housekeeper中可以覆盖该值。如果存在全局设置,将显示一条警告消息:

注意: 保持趋势不适用于非数字数据 - 字符,日志和文本。
参考 历史与趋势.
查看值 将值 射应用于此监控项。值映射不会改变收到的值,仅用于显示数据。
它只适用于整数项。
例如, "Windows service states".
日志时间格式 仅适用于* 日志类型的监控项。 支持的占位符:
*
y: Year (1970-2038)
*
M: Month (01-12)
*
d: Day (01-31)
*
h: Hour (00-23)
*
m: Minute (00-59)
*
s**: Second (00-59)
如果留空,则不会解析时间戳。
例如,从Zabbix Agent日志文件中考虑以下几行:“23480:20100328:154718.045 Zabbix代理启动。 Zabbix 1.8.2(修订11211)。“
它以PID的六个字符位置开始,后跟日期,时间和行的其余部分。
该行的日志时间格式为“pppppp:yyyyMMdd:hhmmss”。请注意,“p”和“:”字符只是占位符,只能是“yMdhms”。
新的应用集 输入监控 的新应用程序的名称。
应用集 将监 项链接到一个或多个现有应用程序。
填入主机资产纪录栏位 你可以选择项目的值 填充的主机资产字段,如果你为主机启用了自动发现模式 资产管理 ,这将会起作用。
描述 监控项描述。
已启用 选中 复选框以启用该监控项,以便对其进行处理。

当编辑主机级别上的现有模板级别的监控项时,多个字段是只读的。你可以使用表单标题中的链接并转到模板级别并在其中进行编辑,但请记住,模板级别上的更改将更改模板链接到的所有主机的项目。

监控项值预处理

预处理 选项卡允许为接收的值定义转换规则。在将值保存到数据库之前,可以进行一次或多次转换。 转换按照定义的顺序执行。 所有预处理都由Zabbix服务器完成。

可参见: 预定步骤详细信息

监控项值预处理参数支持用户宏和带有上下文的用户宏。

转换 描
正则表达式 将值与& t;pattern>正则表达式匹配,并将值替换为<output>。 正则表达式支持使用\N序列提取最多10个捕获的组。 无法匹配输入值将使监控项不受支持。
参数:
pattern - 正则表达式
output - 输出格式化模板。\N(其中N = 1 ... 9)转义序列被替换为第N个匹配组。\ 0转义序列将替换为匹配的文本。
版本3.4.0.之后支持 \\有关示例,请参阅正则表达式部分。
裁剪 的起始和结尾删除指定的字符。
右裁剪 从值 末尾删除指定的字符。
左裁剪 从值 起始处删除指定的字符。
XML XPath 使用XPath功能从XML数据中提取值或段。
要使此选项生效,必须使用libxml支持编译Zabbix服务器。
示例:
number(/document/item/value) <document><item><value>10</value></item></document>提取 10
number(/document/item/@attribute) 将从 <document><item attribute="10"></item></document>提取 10
/document/item 将从 <document><item><value>10</value></item></document> 提取 <item><value>10</value></item>
请注意,不支持名称空间。
版本3.4.0.之后支持
JSON路径 使 JSON路径功能的简单子集从JSON数据中提取值或段。
示例:
$.document.item.value 将从 {"document":{"item":{"value": 10}}}提取 10
$.document.item 将从 {"document":{"item":{"value": 10}}} 提取 {"value": 10}
$['a document'].item.value 将从 {"a document":{"item":{"value": 10}}} 提取 10
$.document.items[1].value 将从 {"document":{"items":[{"value": 10}, {"value": 20}]}}提取 20
请注意,仅支持以点或括号表示法指向单个对象的直接路径。
在JSON路径点符号($.a.b.c)中只能使用字母数字+下划线字符。 如果JSON对象名称包含其他字符,则必须使用括号符号 ($['a']['b']['c'])。 两种符号可以混合($.a['b'].c)
不支持提取多个值。
版本3.4.0.之后支持
自定义倍数 将值乘以 定的整数或浮点值。\\使用此选项将以KB,MBps等接收的值转换为B,Bps,否则Zabbix无法正确设置前缀(K,M,G等)。\\从Zabbix 2.2开始,也支持使用科学符号。 例如。 1e + 70。
简单更改 计算当 值和上一个值之间的差值。\\评估为value-prev_value,其中
value - 当前值; prev_value - 以前收到的值\\每个监控项只允许一个更改操作。
每秒更改 计算每 速度的值变化(当前值和上一个值的差值)。
计算为(value-prev_value)/(time-prev_time),其中
value - 当前值; prev_value - 以前收到的值; time - 当前时间戳,prev_time - 以前值的时间戳。
这个设置是非常有用的,以获得每秒不断增长的速度值。 如果当前值小于上一个值,Zabbix将丢弃该差异(不存储)并等待另一个值。这有助于正常工作,例如,32位SNMP计数器的包装(溢出)。
注意: 由于此计算可能产生浮点数,建议将'信息类型' 设置为 数字 (浮点),即使传入的原始值是整数。 这对于小数部分尤其重要。 如果浮点值很大并且可能超过'float'字段长度,在这种情况下,整个值可能会丢失,实际上建议使用数字(无符号),因此只会修整小数部分。
每个监控项只允许一个更改操作。
布尔值转十进制 将值从布尔值 换为十进制。文本表示被转换为0或1.因此,“TRUE”存储为1,“FALSE”存储为0.所有值都以不区分大小写的方式进行匹配。当前被认为的布尔值值如下:
TRUE - true, t, yes, y, on, up, running, enabled, available, ok, master
FALSE - false, f, no, n, off, down, unused, disabled, unavailable, err, slave
此外,任何非零数值都被认为是TRUE,0被认为是FALSE。
ok, master, err, slave在4.0.0后支持
八进制转十进制 将八进制格式 值转换为十进制。
十六进制转十进制 将值从十六进制 式转换为十进制。
请注意,数字格式不支持包含空格的值。 作为解决方法,您可以使用正则表达式预处理步骤删除十六进制到十进制步骤之前的空格。

<note tip>如果使用自定义乘数或存储值每秒更改对于信息类型设置为数字(无正负)的项目,并且得到的计算值实际上是浮点数,则计算值仍被认为是正确的值,并通过修剪小数部分后将值存储为整数。 :::

表单按钮

表单底部的按钮允许执行多种操作。

添加监控项。 此按钮仅适用于新监控项。
更新监控项的属性。
根据当前监控项的属性创建另一个监控项。
立即执行新监控项值的检查。 仅支持 passive 检查(参见更多详细信息)。
注意当立即检查值时,配置缓存不会更新,因此 该值不会反映项目配置的最新更改。
删除监控项历史记录和趋势。
删除监控项。
取消编辑监控项属性。

文本数据限制

文本数据限制取决于数据库后端。 在将文本值存储到数据库之前,它们会被截断以匹配数据库值类型限制:

数据库 信息
Character Log Text
Mysql 255 characters 65536 bytes 65536 bytes
Postgresql 255 characters 65536 characters 65536 characters
Oracle 255 characters 65536 characters 65536 characters
IBM DB2 255 bytes 2048 bytes 2048 bytes

Unit blacklisting

单位黑名单

默认情况下,为项目指定单位会导致添加该单位的乘数前缀 - 例如,单位为“B”的传入值“2048”将显示为“2KB”。

但是,可以通过使用 ! 前缀来阻止任何单位转换,例如 ! 。 为了更好地说明转换如何使用和不使用黑名单,请参阅以下值和单位示例:

1024 !B → 1024 B
       1024 B → 1 KB
       61 !s → 61 s
       61 s → 1m 1s
       0 !uptime → 0 uptime
       0 uptime → 00:00:00
       0 !! → 0 !
       0 ! → 0

在Zabbix 4.0之前,有一个硬编码的单位黑名单包括 ms, rpm, RPM, %。 这个黑名单已被弃用,因此将这些单位列入黑名单的正确方法是 !ms, !rpm, !RPM, !%

不支持的监控项

如果由于某种原因无法检索其值,则该项可能不受支持。 此类项目仍以固定间隔重新检查,可在管理页面.中进行配置。