评论

收藏

[Linux] Centreon监控超融合集群Proxmox VE(PVE)

服务系统 服务系统 发布于:2021-08-03 13:55 | 阅读数:669 | 评论:0

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

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。
DSC0001.jpg


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

根据上述三个条件,在目录/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,其输出结果如下:
DSC0003.jpg

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

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

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再执行上述指令。
DSC0006.jpg

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

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



关注下面的标签,发现更多相似文章