zabbixitem详解
zabbix item详解
zabbix监控项item是什么
什么是item
Items是从主机⾥⾯获取的所有数据。通常情况下我叫itme为监控项,例如我们ttlsa云服务器加⼊了zabbix监控,我需要监控它的cpu负载,那么实现这个⽅法的东西就叫item。接下来zabbix教程中提到的item都翻译为监控项。
item构成
item由key+参数组成,item详细介绍请看下回分析。
types是什么意思监控项中需要获取cpu信息,则需要⼀个对应的监控key:system.cpu.load。如果是获取⽹卡流量,那么获取⽹卡这个监控项需要key:net.if.in或者net.if.out。
⼀ 般情况下key要与参数结合起来使⽤,例如获取5分钟的负载情况:system.cpu.load[avg5],avg5是对
应的参数,如果是1 分钟则使⽤avg1,如果是15分钟则使⽤avg15(有⼈会问,如果是2分钟是不是avg2,-!-,没有这种说法)。⽹卡流量 net.if.in[eth0],使⽤eth0作为参数可以获取到eth0⽹卡的进⼊流量,同样看⼀看换成eth1,eth2等等。
结束
zabbix item是什么,想必⼤家⼼中已经有了这个概念了,item types有那些呢
item types
1. 什么是item types
item types是由zabbix提供的各种类型的检查器(这样翻译很奇怪),⼤致就是Zabbix agent, Simple checks, SNMP, Zabbix internal, IPMI, JMX monitoring等等。
那么在哪⾥可以看到这些东西呢?⼀般在创建或者配置⼀个监控项的时候。每次创建监控项你都必须选择⼀个检测类型。看如下图:
nagios
zabbix监控类型
2. item types注意点
从zabbix 2.0开始⼀台主机可以定义多个接⼝,什么是接⼝?agent、jmx、impi、snmp这些都是接⼝。假如你需要检查他的硬件那你需要配置impi,如果你还需要检测他的mysql、nginx之类的,你需要agent,监控什么类型的item,你需要配置什么类型的接⼝。如果你配置来多个接⼝,当需要检查⼀个tiem,zabbix会依次(Agent→SNMP→JMX→IPMI)调⽤接⼝,直到到合适的接⼝为⽌。
有些监控项完全由服务器端来完全,根本不需要agent,这个⼤家可以记⼀下。接下来的⼤部分时间都要花费在zabbix的监控类型。⼤家要做好⼼理准备。
3. 结束
⼤家知道了什么是item types,那么我该如何创建监控项呢?
zabbix创建监控项item
上⼀篇⽂章我们已经了解了什么叫zabbix item,本节内容来详细讲解如何创建⼀个item。我们带着⽬的来学习这节内容。本节⽬标为,创建获取cpu个数的监控项。
1. 创建监控项
点击配置(configuration)->主机(Hosts)->在你要配置的主机⼀栏上点击Items->点击create item。具体看截图,各个参数我都已经标注清楚了。
item
zabbix-create-item
2. Item 属性详解
属性 描述
Host 主机或者模板
Name 监控项item名称可以使⽤如下宏变量:
$1, $2…$9,这9个参数对应item key的参数位置。
例如: Free disk space on $1
如果item key为“vfs.fs.size[/,free]”,那么对应的名称会变成”Free disk space on /“,$1对应了第⼀个参数”/“,你明⽩了吗?
Type item类型(常见agent、SNMP、agent(active)等),请看后续监控项类型相关⽂章.
Key 监控项item的key.点击select可以看到系统很多⾃带的key,也可以看到⽤户⾃定义的key,如何⾃定义key,情继续关注ttlsa后续的zabbix教程.
Host interface 主机接⼝,例如agent、SNMP、impi等
Type of information 获取到得数据类型
Numeric (unsigned) – 64bit unsigned integer
Numeric (float) – floating point
numberCharacter – 字符串,最长255字节
Log – ⽇志⽂件. key必须为log[].
Text – ⼤⼩⽆限制的⽂本
Data type 定义获取到整数数据的数据类型
Boolean – 数据为0或者1.’true’表⽰1,’false’为0,不区分⼤⼩写。
如下为True和False的定义:
TRUE – true, t, yes, y, on, up, running, enabled, available
FALSE – false, f, no, n, off, down, unused, disabled, unavailable
任何⾮0数字都被认为是TRUE,0被定义为FALSE.负数呢?
Octal – ⼋进制
Decimal – ⼗进制
Hexadecimal – ⼗六进制
zabbix将会⾃动把他们转为数字
Units 默认情况下,如果原始值超过1000,那么他会先除以1000并且显⽰出来例如,设置了单位为bps并且收到的值为11102,将会显⽰为11.1Kbps
如果单位被指定为 B (byte), Bps (bytes per second) ,那么它会除以1024然后再显⽰数据。所以⼤家在监控流量和⽂件⼤⼩的时候不要⽤错单位,否则会出现数据不⼀致的情况。
如下为时间单位:
unixtime – 转为 “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”,只会显⽰3个单元。有时候只会显⽰2个单元,例如”1m
5h”(不包含分,秒,毫秒),如果返回的值⼩于0.001,他只会显⽰”<1 ms”禁⽤单位:ms、rpm、RPM、%
Use custom multiplier 如果启⽤这个选项,所有接收到的整数或者浮点数都会乘以这个⽂本框⾥⾯的值。使⽤这个选项,zabbix将会把收到的KB,MBps等数据先转为B,Bps。否则zabbix不能正确设置前缀(K,M,G等等).
zabbix 2.2开始⽀持科学计数法,例如:1e+70.
Update interval (in sec) 数据更新时间注意:如果设置为0,那么这个数据将永久不更新。但是如果在灵活更新间隔(flexible interval)⾥⾯设置了⼀个⾮0间隔,那么以这个为准
Flexible intervals 可以创建例外的更新间隔,例如:
Interval:10,Period:1-5,10:00-19:00,表⽰周⼀到周五的早上10点到晚上19点每⼗秒更新⼀次数据。其余时间使⽤默认值。这边最多只能设置7个灵活更新间隔.如果设置的多个灵活时间间隔有冲突,那么他会使⽤最⼩的时间间隔。
两个注意点:如果时间间隔被设置为0,那么数据永久不会更新。它不能⽤在zabbix主动⽅式的item
Keep history(in days) 历史记录可以在数据库中保存多久,过期的历史数据将会被Housekeeper删除.
从Zabbix2.2开始,这个值可以被⼀个全局值覆盖:Administrator->General->Housekeeper->勾选Keep history(in days),输⼊你希望历史记录保留的时间。
zabbix官⽅推荐⼤家尽量开启他,尽量使⽤⼀个较短的历史记录。如果你想看历史数据的画,你可以将”趋势历史记录Keep trends”的保留时间设置长⼀点。
Keep trends(in days) 趋势数据(以⼩时为单位的min,max,avg,count的数据)在数据库中保留时常,过期数据将会被HouseKeeping删除。
从zabbix2.2开始.这个值可以被⼀个全局值覆盖(请参考上⾯的Keep history)
备注:趋势数据只能存数字类型数据,字符、⽇志这些都⽆法存储。
Store value As is – 数据不作处理
Delta (speed per second) –
计算值公式为 (value-prev_value)/(time-prev_time)
value – 获取到得原始值
value_prev – 上次接收到的值
time – 当前时间
prev_time – 上次接收数据的时间⼀般⽤于数据增长的类型,例如:
⽹卡流量,每次获取到得都是当前⽹卡总流量。⽐如第⼀次给的值是0字节(UNIX时间为1),第⼆获取到得是3000字节(UNIX时间为31),那么套⽤公式(3000-0)/(31-30),可以得出数据是100字节/秒
备注:如果当前获取到的值⽐上⼀个值更⼩,那么zabbix会忽略这个值,等待下⼀次的值
Delta (simple change) –
计算公式为 (value-prev_value),value – 当前值value_prev – 上次获取到得值
Show value 值映射,需要配置数字映射到字符的映射表。例如:
1=>ttlsa访问正常。如果key返回的数据为1,那么监控页⾯不会显⽰1,⽽是显⽰ttlsa访问正常。key返回的数据只能为整数,并且不做任何修改保存到数据库中。只有在显⽰的时候才会根据映射表来展⽰相应的内容。
Log time format 只可以⽤在LOG类型中,⽀持占位符:
y: 年(0001-9999)
M: ⽉(01-12)
d: ⽇(01-31)
h: ⼩时(00-23)
m: 分钟(00-59)
s: 秒(00-59)如果时间搓留空不会被解析。
例如:
如 下为zabbix agent⽇志” 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211).”前⾯6个字符是PID,后⾯更上⽇期,时间和⽇志内容,⽇志时间类为“pppppp:yyyyMMdd:hhmmss”
备注:“p” 与 ”:” 为占位符,除了“yMdhms”不能为占位符,其它任意字符都可以作为占位符
New application 创建⼀个新的应⽤
Applications 包含多个应⽤,例如:
cpu、disk、network,监控项可以属于多个应⽤
Populates host inventory field 数据⾃动填充到inventory资产清单的相应属性,前提是你的inventory处于⾃动模式
Description 监控项的描述
Enabled 是否启⽤这个监控项.
创建item快捷⽅法,编辑⼀个item,然后克隆这个item,修改name等等其它数据即可。
3. 不可⽤的items
由于各种原因,某些item的数据⽆法获取到,但是zabbix依旧会再固定的时间间隔内重新获取数据
4. 结束
不可不说这篇⽂章很重要,下⼀步zabbix item key详解
zabbix item key详解
上篇⽂章详细介绍了zabbix创建item,本节详细介绍item key的规范,涉及到key的名称如何定义,key的参数如何定义。看完这⽚,以前总看不懂的key今天算是明⽩了。
1. 灵活的参数
参数位置可⽤接收任意参数则是灵活的。例如vfs.fs.size[],””星号可以使⽤任意的参数,例如:
vfs.fs.size[/]
vfs.fs.size[/opt]
2. Key格式
Item key格式包含key名称和他得参数,参数必须符合规范,请看下⾯的图⽚。key的定义要遵循箭头从做到右的规则,如果都符合,那这个key合法,否则不 合法。⼤致流程是:⾸先验证key名是否合法,如果存在参数那么验证参数是否合法,如果没有参数那直接跳过。如下图的意思⼤家现在懂了吗?
item
3. Key名称
key允许如下字符作为名称:
0-9a-zA-Z_-.
⼤致意思是说允许字符:所有数字、有⼤⼩写字幕、下划线、减号、点.
key名称从左到右⾛下规则,只要⼜⼀个字符不符合,那么key就不合法。
item
4. Key参数
item key可以⼜多个参数,他们之间⽤逗号’,’分开。如下图
item
key参数可以是带引号的字符串、不带引号的字符串以及数组。如下图。
item
quoted string:带引号字符串
unquoted string:不带引号字符串
array:数组
参数如果为空,那么将会使⽤他设置的默认值。例如key icmpping[,,200,,500],其中3个参数都为空,那么每200ms会ping⼀次,超时时间为500ms,其它为空的参数使⽤默认值。
4.1 参数- 带引号
如果key参数带引号,那么任何unicode数据都合法,如果参数⾥⾯带有双引号,那么要使⽤”\"来转义。具体如下
item
4.2 参数- 不带引号
如果kye参数是⼀个不带引号的字符串,除了逗号和右中括号其他任何unicode字符串都合法。具体看如下图
item
4.3 参数- 数组
如果key参数是⼀个数组,那么数组要多加⼀对中括号,并且数组⾥⾯的参数同样要遵循参数规范,具体如下图
item
为什么要⾃定义KEY
有时候我们想让被监控端执⾏⼀个zabbix没有预定义的检测,zabbix的⽤户⾃定义参数功能提供了这个⽅法。我们可以在客户端配置⽂件f⾥⾯配置UserParameter.
语法如下:
UserParameter=key,command
⽤户⾃定义参数包含⼀个key和⼀个命令,key必须整个系统唯⼀,配置好之后,重启客户端。
然后配置item,在key的位置填上我们⾃定义的key即可。
⽤户⾃定义参数⾥指定的脚本由zabbix agent来执⾏,最⼤可以返回512KB的数据.
⽤户⾃定义key实例
简单点的命令⽰例:
UserParameter=ping,echo 1
如果调⽤ping这个key,将会收到返回值1.
更复杂的命令⽰例:
UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
如果返回1表⽰MySQL运⾏中,如果返回0表⽰MySQL挂了
灵活的⾃定义key:
如下为灵活的⽤户⾃定义参数
UserParameter=key[*],command
参数 描述
Key 唯⼀. [*]表⽰⾥⾯可以传递多个参数
Command 需要执⾏的脚本,key的[]⾥⾯的参数⼀⼀对应$1到$9,⼀共9个参数。$0表⽰脚本命令.
注意事项
1. 如果需要使⽤命令⾏⾥⾯出现$2这种变量,那么你要使⽤两个$$2,例如awk ’{ print $$2 }’,之前就遇到过这个问题,不停的测
试⾃⼰脚本输出正常,但是zabbix却拿不到数据,原来是出在这⾥。为了防⽌和参数冲突,所以zabbix做了这 个规定。
2. zabbix禁⽌使⽤⼀些不安全的参数,如下:
\ ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
3. 从zabbix 2.0开始,zabbix返回⽂本数据可以是空格。
⽰例1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论