一 Items簡介
Items是從主機里面獲取的所有數據,可以配置獲取監控數據的方式、取值的數據類型、獲取數值的間隔、歷史數據保存時間、趨勢數據保存時間、監控key的分組等。
通常情況下item由key+參數組成,如監控項中需要獲取cpu信息,則需要一個對應的監控key:system.cpu.load。如果是獲取網卡流量,那么獲取網卡這個監控項需要key:net.if.in或者net.if.out。監控項的數據保存在Zabbix.items表中,即select * form zabbix.itesm;
一般情況下key要與參數結合起來使用,例如獲取5分鐘的負載情況:system.cpu.load[avg5],avg5是對應的參數,如果是1分鐘則使用avg1,如果是15分鐘則使用avg15,網卡流量net.if.in[eth0],使用eth0作為參數可以獲取到eth0網卡的進入流量,同樣看一看換成eth1,eth2等等。
二 Items的添加
Items可以存在于模板(Template)中,也可以存在于主機(Host)中,模板可以復用。
configuration---->Templates---->Templates
#此操作為Templates OS Linux模板創建一個用于監控CPU個數的Items(監控項),為主機創建監控項可參考此操作。

新建Items

添加相應參數和選項

參數說明
屬性 | 描述 |
Name | 監控項 item 名稱可以使用如下宏變量: $1, $2…$9,這 9 個參數對應 item key 的參數位置。 例如--Name: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。 |
Type of information | 獲取到的數據類型: Numeric (unsigned):無符整型,表示從0開始到2^32-1的所有整數。 Numeric (float):浮點數 Character:字符串,最長 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 – 轉為 “ 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”,只會顯示 3 個單元。 有時候只會顯示 2 個單元,例如” 1m 5h”(不包含分,秒,毫秒),如果返回的值小于0.001, 則只顯示"<1ms" 。 禁用單位:ms/rpm/RPM/% |
Use custom multiplier | 如果啟用這個選項,所有接收到的整數或者浮點數都會乘以這個文本框里面的值。 使用這個選項,zabbix 將會把收到的KB,MBps等數據先轉為B,Bps。否則zabbix 不能正 確設置前綴(K,M,G 等)。 |
Update interval (in sec) | 數據更新時間。 注意:如果設置為0,則永久不更新。 |
Custom intervals | 可以創建例外的更新間隔,例如: Interval:10,Period:1-5,10:00-19:00,表示周一到周五的早上 10 點到晚上 19 點每十秒更新 一次數據。其余時間使用默認值。這邊最多只能設置 7 個靈活更新間隔。 注意:1? 若設置的多個靈活時間間隔有沖突,則使用最小的時間間隔。 ????????? 2? 如果時間間隔被設置為 0,那么數據永久不會更新,且不能用在 zabbix主動方式的 item |
History storage period (in days) | 歷史記錄在數據庫中保存時間,過期的歷史數據將會刪除。 zabbix官方推薦開啟后盡量使用一個較短的歷史記錄。 若需要查看歷史數據,可將"趨勢歷史記錄 Keep trends"的保留時間設置長一點。 注意:此值會被全局值(Administrator->General->Housekeeper->History覆蓋。 |
Trend storage period (in days) | 趨勢數據(以小時為單位min,max,avg,count的數據)在數據庫中保留時長,過期數據將會刪除。 注意:1??? 此值會被全局值(Administrator->General->Housekeeper->History覆蓋。? ????????? 2??? 趨勢數據只能存數字類型數據,字符、日志都無法存儲。 |
Store value | As is:數據不作處理 Delta (speed per second)——計算公式為 (value-prev_value)/(time-prev_time) ??? value:獲取到得原始值 ??? value_prev:上一次接收到的值 ??? time:當前時間 ??? prev_time:上次接收數據的時間 ??????????? 一般用于數據增長的類型,例如:網卡流量,每次獲取到得都是當前網卡總流量。 ??? 比如第一次給的值是 0 字節,第二獲獲取的為3000字節,則(3000-0)(/31-30),即100 字節/秒 ??? 備注:如果當前獲取到的值比上一個值更小,則忽略這個值,等待下一次的值 Delta (simple change)——計算公式為 (value-prev_value) ??? value:獲取到得原始值 ??? value_prev:上一次接收到的值 |
Show value | 值映射,需要配置數字映射到字符的映射表。 例如:1=>xhy.cn訪問正常。 則key 返回的數據為1時,監控頁面顯示xhy.cn訪問正常。 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 | 是否啟用這個監控項。 |

注意:[root@imxhy01 ~]# zabbix_get -s 172.24.8.101 -k system.cpu.num可以測試key值是否正確。
三 Items key的添加
3.1 Items key的格式

key名[參數]:key的定義必須遵循如圖所示規則,首先驗證key名是否合法,若有參數則之后驗證key的參數是否合法,若沒有參數則跳過。
如:vfs.fs.size[/]或vfs.fs.size[/opt]
3.2 key參數

key可接參數分為引號字符串、非銀引號字符串和數組。
- 引號字符串:若參數是引號字符串,可為任意字符串,若存在雙引號,必須用反斜杠\進行轉移。

- 非引號字符串參數:除逗號、方括號外的其他字符都能引用。、

- 數組:如果key的參數是一個數組,用逗號將各參數分開。

屬性 | 描述 |
quoted string | 帶引號字符串 |
unquoted string | 不帶引號字符串 |
array | 數組 |
3.3 key的名稱定義注意項
- key名稱的取值范圍如下:
- 所有的數字(0~9);
- 所有的小寫字母(a~z);
- 所有的大寫字母(A~Z);
- 下劃線(_);
- 破折號(——);
- 點(.)。
四 用戶自定義key
注意:強烈建議將用戶自定義的參數(UserParameter)寫入新的配置文件,然后在原配置文件中引用,便于維護和管理。
4.1 自定義參數語法格式
UserParameter=key,command
UserParameter=key[*],command $1 $2 $3……
參數 | 描述 |
key | Items key具有唯一性,定義[*]可以接受參數 |
command | Zabbix將[]中的參數傳遞給命令中的$1……$9,將值作為命令的一部分 |
注意:1 自定義key對特殊字符如\".*?$!&;()<>#@等,默認情況下無法處理,需要在/etc/zabbix/zabbix_agentd.confabbix中開啟參數。
UnsafeUserParameters=1
2 自定義參數可以返回文本(character/log/text)和空值,若返回的是一個無效值,則顯示ZBX_NOTSUPPORTED。
4.2 自定義參數實例
1 [root@imxhy01 ~]# vi /etc/zabbix/zabbix_agentd.conf #編輯原配置文件 2 UnsafeUserparameters=1 #開啟對特殊字符的處理 3 Include=/etc/zabbix/zabbix_agentd.d/*.conf #開啟子配置文件 4 [root@imxhy01 ~]# vi /etc/zabbix/zabbix_agentd.d/my.conf #新增子配置文件 5 UserParameter=get.os.type, cat /etc/redhat-release #新增獲取系統的Items key 6 UserParameter=wc[*], grep -c "$2" $1 #新增統計的Items key 7 [root@imxhy01 ~]# systemctl restart zabbix-agent.service #重啟agent服務 8 [root@imxhy01 ~]# zabbix_get -s 172.24.8.100 -k get.os.type 9 Red Hat Enterprise Linux Server release 7.0 (Maipo) 10 [root@imxhy01 ~]# zabbix_get -s 172.24.8.100 -k wc[/etc/passwd,root]
2
4.3 配置自定義key總結
- 自定義key的語法;
- 特殊字符的處理開啟;
- 子配置文件的注意事項;
- 多Agent則需要每個agent客戶端分別配置。
4.4 配置定義key步驟
1.Agent配置文件修改
- 開啟特殊字符處理;
- 建立子配置文件。
2.子配置文件配置相應key
3.重啟服務測試key
4.用zabbix_agentd查看key是否被支持
1 [root@imxhy01 ~]# zabbix_agentd -p | grep get\.os 2 get.os.type [t|Red Hat Enterprise Linux Server release 7.0
5.在Web界面添加相應的Items,注意數據類型的選擇。
