zabbix 自定义探索规则发现服务器上面的kvm虚拟机和对应的网卡
安裝完zabbix服務器之后 只有兩個探索規則模版,掛載點探索和網卡探索
場景描述:想使用zabbix監控kvm虛擬機的網卡的流量情況,
獲取虛擬機和網卡對應關系
虛擬機 S-1?
virsh domiflist S-1 # 列出虛擬機的網卡 (vnet*)
virsh domifstat S-1 vnet0 # 列出虛擬機的網絡流量
所以監控虛擬機的網卡流量情況,需要知道虛擬機的名和對應的網卡
首先建立探索腳本,來搜索虛擬機和網卡
vi /etc/zabbix/zabbix_agentd.d/virsh_running_discovery.sh
#!/bin/bash virsh_running_discovery() {local tmpfile="/tmp/mounts.tmp"echo > "$tmpfile"local kvm_list=(`sudo virsh list | grep running |awk '{print $2}'`)local num1=${#kvm_list[@]}printf '{\n'printf '\t"data":[ 'for i in ${kvm_list[@]}do((num1--))local vnic_list=(`sudo virsh domiflist $i|sed '1,2d'|awk '{print $1}'|grep -v ^$`)local num2=${#vnic_list[@]}for s in ${vnic_list[@]}doprintf '\n\t\t{'printf "\"{#VS_NAME}\":\"${i}\","printf "\"{#VS_NIC}\":\"${s}\"}"((num2--))[ "$num2" == 0 -a "$num1" == 0 ] && breakprintf ","donedoneprintf '\n\t]\n'printf '}\n' } case "$1" invirsh_running_discovery)"$1";;*)echo "Bad Parameter."echo "Usage: $0 virsh_running_discovery"exit 1;; esac自定義key
編輯配置文件vim /etc/zabbix/zabbix.agentd.d/kvm_list.conf
UserParameter=virsh.running.discovery,/bin/bash?/etc/zabbix/zabbix_agentd.d/virsh_running_discovery.sh virsh_running_discovery
測試
zabbix_get -s 127.0.0.1 -k?virsh.running.discovery
測試通過過 在zabbix界面添加探索規則,然后添加此規則的項目原型,使用{#VS_NAME}引用虛擬機名,{#VS_NIC} 引用網卡名
?
補充:
?zabbix 調用到了virsh 命令 所以要配置sudo 才能讓zabbix 調用virsh?
?vi /etc/sudoers?
zabbix ALL=(ALL) NOPASSWD: /usr/bin/virsh # NOPASSWD 表示 sudo的時候不使用密碼
將 Defaults requiretty 給注釋,在centos fedora 下面 使用sudo ?需要有個tty才可以 ,因為在腳本里面執行 所以要將這行注釋
轉載于:https://www.cnblogs.com/pdjun/p/5977274.html
總結
以上是生活随笔為你收集整理的zabbix 自定义探索规则发现服务器上面的kvm虚拟机和对应的网卡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++学习10 static静态成员变量
- 下一篇: 读书笔记第五章