Nagios 监控 ESXi
豆子今天想把VMware ESXi的监控也加入Nagios里面。关于对ESXi的监控,可以实现的方法有很多,豆子的第一反应是用PowerShellCLi,第二个反应是SNMP,第三个反应是找找有没有现成的脚本,就不用重复造轮子了~~
首先看看PowerShellCli怎么监控的?
这个脚本本身很容易,自己通过get-stat就可以获取对应的信息。比如说我打算查看一下某台主机的内存状态, 第一个是ballon的状态,第二个是实际使用的内存,第三个是使用率,第四个是分配的内存,这个结果和VCenter上面查看是一致的
VCenter上面查看
脚本可以获取信息了,那么剩下的配置步骤就不赘述了,可以参考Nagios如何监控VEEAM的备份状态 https://blog.51cto.com/beanxyz/1981136
第二种方式是SNMP
ESXi上面打开SNMP的方法一般是通过esxcli来实现。简单的说就是设置community 字符串,打开snmp服务,允许防火墙访问,我这里就用最简单snmp v2, 允许所有IP访问
esxcli system snmp set --communities public esxcli system snmp set --enable true esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true [esxcli network firewall ruleset set --ruleset-id snmp --enabled true /etc/init.d/snmpd restart
可以通过VCenter的图形界面确认
然后下载ESXi SNMP对应的MIB文件,下载后解压到
/usr/share/snmp/mibs
[root@sydnagios mibs]# pwd /usr/share/snmp/mibs [root@sydnagios mibs]# ls AGENTX-MIB.txt IEEE8021-TC-MIB.mib NET-SNMP-EXTEND-MIB.txt SNMP-NOTIFICATION-MIB.txt UCD-SNMP-MIB.txt BRIDGE-MIB.mib IEEE8023-LAG-MIB.mib NET-SNMP-MIB.txt SNMP-PROXY-MIB.txt UDP-MIB.mib BRIDGE-MIB.txt IF-INVERTED-STACK-MIB.txt NET-SNMP-PASS-MIB.txt SNMP-TARGET-MIB.txt UDP-MIB.txt DISMAN-EVENT-MIB.txt IF-MIB.mib NET-SNMP-TC.txt SNMP-USER-BASED-SM-MIB.txt UUID-TC-MIB.mib DISMAN-SCHEDULE-MIB.txt IF-MIB.txt NET-SNMP-VACM-MIB.txt SNMP-USM-AES-MIB.txt VMWARE-CIMOM-MIB.mib DISMAN-SCRIPT-MIB.txt INET-ADDRESS-MIB.mib NETWORK-APPLIANCE-MIB.txt SNMP-USM-DH-OBJECTS-MIB.txt VMWARE-ENV-MIB.mib ENTITY-MIB.mib INET-ADDRESS-MIB.txt NETWORK-SERVICES-MIB.txt SNMPv2-CONF.mib VMWARE-ESX-AGENTCAP-MIB.mib EtherLike-MIB.txt IP-FORWARD-MIB.mib NOTIFICATION-LOG-MIB.txt SNMPv2-CONF.txt VMWARE-HEARTBEAT-MIB.mib geist_bb_mib.mib IP-FORWARD-MIB.txt notifications.txt SNMPv2-MIB.mib VMWARE-NSX-MANAGER-AGENTCAP-MIB.mib geist_mib.txt IP-MIB.mib P-BRIDGE-MIB.mib SNMPv2-MIB.txt VMWARE-NSX-MANAGER-MIB.mib HCNUM-TC.txt IP-MIB.txt Q-BRIDGE-MIB.mib
然后就可以试试看了。
snmpwalk -m ALL -c public -v 2c sydesx1 hrStorage HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 234845392 KBytes HOST-RESOURCES-MIB::hrStorageIndex.1 = INTEGER: 1 HOST-RESOURCES-MIB::hrStorageIndex.2 = INTEGER: 2 HOST-RESOURCES-MIB::hrStorageIndex.3 = INTEGER: 3 HOST-RESOURCES-MIB::hrStorageIndex.4 = INTEGER: 4 HOST-RESOURCES-MIB::hrStorageIndex.5 = INTEGER: 5 HOST-RESOURCES-MIB::hrStorageIndex.6 = INTEGER: 6 HOST-RESOURCES-MIB::hrStorageIndex.7 = INTEGER: 7 HOST-RESOURCES-MIB::hrStorageIndex.8 = INTEGER: 8 HOST-RESOURCES-MIB::hrStorageIndex.9 = INTEGER: 9 HOST-RESOURCES-MIB::hrStorageIndex.10 = INTEGER: 10 HOST-RESOURCES-MIB::hrStorageIndex.11 = INTEGER: 11 HOST-RESOURCES-MIB::hrStorageType.1 = OID: HOST-RESOURCES-TYPES::hrStorageRamDisk HOST-RESOURCES-MIB::hrStorageType.2 = OID: HOST-RESOURCES-TYPES::hrStorageRamDisk HOST-RESOURCES-MIB::hrStorageType.3 = OID: HOST-RESOURCES-TYPES::hrStorageRamDisk HOST-RESOURCES-MIB::hrStorageType.4 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.5 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.6 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.7 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.8 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.9 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.10 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.11 = OID: HOST-RESOURCES-TYPES::hrStorageRam HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: /vmfs/volumes/5d0548ee-62126bd1-5537-30262a317523 HOST-RESOURCES-MIB::hrStorageDescr.2 = STRING: /vmfs/volumes/becccae6-27d8d5c6-e47a-6ef1babf5cc6 HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: /vmfs/volumes/595c571e-a107b89c-252c-ac162d6e2444 HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: /vmfs/volumes/5a13b818-ebf86368-5680-ac162d6e2444 HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: /vmfs/volumes/5a13b834-323b0b4e-290f-ac162d6e2444 HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: /vmfs/volumes/5a13b867-e07e81d4-2acd-ac162d6e2444 HOST-RESOURCES-MIB::hrStorageDescr.7 = STRING: /vmfs/volumes/5a13b880-8baabbf8-d6ff-ac162d6e2444 HOST-RESOURCES-MIB::hrStorageDescr.8 = STRING: /vmfs/volumes/5a13cff4-1e80a610-63b2-ac162d6e2444 HOST-RESOURCES-MIB::hrStorageDescr.9 = STRING: /vmfs/volumes/5a1e48c8-6b5eefc4-f04e-ac162d6e1c38 HOST-RESOURCES-MIB::hrStorageDescr.10 = STRING: /vmfs/volumes/5a28dcf3-45c2e884-a6cb-ac162d6e2444 HOST-RESOURCES-MIB::hrStorageDescr.11 = STRING: Real Memory HOST-RESOURCES-MIB::hrStorageAllocationUnits.1 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.2 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.3 = INTEGER: 8192 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.4 = INTEGER: 1048576 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.5 = INTEGER: 1048576 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.6 = INTEGER: 1048576 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.7 = INTEGER: 1048576 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.8 = INTEGER: 1048576 Bytes ...
SNMP成功了 后面的就可以用现成的check_snmp来写Nagios命令了。这里不赘述了
第三种方式,我看看有没有现成的脚本可以直接用的,这样不用我自己折腾了。
可以参考这个博文,网上有人用perl写了个脚本,我们之间下载之后 直接调用就行了。当然请确保相关的模块都已安装了
http://www.bujarra.com/nagios-monitorizando-hosts-esxi/?lang=en
这个也很容易,常见的cpu,内存,存储,网络的监控都包括了
[root@sydnagios check_vmware_api-master]# ./check_vmware_api.pl -H sydesx1 -f check_vmware_api.auth -l mem -s usage -w 80 -c 90 CHECK_VMWARE_API.PL OK - mem usage=60.00 % | mem_usage=60.00%;80;90 [root@sydnagios check_vmware_api-master]# ./check_vmware_api.pl -H sydesx1 -f check_vmware_api.auth -l cpu -s usage -w 80 -c 90 CHECK_VMWARE_API.PL OK - cpu usage=10.56 % | cpu_usage=10.56%;80;90

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
实现一个迷你版的RPC
前言 在实际后台服务开发中,比如订单服务(开发者A负责)需要调用商品服务(开发者B负责),那么开发者B会和A约定调用API,以接口的形式提供给A。通常都是B把API上传到Maven私服,然后B开始写API的实现,A只需要引入API依赖进行开发即可。 动手实现RPC 商品服务工程 注意,我将商品服务的API以及实现分为Maven的2个模块来开发。这里,我们想给定一个商品ID,查询得到商品对象信息。 商品对象 要注意的是,Product是可以被序列化的,Why? 很显然,订单系统调用商品系统的时候,需要商品系统返回一个商品,必然涉及到发生网络传输,这就涉及对象的序列化和反序列化了。 商品查询API接口 订单系统调用商品服务 在订单系统工程中需要引入商品服务API依赖。 在上图代码中,最重要的就是rpc方法了! rpc实现方法 第一,我们看到了Proxy.newProxyInstance,很显然在进行动态代理。也即是说,在订单服务调用商品服务的代码中,我们先是通过动态代理返回一个代理的IProductService类型对象,这意味着当代理对象调用queryById方法的时候,会自动调用inv...
- 下一篇
智能运维就是由 AI 代替运维人员?
听了有关AI运维之后有很多人感到比较焦虑,我所从事的运维或开发将来会不会被AI给替代掉呢? 现在新技术发展的特别快,各种语言、技术、理念让大家确实感到自顾不暇跟不上趟,但是有一点,在这里我要特别重申一下,AI在目前这个阶段还是一种辅助大家来进行判断和学习、定位处理问题的工具,就像无人驾驶,现在可以做到完全没有人驾驶吗?肯定不行,未来无人驾驶是完全可以替代人的,但它还有很长一段路要走。AI运维就像无人驾驶一样,未来前景很光明,但任重道远。 大部分的智能运维还没有完全落地,我所在的企业也是处在一个探索的阶段。在一个传统的企业它的运维该如何走?从以前的脚本到工具、自动化,再到现在的智能运维,中间这个步骤该怎么走?今天就从下面五个方面给大家分享下: 一、构建一个全面科学的IT运维管理体系 第一个IT部门的整体认可不足。虽然说IT在任何单位现在都是一个比较重要的部门,但是还有很多领导仍然认为它是一个成本中心,不是一个利润中心,认为这个部门是花钱的,而不是像业务部门创造业务价值和创造利润的。 第二个对于运维工作人员负荷比较大,工作模式不被员工认可。在没有自动化运维和平台之前,整个运维团队只有八个人...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群