zabbix主动模式监控ProxmoxVE平台基础指标

zabbix主动模式监控PVE虚拟机

2025年3月10日

14:51

 

1、客户端为pve7.4环境,使用对应agent7.0版本(测试其他低版本获取不到数据)

  zabbix agent客户端安装

  zabbix-agent7.0官网指引地址 https://www.zabbix.com/cn/download?zabbix=7.0&os_distribution=debian&os_version=11&components=agent&db=&ws=

  # wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-2+debian11_all.deb

  # dpkg -i zabbix-release_7.0-2+debian11_all.deb

  # apt update #必须更新安装包才能获取7.0版本

  # apt install zabbix-agent

  # systemctl restart zabbix-agent

  # systemctl enable zabbix-agent

 

2、agent主动模式配置

  在agent端的配置文件添加如下参数

  模板化配置文件只确定如下参数:

    ServerActive=xxxxx:30051 #服务端映射出来的10051端口(建议把10051和10050同时映射出来)

    Hostname=192.168.100.11_myy01 #主机名称,主机名称必须跟web页面的名称一致

 

实际配置文件信息

root@myy01:/etc/zabbix# cat zabbix_agentd.conf | grep -v "^$\|^#"

PidFile=/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server=127.0.0.1

ServerActive=xxxxx:30051

Hostname=192.168.11.253_qh_fhcjf_myy01

Include=/etc/zabbix/zabbix_agentd.d/*.conf

UserParameter=cpu.used,top -b -n1| awk 'NR==3' | awk '{print 100-$8}'

UserParameter=mem.used,free -m | awk 'NR==2{printf "%.2f\n",100-$4/$2*100}'

UserParameter=mem.top,free -g | awk 'NR==2{print$2}'

UserParameter=swap.used,free -m | awk 'NR==3{printf "%.2f\n",$3/$2*100}' | sed 's/-nan/0/p' | head -1

UserParameter=os.uptime,cat /proc/uptime |awk '{days=int($1/86400); hours=int(($1%86400)/3600); minutes=int(($1%3600)/60); seconds=int($1%60); print days "天 " hours ":" minutes ":" seconds}'

UserParameter=os.version,pveversion | awk -F '/' '{print$2}'

UserParameter=vm.count,ls /etc/pve/qemu-server/| awk -F'.' '$1>1000' | wc -l

UserParameter=temp.cpu0,sensors | grep "^Package id 0" | awk -F'+' '{print$2}' | awk -F'°C' '{print$1}'

UserParameter=temp.cpu1,sensors | grep "^Package id 1" | awk -F'+' '{print$2}' | awk -F'°C' '{print$1}'

UserParameter=temp.connect,sensors | grep "^temp1:" | awk -F'+' '{print$2}' | awk -F'°C' '{print$1}'

UserParameter=clamscan.top,cat /etc/zabbix/scripts/clamscan/clamscan.log | awk '/Infected files:/{print$3}'

UserParameter=clamscan.log,cat /etc/zabbix/scripts/clamscan/clamscan.log

 

 

3、添加主机并套用做好的模板

 

4、模板信息

  模板包含基础指标和自定义指标

  基础指标如下,根据agent配置文件的UserParameter参数进行实现

  自定义指标如下

 

 

 

 

 

5、自定义指标获取方式

  目录结构

  1)通过脚本获取本地需要的日志文件信息,日志文件格式必须首行为表头字段说明,其他行为数据行,首列为监控项名称,其他列为值

root@myy01:/etc/zabbix/scripts/pve_mv_status# cat vm_used.sh

#!/bin/bash

. /etc/profile

 

Os_used_logfile='/etc/zabbix/scripts/pve_mv_status/vm_used.log'

Os_status_logfile='/etc/zabbix/scripts/pve_mv_status/vm_status.log'

Vm_info_logfile='/etc/zabbix/scripts/pve_mv_status/pve_vm_info.log'

 

 

Datas=`qm list | awk '{print$1"\t"$2"\t"$3}' | awk '{if($1>1000)print}'`

echo "${Datas}">${Os_status_logfile}

 

Vids=`echo "${Datas}" | awk 'NR>1{print$1}'`

 

echo -n "">${Os_used_logfile}

for i in `echo "${Vids}"`

do

Cpu_used=`qm guest exec ${i} --timeout 30 wmic cpu get loadpercentage | grep 'out-data" :' | grep -o "[[:digit:]]*" | awk '{printf "%.2f\n",$1}'`

if [ "${Cpu_used}a" = "a" ];then

Cpu_used='0'

fi

Mem_used=`qm guest exec ${i} --timeout 30 wmic OS get FreePhysicalMemory, TotalVisibleMemorySize /format:list | grep 'out-data" :' | grep -o "[[:digit:]]*" | xargs echo | awk '{printf "%.2f\n",(1-$1/$2)*100}'`

if [ "${Mem_used}a" = "a" ];then

Mem_used='0'

fi

Disk_used=`qm guest exec ${i} --timeout 30 wmic logicaldisk get size,freespace,caption | grep 'out-data" :' | grep -o "[[:digit:]]*" | xargs echo | awk '{print "C "(1-$1/$2)*100" D "(1-$3/$4)*100}'`

echo "${i} ${Cpu_used} ${Mem_used} ${Disk_used}">>${Os_used_logfile}

done

 

 

printf "%-8s%-16s%-10s%-8s%-8s%-8s%-2s%-8s%-2s%-8s\n" Vid Name Status Used Cpu Mem C C_used D D_used >${Vm_info_logfile}

for i in `echo "${Vids}"`

do

Os_used_data=`cat ${Os_used_logfile} | grep "^${i}" | awk '{$1=""; print}'`

Os_status_data=`cat ${Os_status_logfile} | grep "^${i}"`

echo "${Os_status_data} ${Os_used_data}">>${Vm_info_logfile}

done

root@myy01:/etc/zabbix/scripts/pve_mv_status#

  脚本获取的日志文件

 

 

  2)zabbix自动发现规则所自定义的脚本

root@myy01:/etc/zabbix/scripts/pve_mv_status# cat pve_status_check.sh

#!/bin/bash

EQ_DATA="$2"

ZBX_REQ_DATA_TAB="$1"

SOURCE_DATA='/etc/zabbix/scripts/pve_mv_status/pve_vm_info.log'

case $2 in

Status)

grep -E "^${ZBX_REQ_DATA_TAB}[[:blank:]]" ${SOURCE_DATA} | awk '{print $3}' ;;

Cpu)

grep -E "^${ZBX_REQ_DATA_TAB}[[:blank:]]" ${SOURCE_DATA} | awk '{print $4}' ;;

Mem)

grep -E "^${ZBX_REQ_DATA_TAB}[[:blank:]]" ${SOURCE_DATA} | awk '{print $5}' ;;

Cdisk)

grep -E "^${ZBX_REQ_DATA_TAB}[[:blank:]]" ${SOURCE_DATA} | awk '{print $7}' ;;

Ddisk)

grep -E "^${ZBX_REQ_DATA_TAB}[[:blank:]]" ${SOURCE_DATA} | awk '{print $9}' ;;

*)

echo $ERROR_WRONG_PARAM; exit 1;;

esac

exit 0

root@myy01:/etc/zabbix/scripts/pve_mv_status#

root@myy01:/etc/zabbix/scripts/pve_mv_status# cat pve_status_discovery.sh

#!/bin/bash

 

SPLEXPORT2=`cat /etc/zabbix/scripts/pve_mv_status/pve_vm_info.log | awk '{print $1}' | awk 'NR > 1{print}' | wc -l`

if [ ${SPLEXPORT2} -ne 0 ];then

SPLEXPORT=`cat /etc/zabbix/scripts/pve_mv_status/pve_vm_info.log | awk '{print $1}' | awk 'NR > 1{print}'`

COUNT=`echo "${SPLEXPORT}" | wc -l`

INDEX=0

echo '{"data":['

echo "${SPLEXPORT}" | while read LINE; do

echo -n '{"{#SPLEXPORT}":"'${LINE}'"}'

INDEX=`expr ${INDEX} + 1`

if [ ${INDEX} -lt ${COUNT} ];then

echo ","

fi

done

echo ']}'

fi

 

 

  3)zabbix 自定义监控项阈值参数

root@myy01:/etc/zabbix/scripts/pve_mv_status# cd /etc/zabbix/zabbix_agentd.d/

root@myy01:/etc/zabbix/zabbix_agentd.d# cat pve_status.conf

UserParameter=pve.status.discovery, /bin/sh /etc/zabbix/scripts/pve_mv_status/pve_status_discovery.sh

UserParameter=pve.status[*], /bin/sh /etc/zabbix/scripts/pve_mv_status/pve_status_check.sh $1 $2

 

 

  4)配置计划任务,实现自动获取监控数据

root@myy03:/etc/zabbix/zabbix_agentd.d# crontab -l

#zabbix

*/30 * * * * sh /etc/zabbix/scripts/pve_mv_status/vm_used.sh

*/5 * * * * sh /etc/zabbix/scripts/pve_sysfile_info/pve_sysfile_info.sh

 

 

 

6、配置zabbix模板

  1)创建模板

 

  2)创建自动发现规则

 

  3)创建监控项

 

  4)创建触发器

 

 

6、查看监监控项数据

 

 

7、查看告警信息

 

posted @ 2025-04-01 11:02  ZhengLiming  阅读(471)  评论(0)    收藏  举报