我需要監視zabbix中的物理接口鏈接狀態,並且想知道是否有內部zabbix檢查,或者我需要自己寫。如果是這樣,如何確定是否有網線插入網線,並且接口有電壓。如何監視zabbix中的網卡鏈接狀態
回答
不,沒有這樣的檢查。你可以使用UserParameter來實現它。至於如何,取決於運行代理的操作系統。在Linux上,您可以使用mii-tool或ethtool來定期檢查。或者,如果您使用NetworkManager,則可以執行一些腳本並連接到D-Bus。或者您可以監視系統日誌,驅動程序通常會將日誌鏈接檢測到內核日誌。
在窗戶上,我不知道。可能netsh或ipconfig與一些findstr可以讓你輪詢狀態。或者powershell。詢問serverfault,我敢打賭你會有確切的答案。
所以是的UserParameter它是(甚至在Zabbix 3.0中),它的設置相當容易,至少在現代Linux機器上是如此。通過參數化UserParameter(如果您遵循...),可以定義一個參數來支持監視多個NIC;方法如下:
- 在一個目標框,找到UserParamter定義存儲代理的目錄,像水木清華
/etc/zabbix/zabbix_agentd.d/
創建用於定義一個新的文件或修改現有的一個;我這樣做:
cat > /etc/zabbix/zabbix_agentd.d/userparameter_niclink.conf << EOF UserParameter=net.if.link[*],cat /sys/class/net/$1/carrier EOF
- 重新啓動代理,如:
service zabbix-agent restart
- 在的zabbix UI,對主機創建項目如下:
- 類型:的zabbix代理(積極的,如果合適)。
- 鍵:已到托架之間被監控的實際NIC,例如:,
- 類型的信息:數值(無符號); 數據類型:十進制
- 顯示值:爲 「服務狀態」(其顯示爲 「上/下」)
- 應用:網絡接口
就是這樣;轉到最新數據;等待30秒左右,你的網卡狀態應該開始填充。如果鏈接關閉,則可以針對要警示的項目定義觸發器,這也可能很有用。
這是一些other ways to detect a NIC link's state;上面的cat /sys/class/net/${nic}/carrier
適合我(Ubuntu 14.04服務器,物理網卡)。
@ sxc731是對的,在net.if
鍵中沒有這樣的現有項目。
如果您想使此解決方案具有通用性,您可以使用發現規則來發現網絡接口。這將查找所有接口,也可以找到虛擬網橋等。但是,您可以使用正則表達式來僅匹配物理接口。我在多臺服務器上使用多個操作系統進行部署。這是我的方法:
- 創建或使用現有的Zabbix模板。
- 在管理 - >常規菜單,進入正則表達式並執行以下操作:
- 添加新的正則表達式
Physical network interface discovery
。 - 使用正則表達式
^em[0-9]{1,}|p[0-9]{1,}p[0-9]{1,}|eth[0-9]{1,}|ens[0-9]{1,}$
。
- 添加新的正則表達式
- 使用密鑰
net.if.discovery
爲您的模板創建發現規則。 - 使用宏
{#PHYSNET}
和正則表達式@Physical network interface discovery
創建過濾器。 - 添加項目原型鑰匙
net.if.link[{#PHYSNET}]
和觸發如果你需要一個。 - 在Zabbix客戶端服務器上創建UserParameter(示例結尾)。
使用cat /sys/class/net/$1/carrier
作爲UserParameter存在一個問題。如果網絡接口已關閉(例如使用ip link set eth0 down
),則cat
命令的結果爲無效參數。
我個人使用的用戶參數此一行代碼:
UserParameter=net.if.link[*], if [ $(cat /sys/class/net/$1/operstate) = "up" ]; then cat /sys/class/net/$1/carrier; else echo "0"; fi;
資源:
- 1. Zabbix代理狀態監控
- 2. 教zabbix監控服務狀態
- 3. 使用libcurl監視網絡的狀態
- 4. 如何監控SIM卡狀態變化
- 5. 如何監控Android中的網絡連接狀態?
- 6. 使用Zabbix監視Oracle DB
- 7. Android - 監控互聯網連接狀態
- 8. 如何監視MySQL服務器狀態
- 9. 監視隊列的狀態
- 10. 如何監控以太網連接狀態
- 11. SQL Server狀態監視器
- 12. 監視ASP.NET會話狀態
- 13. Alamofire監控網絡狀態
- 14. 監視pdb中對象的狀態
- 15. 監控域連接狀態
- 16. 如何監視網絡接口(go-lang)
- 17. 可以通過zabbix代理執行Zabbix網頁監控嗎?
- 18. ASP.net視圖狀態鏈接錯誤
- 19. 在Zabbix上監視應用程序
- 20. 如何在$ AngularJS中監視$ stateProvider的狀態變化?
- 21. 如何監視kubernetes中的所有容器狀態?
- 22. 如何在Java中監視線程的狀態?
- 23. 使用zabbix進行網站監控
- 24. 動態監視程序狀態
- 25. 監視的MediaPlayer的狀態在GUI
- 26. Cloudify監控和Zabbix
- 27. Zabbix jmx監控G1
- 28. 如何鏈接狀態更新?
- 29. 如何隱藏狀態欄鏈接
- 30. 監視IP地址狀態的變化
作爲一個即興使用'/etc/zabbix/zabbix_agentd.d/userparameter_niclink.conf'中的以下行來提示我:#用戶參數= net.if.link [*],如果[-r/sys/class/net/$ 1 /載體];那麼cat/sys/class/net/$ 1/carrier;其他回顯0; fi' 這可以防止項目進入「不支持」狀態。 – dsteinkopf