esxi nagios速度问题

我试图添加我的esxi服务器(我有3个)到我的nagios监控。 我使用的Perl SDK和脚本logging在互联网上的各个地方,最新的脚本在这里: http : //git.op5.org/git/?p=nagios/op5plugins.git;a=blob_plain;f = check_esx3.pl; HB = HEAD

我已经更新了我的两个esxi4盒4.1u1(4.1.0,348481)

我遇到的问题是检查速度很慢。

我使用DProf跟踪了perl命令

/usr/bin/perl -d:DProf /usr/lib/nagios/plugins/check_esxi -H HOSTNAME -u nagios -p PASSWORD -l cpu -s usage -w 85 -c 95 

并得到以下输出(通过dproff)

  Total Elapsed Time = 6.634312 Seconds User+System Time = 5.154312 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 44.1 2.276 4.339 2 1.1380 2.1695 Vim::login 12.9 0.667 1.638 4254 0.0002 0.0004 Class::MethodMaker::Engine::create_methods 8.91 0.459 0.588 4254 0.0001 0.0001 Class::MethodMaker::scalar::scal0000 5.18 0.267 0.304 4254 0.0001 0.0001 Class::MethodMaker::Engine::install_methods 3.20 0.165 0.165 26005 0.0000 0.0000 XML::LibXML::Node::nodeName 2.50 0.129 0.129 4254 0.0000 0.0000 Class::MethodMaker::Engine::check_opts 2.41 0.124 0.594 925 0.0001 0.0006 ComplexType::deserialize 1.92 0.099 0.091 1561 0.0001 0.0001 Class::MethodMaker::Engine::_find_target_class 1.40 0.072 0.072 3326 0.0000 0.0000 XML::LibXML::Node::textContent 1.36 0.070 0.336 5816 0.0000 0.0001 XML::LibXML::Element::getChildrenByTagName 1.14 0.059 0.068 4254 0.0000 0.0000 Class::MethodMaker::OptExt::encode 1.07 0.055 0.055 5816 0.0000 0.0000 XML::LibXML::Node::_childNodes 1.05 0.054 1.820 1561 0.0000 0.0012 Class::MethodMaker::Engine::import 0.97 0.050 0.050 1 0.0500 0.0500 utf8::AUTOLOAD 0.97 0.050 0.205 25 0.0020 0.0082 main::BEGIN 

当我运行4.1时,我启用了SSH并连接到控制台。 这是我在/ var / log / messages中看到的(这是esxi4,所以没有vkernel日志)

  [2011-09-05 22:53:36.543 51E40B90 verbose 'Proxysvc Req06598'] New proxy client SSL(TCP(local=192.168.99.101:57617, peer=192.168.99.22:443)) [2011-09-05 22:53:43.091 52081B90 verbose 'Proxysvc Req06599'] New proxy client SSL(TCP(local=192.168.99.101:57652, peer=192.168.99.22:443)) [2011-09-05 22:53:43.136 51E81B90 info 'Vimsvc'] [Auth]: User nagios [2011-09-05 22:53:43.137 51E81B90 info 'ha-eventmgr'] Event 4814 : User nagios@192.168.99.101 logged in [2011-09-05 22:53:44.429 52081B90 verbose 'App'] CloseSession called for session id=5260ca10-fdc9-3a26-4d0c-45be7792c716 [2011-09-05 22:53:44.430 52081B90 info 'ha-eventmgr'] Event 4815 : User nagios logged out 

注意两次login,分开大约7秒 – 第二次快速完成检查。

另外,我还在日志中看到了其中的两个,但我认为这是不相关的

  [2011-09-05 22:53:40.031 51AD1B90 verbose 'Statssvc'] HostCtl exception Unable to complete Sysinfo operation. Please see the VMkernel log file for more details. 

我也注意到,通过vspherelogin到服务器是相当缓慢的,也就是在开始加载前大约3-4秒。 这可能是无关的。 esxi服务器没有承受巨大的负载,虽然它已经安装了iscsi lun,可能有6-7个活动的虚拟机。 我已经检查(并增加了)主机的资源分配,并在运行check命令的同时检查了esxtop(没有发现)。

这个延迟是一个问题,因为nagios的perl进程在尝试连接的时候运行在100%的cpu上,并且发生在我所有的3个esxi服务器上。 因此,随着nagios发出越来越多的检查,监控服务器CPU和负载平均值将全部进入屋顶,因为所有进程都在等待响应。 这只会加剧延迟问题,导致所有的检查超时。

一个朋友,也运行nagios,相同的监视脚本和相同的ESXI更新可以运行相同的检查,并在不到一秒钟完成,而对我来说,它需要长达10秒(如你可以看到在dproff输出)

请让我知道,如果有任何额外的信息,我可以提供帮助诊断这个问题主机重新启动(与4.1更新)昨晚

提前致谢,

加雷思

–edit1:将总时间添加到proff输出并使perl检查命令成为块引用

–edit2:

自发布以来,我一直在积极诊断。 我发现,我的朋友nagios服务器是一个x64机器,所以我站了一个新的ubuntu 10.4 x64虚拟机(在不同的主机介意你)安装所需的esxi检查所需的东西(大量的cpan模块是必需的)可以对新安装的时间进行检查,并在2秒左右完成CPU检查。

这表明问题在于nagios服务器或perl,而不是在VMWare esxi服务器上,

我已经确定了

  1. vmware工具已安装
  2. 我必须在testing服务器上安装的所有cpan模块在生产服务器上都是最新的
  3. 生产服务器是aptitude update && aptitude upgrade'd
  4. 反向DNS(按照以下)正在工作
  5. 前向DN(按照以下)正在工作
  6. 直接IPtesting,没有hostame
  7. 停止了Nagios服务器,所以洛杉矶下降到0.01之前做我的testing
  8. 将vmware nic驱动程序从灵活(主机是esxi3.5)更改为增强型vmxnet
  9. 将虚拟CPU数量从1增加到2

我不能将nagios迁移到新的x64机器上,它不会在我们的pipe理虚拟机服务器上运行(它包含这个监视器加上几个jumphosts)

这个32位的盒子(我原来是在上面开始的,上面已经介绍过了)仍然需要花费8-10秒100%的CPU才能完成一次CPU检查

我意识到磁盘是安装在此服务器的iSCSI LUN上的虚拟磁盘,并且会使磁盘IO有所减慢,但我不希望查询远程服务器是高磁盘IO操作。

你的DNS怎么样? 在VMWare服务器的主机文件中是否存在监控服务器的反向DNS条目? 反向DNS是否可以通过您的网站的DNS服务器parsing? 这可能是延误的原因。 如果您无法更改DNS服务器,请尝试在受影响的VMWare服务器上为您的Nagios服务器添加一个/etc/hosts条目,并查看它是否改善了login/执行时间。