«

»

17 2011

Print this 文章

通过Nagios监控VMware ESX/ESXi/vSphere服务器

桦凌信息技术服务工作室翻译,转载请注明出处:http://www.wardking.com/2011/05/monitoring-vmware-esx-3-x-esxi-vsphere-4-and-vcenter-server

本文主要阐述如何使用Nagios的扩展插件check_esx来监控VMware ESX和vSphere服务器。既可以实现监控单台ESX(i)/vSphere服务器,也可以监控VirtualCenter/vCenter服务器集群。当企业中已经部署虚拟数据中心(vCenter)时,应该监控vCenter而不是单台VM服务器。

本文目标:

  1. 监控 VMware ESX Datacenter/vCenter 虚拟数据中心
  2. 监控 VMware ESX/vSphere 服务器
  3. 直接监控运行于VMware 架构上的虚拟服务器
  4. 通过虚拟数据中心监控虚拟服务器
  5. 通过虚拟数据中心监控ESX/vSphere服务器

实施需求:

首先在ESX/vSphere主机系统中添加一个新的用户,加入”user”组,赋予”Read Only”权限。具体设置可以参考vSphere手册。

必须在Nagios服务器上安装VMware vSphere SDK for Perl工具包,如果你已经在VMware网站注册,可以直接从这里下载:http://communities.vmware.com/community/developer/forums/vsphere_sdk_perl。请根据你的操作系统下载对应的32bit/64bit版本。

监控命令:
从这里下载check_esx3,存放至nagios安装目录下的libexec目录中,建议更名为check_esx3,并添加可执行权限。

编辑Nagios配置文件command.cfg,添加监控命令:

# VMware ESX Infrastructure
define command{
command_name check_esx3_host_cpu_usage
command_line $USER1$/check_esx3 -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l cpu -s usage -w $ARG3$ -c $ARG4$
}

define command{
command_name check_esx3_host_mem_usage
command_line $USER1$/check_esx3 -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l mem -s usage -w $ARG3$ -c $ARG4$
}

define command{
command_name check_esx3_host_swap_usage
command_line $USER1$/check_esx3 -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l mem -s swap -w $ARG3$ -c $ARG4$
}

define command{
command_name check_esx3_host_net_usage
command_line $USER1$/check_esx3 -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l net -s usage -w $ARG3$ -c $ARG4$
}

define command{
command_name check_esx3_host_vmfs
command_line $USER1$/check_esx3 -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l vmfs -s $ARG3$ -w $ARG4$ -c $ARG5$
}

define command{
command_name check_esx3_host_runtime_status
command_line $USER1$/check_esx3 -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l runtime -s status
}

define command{
command_name check_esx3_host_runtime_issues
command_line $USER1$/check_esx3 -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l runtime -s issues
}

define command{
command_name check_esx3_dc_host_cpu_usage
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H $HOSTALIAS$ -l cpu -s usage -w $ARG4$ -c $ARG5$
}

define command{
command_name check_esx3_dc_host_mem_usage
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H $HOSTALIAS$ -l mem -s usage -w $ARG4$ -c $ARG5$
}

更多命令设置参考./check_esx3 –help

设置监控主机和服务

建议设置自定义配置文件esx.cfg,以下为部分设置:

define host{
        use             linux-server
        host_name       vSphere3
        alias           vSphere Host3(SSB412)
        address         10.2.1.153
        hostgroups      ESX
        icon_image      vmware.png
        icon_image_alt  VMware vSphere (SSB412)
        vrml_image      vmware.jpg
        statusmap_image vmware.gd2
        2d_coords       800,900
        parents         RackSW_PDC_1
        }

define service{
        use                     generic-service
        host_name               VM-ESXi-01,VM-ESXi-02,vSphere1,vSphere2,vSphere3
        service_description     CPU Usage
        check_command         check_esx3_host_cpu_usage!nagios!password!100!110
        }

define service{
        use                     generic-service
        host_name               VM-ESXi-01,VM-ESXi-02,vSphere1,vSphere2,vSphere3
        service_description     Memory Usage
        check_command         check_esx3_host_mem_usage!nagios!password!100!110
        }

监控效果:

如有问题,欢迎交流。

Permanent link to this article: http://www.wardking.com/2011/05/monitoring-vmware-esx-3-x-esxi-vsphere-4-and-vcenter-server/

4 comments

  1. xiao

    你好,能否共享一份check_esx.pl文件?

  2. Michael ZHANG

    已经上传,请下载

  3. jony

    你好,我想问一下你监控的是ESXi吗?不是ESX吧?还有ESXi被监控端和nagios监控端之间是通过什么进行信息的传送的?

  4. Michael ZHANG

    图片上的vSphere主机就是ESX。必须安装VMware vSphere SDK for Perl才可以实现两个服务器之间的通讯。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>