----出自《分布式监控平台Centreon最佳实践》

Proxmox VE(Proxmox Virtual Environment)简称PVE,是一款能与VMware相匹敌的超融合虚拟化平台,其去中心化的特性使整个平台具备更高的可用性,因为没有控制中心,集群中的任意节点故障,都不会导致服务不可用。Proxmox VE 6以后的版本,几乎所有的管控操作,都可以在Web管理界面轻松完成,真是系统管理员的福音啊。

Centreon监控超融合集群Proxmox VE(PVE)_分布式监控

Proxmox VE正常运行主要涉及corosync服务、pveproxy服务、ceph健康状态,只要这三个条件同时满足,我们就可以大致认为Proxmox VE是正常的。

  • corosync服务,在系统中有且只有一个进程。

root@pve10:/usr/local/nrpe/libexec# 

ps auxww|grep corosync
root        2108  1.2  0.0 197332 72504 ?        SLsl  2018 17614:34 /usr/sbin/corosync -f
  • pveproxy服务,此服务为Proxmox VE web管理后台。在系统中有多个进程,同时关联tcp监听端口8006。

Centreon监控超融合集群Proxmox VE(PVE)_Proxmox VE_02

  • ceph健康状态,在命令行执行“ceph health detail” ,以其输出了解其运行是否正常。

Centreon监控超融合集群Proxmox VE(PVE)_Proxmox VE_03

根据上述三个条件,在目录/usr/local/nrpe/libexec下撰写NRPE插件脚本check_pve,其内容如下:

#!/bin/bash
#Writed by sery(vx:formyz) in 2021-07-01

source /etc/profile
is_corosync=`ps aux| grep corosync|grep -v grep|wc -l`
pve_tcp8006=`netstat -anp| grep pveproxy | grep tcp| wc -l`
ceph_health=`ceph health detail| grep HEALTH|awk '{print $1}'`

if [[ $is_corosync == 1 ]] && [[ $pve_tcp8006 -ge 1 ]]
   then
    if  [[ $ceph_health = "HEALTH_OK" ]]
       then
       echo "Proxmox ceph VE is OK!"
       exit 0
    elif [[ $ceph_health = "HEALTH_WARN" ]]
       then
       echo "Proxmox VE ceph is WARNING"
       exit 1
  else
     echo "Proxmox Ve is CRITICAL"
     exit 2
 fi
fi

在一个运行正常的Proxmox VE集群是运行插件脚本check_pve,其输出结果如下:

Centreon监控超融合集群Proxmox VE(PVE)_Proxmox VE_04

手边正好有一个存在故障的Proxmox VE集群,其它正常而ceph异常。

Centreon监控超融合集群Proxmox VE(PVE)_分布式监控_05

把脚本check_pve复制到该集群的某个系统,运行脚本,其输出如下:

Centreon监控超融合集群Proxmox VE(PVE)_分布式监控_06

NRPE配置文件nrpe.cfg新增一行文本“command[check_pve]=/usr/local/nrpe/libexec/check_pve”,重启NRPE服务后,从监控服务器Centreon Central用插件check_nrpe进行验证,指令如下:

libexec/check_nrpe -H 172.16.98.10 -c check_pve

如果输出结果为“NRPE: Unable to read output”,表明nagios账号权限不足,不能读取ceph服务的相关配置。因此。需要用sudo来给nagios账号进行合理的授权,然后在监控服务器Centreon Central再执行上述指令。

Centreon监控超融合集群Proxmox VE(PVE)_Centreon_07

按照前边添加负载均衡监控项的方法,把check_pve在Centreon Central的web管理后台给添加上。

Centreon监控超融合集群Proxmox VE(PVE)_Nagios_08

输出Centreon Central Poller,重载Centreon 引擎,Proxmox VE监控项添加成功。

Centreon监控超融合集群Proxmox VE(PVE)_Nagios_09