首先,该博文大部分内容来自网络,少部分是自己监控过程中遇到的问题。如果有侵权,请联系告知!!!

现在互联网公司,有能力的都是自己研发监控系统,要么就是zabbix或者小米的监控,还都二次开发等等,可能使用nagios的不是那么多。哈哈,做个记录,仅供参考!!!

<准备部署使用open-Falcon(小米开源)>

以下内容大部分来自网络:

普通的Dell服务器硬件监控我们可以通过nagios+openmanage来实现,但是vsphere环境中的Esxi主机的硬件监控怎么实现呢?

这里有两种方案:

1.通过nagios插件check_esx来实现,这种方式需要安装vmware vsphere sdk for perl工具包

2.通过nagios插件check_esxi_hardware.py来实现,此插件使用python写的。

感人感觉第二种方式比较简单些,python在linux天生内置,还需要更多理由吗?

先看看官网介绍:

http://www.claudiokuenzler.com/nagios-plugins/check_esxi_hardware.php#.VWV5_JCUfTA

其中:

Requirements
- Python must be installed
- The Python extension pywbem must be installed 
Windows users click here for a step-by-step guide how to install Python and PyWBEM on a Windows server.
- If there is a firewall between your monitoring and ESXi server, open ports 443 and 5989

以上是实现监控的先决条件:

1.python必须安装

2.python的扩展包pywbem必须安装

3.你的Esxi主机的443,5989端口必须对nagios监控端开放

好了,下面就赶紧实施吧!

1.安装check_essi_hardware.py

  1. cd /usr/local/nagios/libexec
    wget http://www.claudiokuenzler.com/nagios-plugins/check_esxi_hardware.py
    这个链接下载可能会失败,网上有,可自行搜索下载。
    chown nagios.nagios check_esxi_hardware.py
    chmod check_esxi_hardware.py
安装完成后,我们来查看下这个插件都有什么参数:
  1. [root@nagios libexec]# ./check_esxi_hardware.py
    Traceback (most recent call last):
    File "./check_esxi_hardware.py", line , in <module>
    import pywbem
    ImportError: No module named pywbem
    [root@nagios libexec]# ./check_esxi_hardware.py -h
    Traceback (most recent call last):
    File "./check_esxi_hardware.py", line , in <module>
    import pywbem
    ImportError: No module named pywbem 
哦,原来pywbem模块没有安装,那就赶紧装下吧。
2.安装python的第三方模块
  1. cd /usr/local/src
    wget http://downloads.sourceforge.net/project/pywbem/pywbem/pywbem-0.7/pywbem-0.7.0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpywbem%2Ffiles%2Fpywbem%2F&ts=1299742557&use_mirror=voxel
    tar -zxvf pywbem-0.7..tar.gz
    cd pywbem-0.7.
    python setup.py build
    python setup.py install --record files.txt 
或者可以直接使用yum:(推荐使用)
  1. yum install pywbem -y
再试一下,还是报错:
  1. [root@cscc libexec]# ./check_esxi_hardware.py
    Traceback (most recent call last):
    File "./check_esxi_hardware.py", line , in <module>
    import pkg_resources
    ImportError: No module named pkg_resources
    [root@cscc libexec]#
     
解决:
  1. [root@cscc libexec]# yum install python-setuptools -y
出现缺少模块的错误,国内很多文章都是源码安装插件模块,也可以,但是问题比较多;建议直接使用yum,这样简单并且不会出现依赖的问题。
 
我自己是centos 6.x的系统,直接使用yum安装时没有问题,centos 7.x没有测试,请自行测试。

使用yum基本上不会涉及下面的问题。

注意:(1).不要使用pywbem-0.8.0版本,这个版本有bug导致我们的插件无法使用

(2).python setup.py install --record files.txt 记录安装目录的目的就是为了方便卸载插件,cat files.txt | xargs rm -rf

3.正常使用插件

  1. [root@nagios libexec]# ./check_esxi_hardware.py
    no parameters specified
    Usage: check_esxi_hardware.py https://hostname user password system [verbose]
    example: check_esxi_hardware.py https://my-shiny-new-vmware-server root fakepassword dell
    or, using new style options:
    usage: check_esxi_hardware.py -H hostname -U username -P password [-V system -v -p -I XX]
    example: check_esxi_hardware.py -H my-shiny-new-vmware-server -U root -P fakepassword -V auto -I uk
    or, verbosely:
    usage: check_esxi_hardware.py --host=hostname --user=username --pass=password [--vendor=system --verbose --perfdata --html=XX]
    Options:
    --version show program's version number and exit
    -h, --help show this help message and exit
    Mandatory parameters:
    -H HOST, --host=HOST
    report on HOST
    -U USER, --user=USER
    user to connect as
    -P PASS, --pass=PASS
    password, if password matches file:<path>, first line
    of given file will be used as password
    Optional parameters:
    -V VENDOR, --vendor=VENDOR
    Vendor code: auto, dell, hp, ibm, intel, or unknown
    (default)
    -v, --verbose print status messages to stdout (default is to be
    quiet)
    -p, --perfdata collect performance data for pnp4nagios (default is
    not to)
    -I XX, --html=XX generate html links for country XX (default is not to)
    -t TIMEOUT, --timeout=TIMEOUT
    timeout in seconds - no effect on Windows (default =
    no timeout)
    -i IGNORE, --ignore=IGNORE
    comma-separated list of elements to ignore
    --no-power don't collect power performance data
    --no-volts don't collect voltage performance data
    --no-current don't collect current performance data
    --no-temp don't collect temperature performance data
    --no-fan don't collect fan performance data
从上面可以看出,此插件需要用户名,密码连接Esxi主机才能使用。当然为保证安全,只需要在Esxi主机上建立只读的用户名和密码即可

其中-U 用户名  -P 密码 -V服务器类型,有dell,hp等,根据实际情况-v打印状态信息-p结合画图工具画图

-I 输出链接到dell或其他官网,方面找解决方案-t超时时间-i忽略某项监控内容

--no-power 不采集电源信息,以下雷同。

4.给Esxi主机设置只读用户

如果使用的是Vcenter,首先需要打开监控esxi主机的ssh;

 

通过VMware vSphere Client连接主机,创建用户(只读),注:密码有复杂度要求!

(1)先登录Esxi主机,在“本地用户和组”标签中,空白处右键“添加”,即可添加用户。

(2)将nagios用户设置成“只读角色”。在“权限”标签中,空白处右键“添加权限”,然后按下图操作

ok,只读用户nagios就添加完毕。

  1. [root@nagios-server- libexec]# ./check_esxi_hardware.py -H 192.168.0.100 -U nagios -P nagios -V dell
    Traceback (most recent call last):
    File "./check_esxi_hardware.py", line , in <module>
    wbemclient = pywbem.WBEMConnection(hosturl, (user,password), no_verification=True)
    TypeError: __init__() got an unexpected keyword argument 'no_verification'
出现这种情况,编辑check_esxi_hardware.py文件
 
 
 删除“no_verification=True”
 
接着测试:
  1. [root@nagios-server- libexec]# ./check_esxi_hardware.py -H 192.168.0.100 -U nagios -P qwe123,./,./ -V dell
    UNKNOWN: Authentication Error
出现“UNKNOWN: Authentication Error”,继续处理
通过ssh登录esxi主机,编辑如下:
  1. ~ # cat /etc/security/access.conf
    # This file is autogenerated and must not be edited.
    +:dcui:ALL
    +:root:ALL
    +:vpxuser:ALL
    +:vslauser:ALL
    -:nagios:ALL
    -:ALL:ALL
将“-:nagios:ALL”去掉,在第二行加上“+:nagios:sfcb”
这种方式适合在不经常添加用户的情况下使用,只改一次即可;但是经常加用户可能会导致access.conf变化,需要设置计划任务添加“+:nagios:sfcb”
  1. [root@nagios libexec]# ./check_esxi_hardware.py -H 10.10.10.1 -U nagios -P nagios -V dell
    OK - Server: Dell Inc. PowerEdge R610 s/n: XXXXXX System BIOS: XXXXXXXXXX
ok,监控正常。

6.下面将将其加入到监控系统中吧。

(1)先在commands.cfg中添加命令。

  1. vim /usr/local/nagios/etc/objects/commands.cfg
    define command {
    command_name check_esxi_hardware
    command_line $USER1$/check_esxi_hardware.py -H $HOSTADDRESS$ -U $ARG1$ -P $ARG2$ -V $ARG3$ -I isolutions -p -t
    }

(2)添加服务

  1. define service{
    ==>根据自己公司配置,定义监控服务项;
    }
 
重启nagios!!!

(3)监控效果图

其中href中的链接就是我们在check_esxi_hardware.py中-I参数生成,方便我们直接查找解决方案。

 

nagios监控安装esxi的服务器(宿主机)的更多相关文章

  1. SecureCRT连接VirtualBox下的ubuntu以及NMP的搭建与通过宿主机访问该NGINX服务器过程

    一直使用wamp作为开发环境,只是工作中时常会遇到在wamp下没问题但是提交到服务器生产环境会出现一些意想不到的情况,由此萌生了在本机搭建LNMP环境的想法,我个人不知道其他人的虚拟机搭建服务器环境是 ...

  2. 设置ESXi宿主机开机自动启动虚拟机

    转载于 https://blog.csdn.net/Form_/article/details/71170813 在百度上面找了一圈都是讲ESXi6.0之前的版本,在VMware vSphere Cl ...

  3. [日常工作]vCenter下虚拟机设置与宿主机时间同步的方法

    1. ESXi 能够实现CPU超售 同事开启多与CPU个数的虚拟机 不通的虚拟机采用了时间分片的处理, 所以有时候虚拟机内的时间可能会比宿主机的时间过的更慢, 越来越久之后虚拟机的时间就会比较离谱了. ...

  4. 云平台 为什么推荐使用小VM 而不是大VM独占宿主机的方式部署游戏服?

    近期公司X游戏项目,提了一个游戏VM资源的需求,是 64GB RAM + 30Core CPU 的VM规格,而一个VM部署10个游戏服.而我们云平台推荐的VM规格为 4 Core CPU + 4GB ...

  5. 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】

    要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...

  6. CentOS6.5(4)----宿主机无法访问虚拟机中的web服务解决方案

    宿主机无法访问虚拟机中的web服务 在Windows7宿主机中的VMware虚拟机中安装了CentOS6.5操作系统,并且基于Nginx搭建了Web服务器,网页刚刚搭建好的时候,通过宿主机的浏览器可以 ...

  7. C&C控制服务的设计和侦测方法综述——DDoS攻击,上传从宿主机偷窃的到的信息,定时给感染机文件加密勒索等。

    这篇文章总结了一些我在安全工作里见到过的千奇百怪的C&C控制服务器的设计方法以及对应的侦测方法,在每个C&C控制服务先介绍黑帽部分即针对不同目的的C&C服务器设计方法,再介绍白 ...

  8. 如何配置 VirtualBox 中的客户机与宿主机之间的网络连接

    如何配置 VirtualBox 中的客户机与宿主机之间的网络连接 作者: Aaron Kili 译者: LCTT rusking | 2017-03-01 13:40   评论: 3 收藏: 3 当你 ...

  9. (为容器分配独立IP方法二)通过虚拟IP实现docker宿主机增加对外IP接口

    虚拟IP.何为虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机,所有项目中数据库链接一项配 ...

随机推荐

  1. Web—13-判断网站请求来自手机还是pc浏览器

    判断网站请求来自手机还是pc浏览器 #判断网站来自mobile还是pc def checkMobile(request): """ demo : @app.route(' ...

  2. Mac 10.8.5 上运行cgi

    搭配置搭了好久,花了近半天时间,有必要把过程记录下. 本文已同步到 icocoa.tk, 欢迎访问 Mountain Lion上Setting设置里已经取消了web share,必须要自己启动apac ...

  3. code#5 P2 棋子

    棋子   时间限制: 1.0 秒 空间限制: 512 MB 相关文件: 题目目录 题目描述 棋盘从左到右被分割成 n(n≤1000) 个格子,从左到右编号为1,2,...,n.棋盘上有 m(m≤n)  ...

  4. 页面缓存优化系列一(expires,cache-control 解读)

    参考文章:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Cache-Control http://caibaojian.com/s ...

  5. 阿里云CentOS7部署MySql8.0

    本文主要介绍了阿里云CentOS7如何安装MySql8.0,并对所踩的坑加以记录; 环境.工具.准备工作 服务器:阿里云CentOS 7.4.1708版本; 客户端:Windows 10; SFTP客 ...

  6. OSI参考模型和TCP/IP模型基本知识

    OSI七层模型 为了解决网络之间的兼容性问题,实现网络设备间的相互通信,ISO于1984年提出的OSI参考模型(开放系统互连参考模型).但是由于种种原因,并没有一种完全忠实于OSI参考模型的协议族流行 ...

  7. 偏前端-vue.js学习之路初级(二)组件化构建

    vue.js   组件化构建 组件系统是 Vue 的另一个重要概念,因为它是一种抽象,允许我们使用小型.自包含和通常可复用的组件构建大型应用.仔细想想,几乎任意类型的应用界面都可以抽象为一个组件树: ...

  8. 浏览器内多个标签页之间的通信之storage

    在一个标签页里面使用 localStorage.setItem(key,value)添加(修改.删除)内容: 在另一个标签页里面监听 storage 事件. 即可得到 localstorge 存储的值 ...

  9. mybatis中SQL语句运用总结

    union 连接查询  连接两个表后会过滤掉重复的值 <resultMap id="BaseResultMap" type="com.sprucetec.pay.e ...

  10. 将Windows 7安装到移动固态硬盘(U盘)

    由于工作的原因,有时需要用两台电脑工作,而搞开发的人大多又是追求计算机性能的人,所以笔记本电脑自然不轻,更何况两台. 两台电脑折磨我半年多,终于下定决心将个系统安装到移动固态硬盘中,背一台无硬盘电脑加 ...