zabbix自動發現的python方式資料生成

2022-06-15 09:30:14 字數 1188 閱讀 7026

zabbix裡面有個功能是自動發現,比如檔案系統和網絡卡的獲取的時候,因為預先無法知道這個網絡卡的名稱,所以就有了這個自動發現的功能,這裡我是因為要用到儲存池的自動發現,所以需要對資料進行生成

我們看下原生的介面的資料型別:

[root@lab8106 ~]# zabbix_get -s 127.0.0.1 -k "net.if.discovery"

":"enp3s0"},":"virbr0-nic"},":"docker0"},":"enp4s0"},":"enp2s0f0"},":"enp2s0f1"},":"virbr0"},":"lo"}]}

資料為格式化好了的json資料,這個地方弄了好半天,因為網上很多人是用字串拼接的方式,實際這個是字典巢狀了列表,列表又巢狀了字典,就是後面的地方開始沒弄懂怎麼有大括號的

我們同樣的來看看ceph原生的命令的json介面

[root@lab8106 ~]# ceph -s -f json
同樣也是這個型別的資料,好了,這裡直接上**:

def get_cluster_pools():

try:

pool_list=

data_dic = {}

cluster_pools = commands.getoutput('timeout 10 ceph osd pool ls -f json 2>/dev/null')

json_str = json.loads(cluster_pools)

for item in json_str:

pool_dic = {}

pool_dic[''] = str(item)

data_dic['data'] = pool_list

return json.dumps(data_dic,separators=(',', ':'))

except:

return 0

輸出如下

":"rbd"},":"metedata"},":"data"}]}
跟上面的格式一樣了,關鍵在對字典進行賦值的處理,然後進行乙個空格處理就完成了

還是接觸的太少,造成簡單的處理都需要花費比較久的時間

whywho

when

建立武漢-運維-磨渣

2016-10-28

Zabbix 自動發現 自動註冊

zabbix 為使用者提供了高效靈活的網路自動發現功能,有以下優點 ip 範圍 可用的外部服務 ftp ssh web pop3 imap tcp 等 來自 zabbix 客戶端的資訊 僅支援未加密模式 來自 snmp 客戶端的資訊 不支援 發現網路拓撲 網路發現由兩個階段組成 發現和動作 原理 z...

zabbix自動發現埠

通過批量實現自動發現埠,避免傻傻的乙個乙個新增 使用zabbix的discovery功能來實現監控。注意 自動發現埠,需要在sysctl.conf中修改下系統自動開啟埠的範圍如果不修改,net.ipv4.ip local port range 10240 65535會導致自動發現的埠有系統自動開啟的...

zabbix自動發現主機

zabbix自動發現,在新增主機數量較多的情況很好用。從發現到新增完成需要經過以下幾個步驟。後面會將一些錯誤原因進行分析 1 建立自動發現規則 延遲選項盡量不要選擇時間過長,否則會導致主機發現時間很慢 2 建立動作,用來將自動發現的主機進行分組和鏈結模板 這個時候等待幾分鐘,會在zabbix介面 監...