首先我们了解一下什么是zabbix的item(监控项)
所谓监控项是zabbix收集数据的基础。没有监控项就没有数据,因为一个监控项定义了一组特殊数据,或者说定义了什么样的数据从监控主机发往监控服务端。例如我需要监控一台主机的cpu情况,则监控项就是收集cpu状态并发往服务端的。
新建一个监控项
所有的监控项都是围绕主机的,所以新建监控项时,我们需要进入主机列表,再点击Items
在跳转后的网页我们可以看到目前hfshangyou主机中已经存在的49个监控项。此时我们可以点击右上角的Create item进入我们的新建页面
为了新建一个测试监控项,我们只需要输入以下信息:
Name
输入cpu,这个名字将会在监控项列表中显示
Key
我们可以从select中选择,这里选system.cpu.load[,]并删除可选项[,]
Type of information
这里选Numeric(float),该属性定义的是监控数据的格式
其他的选项就先使用初始数值吧,选择点Add完成新建。点击之后可以看到新的监控项已经存放在监控列表中,并且显示Enable状态时说明新建的监控项是可用的。
查看数据
当新的监控项设置好后,你一定很好奇它是否在收集数据。于是我们进入Monitoring→Latest data,设置好过滤条件找出新建了监控项的主机,
点击在-other-前的+,展开即可看到刚刚新建的监控项,并且可以看到监控数据的变化。并且一段时间之后,我们可以点击Graph查看可视化的数据。
上面使用一个简单的例子让我们更深刻的了解zabbix的监控项,那么接下来开始全面的了解一下新建监控项时所见到的参数及其含义吧,所提及的参数都在上面那张图上。
参数
</td>
<td>
描述
</td>
</tr>
<tr>
<td>
Name
</td>
<td>
监控项的名字。可以使用以下的宏命令:$1,$2...$9 - 这九个参数对应item key的位置。例如:Free disk space on $1。如果item key为"vfs.fs.size[/,free]",则可以自动转换成Free disk space on /
</td>
</tr>
<tr>
<td>
Type
</td>
<td>
Item类型,详见《zabbix的item type解析》
</td>
</tr>
<tr>
<td>
Key
</td>
<td>
Item key,所支持的item key可以在不同的Type中找到,详见《zabbix的item key解析》。一台主机添加的key必须是唯一的。如果key的所属类型是'Zabbix agent', 'Zabbix agent (active)', 'Simple check' or 'Zabbix aggregate',那么key的值必须被客户端或者服务端所支持
</td>
</tr>
<tr>
<td>
Host interface
</td>
<td>
选择一个主机接口,这一栏是在为一台主机新建监控项所编辑的
</td>
</tr>
<tr>
<td>
Type of information
</td>
<td>
数据进行转换后存放在数据库中的类型,如
Numeric (unsigned) - 64位无符号整数
Numeric (float) - 浮点数,包括负数,允许MySQL的range:-999999999999.9999 to 999999999999.9999 (double(16,4))
Character - 小于255字节的字符串
Log - 日志文件,必须设置成关键字日志
Text - 无限制文本
</td>
</tr>
<tr>
<td>
Data type
</td>
<td>
指定所有监控项的预期数据类型:
Boolean - 布尔值,0表示False,1表示True。不区分大小写。如下为True or False的具体含义:
TRUE - true, t, yes, y, on, up, running, enabled, available
FALSE - false, f, no, n, off, down, unused, disabled, unavailable
另外,任何非零数被认为是True,零被认为是False。
Octal - 八进制
Decimal - 十进制
Hexadecimal - 十六进制,zabbix会自动将其转换成数字
</td>
</tr>
<tr>
<td>
Units
</td>
<td>
如果设置了单位符号,zabbix会将收到的数值按设置的单位转换并输出。
默认情况下,如果原始数值超过1000,会先除以1000再显示出来。例如设置的单位为bps并且收到的数值为881764,zabbix会显示成881.764Kbps。如果单位设置成**B** (byte), **Bps** (bytes per second),则会除以1024。
如果使用如下的时间单位,则如此转换:
**Unixtime - **转为"yyyy.mm.dd hh:mm:ss",必须使用正数
**Uptime - **转为"hh:mm:ss" 或者"N days, hh:mm:ss"。例如收到的数值为881764秒,则会显示成"10 days, 04:56:04"
**S** - 转为"yyy mmm ddd hhh mmm sss ms",参数为秒。例如收到数值为881764,会转换成"10d 4h 56m"。只有三个较高的单位会显示出来,例如"1m 15d 5h" 或者 "2h 4m 46s",如果没有单位【日】,那么只会显示两个单位时间 - "1m 5h"(不会显示分钟、秒和毫秒),如果返回值小于0.001,则只会显示"< 1ms"。
禁用单位:ms、RPM、rpm、%
</td>
</tr>
<tr>
<td>
Use custom multiplier
</td>
<td>
如果勾选该选项,所有接收到的值将乘以该文本框中设置的整数或者浮点数
</td>
</tr>
<tr>
<td>
Update interval (in sec)
</td>
<td>
数据更新时间(秒)。
注:如果设置为0,监控数据将永不更新。然而如果Flexible intervals也存在一个非零值,那么该监控项的数据将在灵活更新时间中更新
</td>
</tr>
<tr>
<td>
Flexible intervals
</td>
<td>
创建额外的更新周期。例如:
Interval: **10**, Period: **1-5,09:00-18:00** - 在工作日的朝九晚六期间每十秒检查一次监控项
Interval: **0**, Period: **1-7,00:00-7:00 - **在每天凌晨到早七点禁止检查
最多设置7个更新周期,如果设置的周期有冲突,则只使用最小区间。在更新周期以外的时间,使用默认的update interval。如果更新周期被设置为0,则监控项的数据不会更新。
注:该设置对主动客户端无效
</td>
</tr>
<tr>
<td>
History storage period
(in days)
</td>
<td>
在数据库中保存详细历史数据的具体天数,旧数据将被housekeeper删除。
从zabbix2.2开始,该值可以被Administration →
General → Housekeeper所覆盖。如果全局设置已存在,则这里会显示告警信息:
![](https://statics.yvanz.com/zabbix-item3.png)
推荐按需设置一个最小值从而减少历史数据在数据库中的开销。若想保留更多的历史记录,可以增大下面的trend值。
</td>
</tr>
<tr>
<td>
Trend storage period
(in days)
</td>
<td>
在数据库中聚合(以小时为单位的min,max,avg,count)N天的详细历史数据。旧数据将被housekeeper删除。从zabbix2.2开始,该值可以被覆盖,参考上文。
注:趋势数据的保存功能无法在非数字类型数据 - character, log and text中使用。
</td>
</tr>
<tr>
<td>
Store value
</td>
<td>
**As is** - 不做任何处理
**Delta (speed per second)** - 计算公式为(**value-prev_value**)/(**time-prev_time**),注释:
Value - 当前值
Prev_value - 上次收到的值
Time - 当前时间戳
Prev-time - 上次收到的时间戳
该设置对计算不断增长的数据,其增长速度非常有用。
注:如果当前值小于上次收到的值,zabbix会忽略更改(即不存储任何值)并等待新的数据。
**Delta (simple change) **- 计算公式为(**value-pre_value**)**:**
Value - 当前值
Pre_value - 上次收到的值
</td>
</tr>
<tr>
<td>
Show value
</td>
<td>
值映射,映射的值不改变收到的值,只作数据显示用。查看已有的映射表,可以点击show value mappings
</td>
</tr>
<tr>
<td>
Log time format
</td>
<td>
Type of information选择Log时显示。支持的占位符有:
*** y**:年(0001-9999)
*** M**:月(01-12)
*** d**:日(01-31)
*** h**:时(00-23)
*** m**:分(00-59)
*** s**:秒(00-59)
若留空则时间戳不被解析
</td>
</tr>
<tr>
<td>
New application
</td>
<td>
为新应用取一个名字
</td>
</tr>
<tr>
<td>
Applications
</td>
<td>
将一个监控项链接到一个或多个现存的应用
</td>
</tr>
<tr>
<td>
Populates host inventory field
</td>
<td>
数据自动填充到inventory资产清单的相应属性,前提是你的inventory对该主机处于自动模式
</td>
</tr>
<tr>
<td>
Description
</td>
<td>
对该监控项的描述
</td>
</tr>
<tr>
<td>
Enabled
</td>
<td>
勾选表启用
</td>
</tr>
</tbody>
|
当然,你也可以Clone现有的监控项并重命名保存成新监控项。
这篇文章翻译的着实不满意,蹩脚翻译看着难受的话,可以查看源文档:https://www.zabbix.com/documentation/2.4/manual/config/items/item
当然,这篇文章也花了很多时间编辑,目测还有两篇文章需要用到蹩脚的翻译——《zabbix的item type解析》、《zabbix的item key解析》,心累-。-