当前位置: 美高梅棋牌 > 美高梅棋牌 > 正文

nagios监控安装esxi的服务器(宿主机)

时间:2019-09-10 17:52来源:美高梅棋牌
CenOS5.6下安装nagios3.2监控服务器群的运行状况   Nagios功能列表 所需软件包及环境 基本的监控:  NAGIOS gcc、gcc-devel、appache、php、gd、gd-devel  NAGIOS-PLUGINS mysql-devel(防止安装之后无法生

CenOS5.6下安装nagios3.2监控服务器群的运行状况

 

Nagios功能列表 所需软件包及环境
基本的监控:
 NAGIOS gcc、gcc-devel、appache、php、gd、gd-devel
 NAGIOS-PLUGINS mysql-devel(防止安装之后无法生存check_mysql的监控文件)
 NRPE openssl-devel  (Linux系统安装。监控端和被监控端)
 NSCLIENT 无(windows系统安装,只安装在被监控端)
邮件告警功能 
 安装centos时候定制软件选择DNS服务和邮件服务.
绘图功能 
 Pnp cairo、 pango、 libart_lgpl、 libart_lgpl-devel、 zlib、 zlib-devel 、freetype 、freetype-devel  
 rrdtool
飞信告警功能 
 Fetion libACE
MSN告警功能
 暂无测试

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

一:安装nagios

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

1:安装支持包
#yum -y install gcc gcc-c++ gd gd-devel php httpd openssl-devel mysql-devel
具体依赖的对应服务见上结构

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

2:添加用户和组
#useradd nagios
#passwd nagios  
#groupadd nagcmd
#usermod -G nagcmd nagios
#usermod -G nagcmd apache 
记得把apache加入到该用户组
chkconfig httpd on

 

3:正式安装nagios
tar –xzf nagios-3.2.0.tar.gz
cd nagios-3.2.0
./configure --with-command-group=nagcmd --prefix=/usr/local/nagios
make all
make install
make install-init
make install-config
make install-commandmode

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

4:配置apache的httpd.conf,允许文件目录被访问
默认安装位置在/etc/httpd/conf/httpd.conf
如何不知道也可以使用如下命令查找
find / name httpd.conf|grep httpd.conf
然后添加以下代码

 

[plain] 

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

ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" 
<Directory "/usr/local/nagios/sbin"> 
Options ExecCGI 
AllowOverride None 
Order allow,deny 
Allow from all 
AuthName "Nagios Access" 
AuthType Basic 
AuthUserFile /usr/local/nagios/etc/htpasswd.users 
Require valid-user 
</Directory> 
Alias /nagios "/usr/local/nagios/share" 
<Directory "/usr/local/nagios/share"> 
Options None 
AllowOverride None 
Order allow,deny 
Allow from all 
AuthName "Nagios Access" 
AuthType Basic 
AuthUserFile /usr/local/nagios/etc/htpasswd.users 
Require valid-user 
</Directory> 

这里有两种方案:

5:创建apache目录验证文件  
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password: (输入密码) 
Re-type new password: (再输入一次密码) 
Adding password for user nagiosadmin 
service httpd restart  

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

6:安装nagios插件
tar –xzf nagios-plugins-1.4.13.tar.gz
cd nagios-plugins-1.4.13
./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios
make
make install

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

7:将nagios加入到开机启动项
chkconfig nagios on

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

8:检查配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
//这个检测非常有用,可以很快的判断我们的错误在哪里。

先看看官网介绍:

9:配置nagios
首先/usr/local/nagios/etc/nagios.cfg,取消前面的”#”即可.如下:

[plain] 

其中:

# You can specify individual object config files as shown below: 
cfg_file=/usr/local/nagios/etc/objects/commands.cfg 
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg 
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg 
cfg_file=/usr/local/nagios/etc/objects/templates.cfg 
# Definitions for monitoring the local (Linux) host 
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg 
# Definitions for monitoring a Windows machine 
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg 
# Definitions for monitoring a router/switch 
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg 
# Definitions for monitoring a network printer 
#cfg_file=/usr/local/nagios/etc/objects/printer.cfg 
 
# You can also tell Nagios to process all config files (with a .cfg 
# extension) in a particular directory by using the cfg_dir 
# directive as shown below: 
# cfg_dir=/usr/local/nagios/etc/servers 

Requirements

上面有些配置文件没有,需要自己手动创建
Commands.cfg主要是监控命令的配置文件。Contacts.cfg主要是联系人的配置文件
Timeperiods.cfg主要是时间配置,监控的时间段设置。Hots.cfg是主机配置.
Localhost.cfg监控服务器的配置文件.
Windows.cfg监控微软系统的配置文件.
chown -R nagios.nagios /usr/local/nagios

  • 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

10.修改commands.cfg配置文件
新增以下内容:

 

[plain] 

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

# 'check_nrpe' command definition 
define command{ 
command_name check_nrpe 
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ 

1.python必须安装

11.修改localhost.cfg

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

[plain] 

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

define host { 
host_name nagios-server 
alias nagios server 
address 192.168.152.156 
contact_groups sagroup 
check_command check-host-alive 
max_check_attempts 5 
notification_interval 10 
notification_period 24x7 
notification_options d,u,r 

define hostgroup { 
hostgroup_name sa-servers 
alias sa servers 
members nagios-server 

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

#加入如下服务(也可以删除当前文件夹下的其他所有service,我删除了否则验证的时候会报错,只预留以下几个)

 1.安装check_essi_hardware.py

[plain] 

  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 755 check_esxi_hardware.py
    

define service { 
 host_name nagios-server 
 service_description check-host-alive 
 check_period 24x7 
 max_check_attempts 4 
 normal_check_interval 3 
 retry_check_interval 2 
 contact_groups sagroup 
 notification_interval 10 
 notification_period 24x7 
 notification_options w,u,c,r 
 check_command check-host-alive 

define service { 
 host_name nagios-server 
 service_description check_tcp 80 
 check_period 24x7 
 max_check_attempts 4 
 normal_check_interval 3 
 retry_check_interval 2 
 contact_groups sagroup 
 notification_interval 10 
 notification_period 24x7 
 notification_options w,u,c,r 
 check_command check_tcp!80 

define service{ 
 host_name nagios-server 
 service_description check-disk 
 check_command check_nrpe!check_df 
 max_check_attempts 4 
 normal_check_interval 3 
 retry_check_interval 2 
 check_period 24x7 
 notification_interval 10 
 notification_period 24x7 
 notification_options w,u,c,r 
 contact_groups sagroup 

define service{ 
 host_name nagios-server 
 service_description check-load 
 check_command check_nrpe!check_load 
 max_check_attempts 4 
 normal_check_interval 3 
 retry_check_interval 2 
 check_period 24x7 
 notification_interval 10 
 notification_period 24x7 
 notification_options w,u,c,r 
 contact_groups sagroup 

define service{ 
 host_name nagios-server 
 service_description total_procs 
 check_command check_nrpe!check_total_procs 
 max_check_attempts 4 
 normal_check_interval 3 
 retry_check_interval 2 
 check_period 24x7 
 notification_interval 10 
 notification_period 24x7 
 notification_options w,u,c,r 
 contact_groups sagroup 

安装完成后,我们来查看下这个插件都有什么参数:

#也可以将服务和以上的host配置分别独立为两个文件,方便管理,这样也需要在nagios.cfg中重新指定和修改localhost.cfg

  1. [root@nagios libexec]# ./check_esxi_hardware.py
    Traceback (most recent call last):
    File "./check_esxi_hardware.py", line 222, 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 222, in <module>
    import pywbem
    ImportError: No module named pywbem 
    

12.配置文件contacts.cfg

哦,原来pywbem模块没有安装,那就赶紧装下吧。

[plain] 

2.安装python的第三方模块

#定义联系人 
define contact { 
contact_name sid 
alias system administrator 
service_notification_period 24x7 
host_notification_period 24x7 
service_notification_options w,u,c,r 
host_notification_options d,u,r 
service_notification_commands notify-service-by-email 
host_notification_commands notify-host-by-email 
email [email protected] 
pager 1581127**** 

#定义联系人组 
define contactgroup { 
contactgroup_name sagroup 
alias system administrator group 
members sid 

  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.0.tar.gz
    cd pywbem-0.7.0
    python setup.py build
    python setup.py install --record files.txt 
    

二.部署nrpe安装nrpe(用于监控Linux系统)
1.安装nrpe
tar –xzvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure --prefix=/usr/local/nrpe
make
make install
注:如果在其他被监控机安装nrpe,需要添加系统用户nagios.

或者可以直接使用yum:(推荐使用)

2.复制文件
安装完nrpe后,在安装目录/usr/local/nrpe/libexec只有一个文件check_nrpe,而在nagios插件目录,却缺少这个文件,因此需要把这个文件复制到nagios插件目录;同样,因为nrpe需要调用的诸如check_disk等插件在自己的目录没有,可是这些文件确是nagios插件所存在的,所以也需要从nagios目录复制一份过来。我们把复制过程列举出来:
cp /usr/local/nrpe/libexec/check_nrpe /usr/local/nagios/libexec
cp /usr/local/nagios/libexec/check_disk /usr/local/nrpe/libexec
cp /usr/local/nagios/libexec/check_load /usr/local/nrpe/libexec
cp /usr/local/nagios/libexec/check_ping /usr/local/nrpe/libexec
cp /usr/local/nagios/libexec/check_procs /usr/local/nrpe/libexec

  1. yum install pywbem -y

3.配置nrpe
安装完nrpe以后,在安装目录并没有可用的配置文件,但我们只需把解压目录的样例文件复制到安装目录,然后修改这个文件.
mkdir /usr/local/nrpe/etc
vi nrpe.cfg
修改后如下:

再试一下,还是报错:

[plain] 

  1. [root@cscc libexec]# ./check_esxi_hardware.py
    Traceback (most recent call last):
    File "./check_esxi_hardware.py", line 251, in <module>
    import pkg_resources
    ImportError: No module named pkg_resources
    [root@cscc libexec]#
      
    

pid_file=/var/run/nrpe.pid 
server_port=5666 
server_address=192.168.152.156 
nrpe_user=nagios 
nrpe_group=nagios 
allowed_hosts=127.0.0.1,192.168.152.156 
dont_blame_nrpe=0 
debug=0 
command_timeout=60 
connection_timeout=300 
#The following examples use hardcoded command arguments... 
command[check_users]=/usr/local/nrpe/libexec/check_users -w 5 -c 10 
command[check_load]=/usr/local/nrpe/libexec/check_load -w 15,10,5 -c 30,25,20 
#command[check_hda1]=/usr/local/nrpe/libexec/check_disk -w 20 -c 10 -p /dev/hda1 
command[check_df]=/usr/local/nrpe/libexec/check_disk -w 20 -c 10 
command[check_zombie_procs]=/usr/local/nrpe/libexec/check_procs -w 5 -c 10 -s Z 
command[check_total_procs]=/usr/local/nrpe/libexec/check_procs -w 150 -c 200 
command[check_ips]=/usr/local/nrpe/libexec/ip_conn.sh 8000 10000 

解决:

vi /usr/local/nrpe/libexec/ip_conn.sh

  1. [root@cscc libexec]# yum install python-setuptools -y

[plain] 

出现缺少模块的错误,国内很多文章都是源码安装插件模块,也可以,但是问题比较多;建议直接使用yum,这样简单并且不会出现依赖的问题。

#!/bin/sh 
#if [ $# -ne 2 ] 
#then 
# echo "Usage:$0 -w num1 -c num2" 
#exit 3 
#fi 
ip_conns=`netstat -an | grep tcp | grep EST | wc -l` 
 if [ $ip_conns -lt $1 ] 
 then 
 echo "OK -connect counts is $ip_conns" 
 exit 0 
 fi 
 if [ $ip_conns -gt $1 -a $ip_conns -lt $2 ] 
 then 
 echo "Warning -connect counts is $ip_conns" 
 exit 1 
 fi 
 if [ $ip_conns -gt $2 ] 
 then 
 echo "Critical -connect counts is $ip_conns" 
 exit 2 
 fi 

 

 chmod +x ip_conn.sh

我自己是centos 6.x的系统,直接使用yum安装时没有问题,centos 7.x没有测试,请自行测试。

4.启动nrpe服务并检验其配置
如果有防火墙需要开启防火墙
iptables -I eth0 -p tcp -m tcp -dport 5666 -j ACCEPT
然后保存:
/etc/rc.d/init.d/iptables save
重启防火墙:
/etc/init.d/iptables restart

 

5.以独立守护进程启动nrpe服务 
/usr/local/nrpe/bin/nrpe -c /usr/local/nrpe/etc/nrpe.cfg -d
6.察看端口,也能看见5666端口处于监听状态
tail /var/log/messages
7.察看端口,也能看见5666端口处于监听状态
netstat -an
8.ps aux | grep nrpe | grep -v grep
9.检查插件功能
(1)检查nrpe服务 
/usr/local/nrpe/libexec/check_nrpe -H 192.168.152.156
(2)通过nrpe检查主机资源
/usr/local/nrpe/libexec/check_nrpe -H 192.168.152.156 -c check_df
/usr/local/nrpe/libexec/check_nrpe -H 192.168.152.156 -c check_ips

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

#用nrpe可以更清晰的监控服务器的运行状态,
#配置客户端也非常简单,不需要在客户端安装nagios和其他服务,只需要安装第二部安装nrpe,其中唯一需要修改的是配置文件的server_address,需要修改成客户端的ip地址

 

三:启动nagios服务
1、检查配置
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
2、启动nagios
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

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

重启后执行:分别保证下属操作正确执行
service httpd start
/usr/local/nrpe/bin/nrpe -c /usr/local/nrpe/etc/nrpe.cfg -d
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

 

启动之后在浏览器输入:
再键入你的nagiosadmin和刚刚设置的密码,就可以进入nagios的管理界面了
==========================遇到的才错误1=====================================
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

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

查询日志:
[Thu Sep 17 22:50:02 2009] [error] [client 10.0.0.73] Premature end of script headers: status.cgi, referer:

3.正常使用插件

试试apache的SuExec:(此命令用来关闭防火墙)
[[email protected] sbin]# setenforce 0
==========================遇到的才错误1=====================================

  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
    

编辑:美高梅棋牌 本文来源:nagios监控安装esxi的服务器(宿主机)

关键词: