zabbix 监控项自动发现过滤_通过Zabbix的自动发现(规则)自动创建监控项
下圖是一個已配置并啟用的自動發現規則:
應用到165.194這個主機后,自動發現的監控項:
服務端配置創建Template
創建Discovery rule
鍵值readPorts跟被監控端配置的參數有關,下面再提。創建監控項原型
宏引用符號{ #SERVICE }和{ #TCP_PORT }跟被監控端返回的json數據有關。net.tcp.listen[]表示監聽目標機器的端口狀態,返回值為0或1,0表示Down,1表示Up。另外,$1表示鍵值里的第一個參數,即。
創建觸發器原型
添加完監控項和觸發器原型的樣子:
添加主機并關聯此模板
此略。
被監控端配置
首先,看一下/etc/zabbix目錄下的文件。scripts目錄是新加的,zabbix_agentd.conf也作了修改。
使用自動發現功能,需要返回符號zabbix要求的json數據:
例如:1
2
3
4
5
6
7
8
9
10
11
12{
"data": [
{
"{#SERVICE}": "phjd_mysql",
"{#TCP_PORT}": "28001"
},
{
"{#SERVICE}": "philips_taxfree_tuangou_payment_management",
"{#TCP_PORT}": "16200"
}
]
}
其形式大致如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17{
"data": [
{
"{#KEY01}": "value01_01",
"{#KEY02}": "value01_02",
"{#KEY03}": "value01_03",
...
},
{
"{#KEY01}": "value02_01",
"{#KEY02}": "value02_02",
"{#KEY02}": "value02_03",
...
},
...
]
}
readPorts.sh腳本的內容很簡單,就是讀取已準備好的json數據文件ports.json,作為返回給zabbix server的值:1
2
3
4
5mypath=$(cd `dirname $0`; pwd)
cat $mypath/ports.json
為了返回給server端,需要再zabbix_agentd.conf中配置:
這樣,server端就可以使用readPorts這個鍵值,以獲取寫在ports.json中的數據。readPorts下面定義的getPorts、getAllPorts是另外兩個可用的自定義鍵值。
自動發現需監控的服務/端口,難點不在于讀取,而在于自動生成json數據文件。此處的ports.json是根據ports.ini轉換而來的。
ports.ini文件需人工填寫:
getPorts.py腳本如下,用于轉換ports.ini為ports.json:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28#!/usr/bin/env python
#coding:utf-8
import os, json, re
mypath = os.path.dirname(os.path.realpath(__file__))
port_list = []
port_dict = {"data":None}
with open('%s/ports.ini' % mypath, 'r') as f:
for line in f.readlines():
line = line.strip()
if line:
try:
port_srv = line.split(':')
port_list.append({"{#TCP_PORT}": port_srv[1].strip(),
"{#SERVICE}": port_srv[0].strip()})
except:
pass
port_dict["data"] = port_list
json_str = json.dumps(port_dict, sort_keys=True, indent=4)
# json_str已是json字符串,但每行尾部有一個多余的空格,zabbix不接受,須刪除行尾空格
p = re.compile("s+$")
for line in json_str.split('n'):
ss = re.sub(p, "", line)
print ss
轉換ports.ini為json形式:
至于getAllPorts.py,它的功能是直接返回主機上實際開放的端口數據:
總結
以上是生活随笔為你收集整理的zabbix 监控项自动发现过滤_通过Zabbix的自动发现(规则)自动创建监控项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: snmp v3 参数_snmp v3 配
- 下一篇: # 模糊图片边缘_PS大神给你变个魔术,