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

1 创建一个监控项

概述

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

  • 进入到: ConfigurationHosts
  • 在主机所在的行单击 Items
  • 点击屏幕右上角的Create item
  • 输入表单中监控项的参数

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

配置

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

参数 描
Name 这里命名监控项名称。
可以使用以下宏:
$1, $2...$9 - 指的是监控项的第1、2...9个参数
例如:$1上的可用磁盘空间
如果监控项的key是 "vfs.fs.size[/,free]", 说明将自动更改为 "Free disk space on /"
Type 监控项类型。参考单个 监控项类型 章节.
Key 监控项key.
可支持的监控项的key 能够在各个监控项类型中找到。
这个key在单个主机中必须是唯一的。
如果key的类型是'Zabbix agent'、'Zabbix agent (active)', 'Simple check' 或者 'Zabbix aggregate', 则此key必须被 Zabbix agent 或者 Zabbix server支持。
也可以查看: 正确的 key的格式.
Host interface 选择主机接口。编辑主机级别的监控项时,此字段可用。
Type of information 执行转换后存储在数据库中的数据类型(如果有)。
Numeric (unsigned) - 64位无符号整数
Numeric (float) - 浮点数
可以存储负值。
允许范围: -999999999999.9999 到 999999999999.9999.
从Zabbix 2.2开始,也支持科学计数值。例如。 1e+7,1e-4。
Character - 短文本数据
Log - 具有可选日志相关属性的长文本数据(timestamp, source, severity, logeventid)
Text - 长文本数据
下表表格列出了文本数据的限制。
Units 如果设置了单位符号,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”。
请参阅 单位黑名单.
Update interval (in sec) 每N秒钟检索一次这个项目的新值。
注意:如果设置为“0”,则不会轮询该项。 但是,如果自定义间隔(灵活/调度)也存在非零值,则会在自定义间隔持续时间期间轮询该项。
Custom intervals 你可以创建用于检查监控项的自定义规则:
Flexible - 创建更新间隔的异常(间隔不同的频率)
Scheduling - 创建自定义轮询时间表。
详细信息请查看 自定义间隔. 从Zabix 3.0.0开始支持时间表。
注意: 不适用于Zabbix Agent的活动监控项。
History storage period(in days) 在数据库中保留详细历史记录的天数,housekeeper将删除较旧的数据。 从Zabbix 2.2开始,在Administration → General → Housekeeper 中可以覆盖该值。 如果存在全局设置,将显示一条警告消息: 建议保留最小可能天数的记录值,以减少数据库中的历史记录的大小。你可以保留较长的趋势数据,而不是保存长期的历史数据。参见历史和趋势。 请参考 历史与趋势.
Trend storage period(in days) 在数据库中保留N天的详细历史记录(小时最小,最大,平均值,计数)。 housekeeper将删除较旧的数据。
从Zabbix 2.2开始,在Administration → General → Housekeeper中可以覆盖该值。如果存在全局设置,将显示一条警告消息:

注意: 保持趋势不适用于非数字数据 - 字符,日志和文本。
参考 历史与趋势.
Show value 将值映射应用于此监控项。值映射不会改变收到的值,仅用于显示数据。
它只适用于整数项。
例如, "Windows service states".
Log time format 仅适用于日志类型的监控项。 支持的占位符:
* 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”。
New application 输入监控项的新应用程序的名称。
Applications 将监控项链接到一个或多个现有应用程序。
Populates host inventory field 你可以选择项目的值将填充的主机资产字段,如果你为主机启用了自动发现模式 资产管理 ,这将会起作用。
Description 输入监控项描述。
Enabled 选中该复选框以启用该项目。

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

文本数据限制

文本数据限制取决于数据库后台设置:

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

单位黑名单

默认情况下,为监控项指定单位将导致添加乘数前缀 - 例如,单元B的值2048将显示为2KB。 对于预定义的硬编码单元列表是不允许的:

  • ms
  • RPM
  • rpm
  • %

请注意,小写和大写rpmrpmRPM)字符串都被列入黑名单。

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

转换 描
Custom multiplier 将值乘以指定的整数或浮点值。使用此选项将以KB,MBps等接收的值转换为B,Bps,否则Zabbix无法正确设置前缀(K,M,G等)。从Zabbix 2.2开始,也支持使用科学符号。 例如。 1e + 70。
Right trim 从值的末尾删除指定的字符。
Left trim 从值的起始处删除指定的字符。
Trim 从值的起始和结尾删除指定的字符。
Regular expression 将值与<pattern>正则表达式匹配,并用<output>替换值。 正则表达式支持用\N序列提取最多10个捕获的组。\ 参数:
pattern - 正则表达式
output - 输出格式化模板。一个\N(其中N = 1 ... 9)转义序列被替换为第N个匹配组。
Boolean to decimal 将值从布尔格式转换为十进制。文本表示被转换为0或1.因此,“TRUE”存储为1,“FALSE”存储为0.所有值都以不区分大小写的方式进行匹配。当前被认为的布尔值值如下:
TRUE - true, t, yes, y, on, up, running, enabled, available
FALSE - false, f, no, n, off, down, unused, disabled, unavailable
此外,任何非零数值都被认为是TRUE,0被认为是FALSE。
Octal to decimal 将八进制格式的值转换为十进制。
Hexadecimal to decimal 将值从十六进制格式转换为十进制。
Delta 计算当前值和上一个值之间的差值。评估为value-prev_value,其中 value - current value; prev_value - 以前收到的值每个项目只允许一个delta操作。
Delta per second 计算每秒速度的值变化(当前值和上一个值的差值)。
计算为(value-prev_value)/(time-prev_time),其中 value - 当前值; prev_value - 当前收到的值; time - 当前时间戳,prev_time - 以前值的时间戳。
这个设置是非常有用的,以获得每秒不断增长的速度值。 如果当前值小于上一个值,Zabbix将丢弃该差异(不存储)并等待另一个值。这有助于正常工作,例如,32位SNMP计数器的包装(溢出)。
注意: 由于此计算可能产生浮点数,建议将'Type of information' 设置为 Numeric (float),即使传入的原始值是整数。 这对于小数部分尤其重要。 如果浮点值很大并且可能超过'float'字段长度,在这种情况下,整个值可能会丢失,实际上建议使用Numeric(无符号),因此只会修剪小数部分。
每个监控项只允许一个delta操作。

<note tip>如果将信息类型设置为数字(无符号),将使用自定义乘数或存储值作为Delta(每秒速度),并且生成的计算值实际为浮点数,则计算值仍被接受为正确的值,通过修剪小数部分并将该值存储为整数。 :::

不支持的监控项

如果由于某种原因无法检索该值,则该监控项可能不被支持。 这些监控项仍然以固定的间隔重新检查,可在管理章节中进行配置。