nagios 部署手册

nagios 监控实战

监控服务器(nagios服务器--192.168.1.100)
Linux 5.3 + nagios-3.2.1 + nagios-plugins-1.4.15 +nrpe-2.12

被监控客户端(linux客户端/windows客户端--192.168.1.200)
CentOS5.4 + nagios-plugins-1.4.14 + nrpe-2.12

二、nrpe插件

1、nrpe插件的组成

NRPE总共由两部分组成:
(1)check_nrpe:它是运行在监控主机上
(2)NRPE daemon:它是运行在远程的linux主机上(通常就是被监控机)


2、nrpe的工作原理

当Nagios需要监控某个远程linux主机的服务或者资源情况时
第一步:nagios服务器运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么
第二步:check_nrpe插件会通过SSL连接到远程的被监控的Linux客户端上的NRPE daemon
第三步:被监控的Linux客户端上的NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务
第四步:被监控的Linux客户端上的NRPE daemon的NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给进行nagios做处理
注意:NRPE daemon需要nagios-plugin插件安装在远程被监控linux主机上,否则NRPE daemon不能做任何的监控;别外因为它们间的通信是加密的SSL,所以在编译安装时都要加上选项:/configure --enable-ssl --with-ssl-lib=/lib/,否则会出错
由于nagios在3.0以后需要由php支持,所以需要安装php。

实施过程:

一.   安装Apache    httpd-2.2.11.tar.gz

Tar xvfz httpd-2.2.11.tar.gz

Cdhttpd-2.2.11

./configure--prefix=/usr/local/apache –enable-modules=so

Make

Makeinsall

Echo“PATH=/usr/local/apache/bin:$PATH” >> /etc/profile

Source/etc/profile

Apache–t   验证http.conf配置文件是否正确

Apachestart           测试http://ip

二、安装Php     php-5.2.0.tar.gz

      Cd php-5.2.0

      ./configure

--prefix=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs

Make

Makeinstall

cpphp.ini-dist /usr/local/lib/php.ini

vim/usr/local/apache/conf/httpd.conf

添加以下:

LoadModulephp5_module        modules/libphp5.so

AddTypeapplication/x-httpd-php .php .phtml

AddTypeapplication/x-httpd-php-source .phps

 

 

Cd/usr/local/apache/htdocs

找到下面一行在后面加上index.php3 index.php,这表示网站的默认页也能够为index.php 
DirectoryIndex  DirectoryIndex index.php index.html

 

 

在这目录下添加测试页index.php,内容如下:

<?php

phpinfo();

?>

重启apache。测试 http://192.168.10.73/index.php是否正常。

 

sendEmail的主页http://caspian.dotconf.net/menu/Software/SendEmail/

cp sendEmail /usr/local/bin

/usr/local/bin/sendEmail –f nagios@test.com –t yahoon@test.com –s mail.test.com –u “from nagios” –xu nagios –xp p#3isoda–m happy

/usr/local/bin/sendEmail-f  wangrr@hjhz.com -t preamble_1@163.com-s smtp.qiye.163.com -u "hhh" -xu wangrr@hjhz.com -xp wrr720106  -m happy


三.安装监控中心
1.nagios 安装
tar xvfz nagios-3.2.3.tar.gz
groupadd nagios


cd nagios
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios--with-nagios-group=nagios

make all
make install
make install-init
make install-commandmode
make install-config

makeinstall-webconf
安装nagios。与别的软件安装稍有不同,nagios的安装要好几步才能完成。第一步执行make install安装主要的程序、CGI及HTML文件,第二步执行 make install-commandmode 给外部命令访问nagios配置文件的权限,第三步执行 make install-config 把配置文件的例子复制到nagios的安装目录。按照安装向导的提示,其实这里还有一个 make install-init的步骤,它的作用是把nagios做成一个运行脚本,使nagios随系统开机启动,这是一个很方便的措施。但本人是一个喜欢把问题简化的人,没有执行这样的操作。
5、验证程序是否被正确安装。切换目录到安装路径(这里是/usr/local/nagios),看是否存在 etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正确的安装到系统了。后表是五个目录功能的简要说明:

bin

Nagios执行程序所在目录,这个目录只有一个文件nagios

etc

Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件

sbin

Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录

Share

Nagios网页文件所在的目录

Var

Nagios日志文件、spid 等文件所在的目录



wgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.6.tar.gz
tar -zxf nagios-4.0.6.tar.gz
cd nagios-4.0.6
./configure --prefix=/usr/local/nagios/--with-comman-group=nagios --with-httpd-conf=/etc/httpd/conf/extra/
make all&&make install

 

四、安装nagios-plugins
tar zxf nagios-plugins.tar.gz
cd nagios-plugins
./configure --prefix=/usr/local/nagios

make all
make install
chown –R nagios.nagios /usr/local/nagios
(在redhat系统上面安装可能出现configure时,到这里checkingfor redhat spopen problem...就不动了,

所以需要在configure时再加上这个 --enable-redhat-pthread-workaround )

没有插件,nagios将什么作用也没有,插件也是nagios扩展功能的强大武器,除了下载常用的插件外,我们还可以根据实际要求编写自己的插件。Nagios的插件nagios-plugins-1.4.5在www.nagios.org上可以找到,接着我们用wget下载它。

注意:插件与nagios之间的版本关联不大,不一定非得用nagios-plugins-1.4.5这个版本。下载完成后,安装它是很简单的:先执行配置 ./configure –prefix=/usr/local/nagios ,接着编译安装 make ; make install即可。

这里需要说明一下的是在配置过程指定的安装路径是/usr/local/nagios,而不是/usr/local/nagios-plus,安装完成后,将在目录/usr/local/nagios生成目录libexec(里面有很多文件),这正是nagios所需要的。

 

1,为配置nagios做准备,修改apache运行用户和组,默认是daemon,改成nagios

在httpd.conf文件最后加上以下代码。

Scriptalias /nagios/cgi-bin /usr/local/nagios/sbin

     <Directory"/usr/local/nagios/sbin">

       AuthType Basic

       Options ExecCGI

       AllowOverride None

       Order allow,deny

       Allow from all

       AuthName "NagiosAccess"

       AuthUserFile/usr/local/nagios/etc/htpasswd 

       Require valid-user

     </Directory>

 

    Alias /nagios /usr/local/nagios/share

     <Directory"/usr/local/nagios/share">  

      AuthType Basic

      Options None

      AllowOverride None

      Order allow,deny

      Allow from all

      AuthName "nagiosAccess"

      AuthUserFile/usr/local/nagios/etc/htpasswd 

      Require valid-user

   

重启apache

2,修改cgi脚本控制文件cgi.cfg

vi  /usr/local/nagios/etc/cgi.cfg

use_authentication=1    //打开验证

default_user_name=test

authorized_for_system_information=nagiosadmin,test

authorized_for_configuration_information=nagiosadmin,test

authorized_for_system_commands=nagiosadmin,test

authorized_for_all_services=nagiosadmin,test

authorized_for_all_hosts=nagiosadmin,test

authorized_for_all_service_commands=nagiosadmin,test

authorized_for_all_host_commands=nagiosadmin,test

//这里添加的用户”test”可以通过浏览器对nagios服务的关闭、重启等操作,在这里为了安全也可以把    果有多个用户用逗号隔开,如:nagiosadmin,test

/usr/local/apache2/bin/htpasswd‐c/usr/local/nagios/etc/htpasswd test

new password: 输入你的密码

re‐type new password: 再次确认

adding password for user test     //这里给前面添加的用户设置密码

测试一下,输入你的http://你的服务器IP/nagios之后会弹出以下界面:

在这里输入你刚刚设置的用户名密码,就可以登录你的监控平台了,如下:

由于我们目前是没有监控任何的主机,所以目前还是看不到什么有用的东西的。此时nagios服务并没有启动,我们先检查nagios的配置是否有错用以下命令。/usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg 无误后,启动-v改成-d即可。

默认情况下点左边的HOSTService自身的监控将能够看到,继续后面的操作。

五、配置nagios主配置文件

在这里定义后面的配置文件的保存路径,下面只贴修改部分

vi /usr/local/nagios/etc/nagios.cfg

cfg_file=/usr/local/nagios/etc/objects/commands.cfg

cfg_file=/usr/local/nagios/etc/hosts.cfg    //主机配置文件路径

define host{

       use                    linux-server   使用定义的模板。       

       host_name               192.168.10.10

       alias                   apache

       address                192.168.10.10

       }

define host{

       use                    linux-server      使用定义的模板。    

       host_name              192.168.10.20

       alias                   apache

       address                192.168.10.20

       }

cfg_file=/usr/local/nagios/etc/services.cfg     //服务配置文件路径

define service{

       use                    local-service     使用定义的模板。  

       host_name              192.168.10.10

       service_description     Root Partition

       check_command          check_local_disk!20%!10%!/

       }

define service{

       use                    local-service           

host_name              192.168.10.20

      service_description      PING

      check_command            check_ping!100.0,20%!500.0,60%

       }

#cfg_file=/usr/local/nagios/etc/objects/contacts.cfg   //这一行注释掉,为了方便管理,我们重新写一个联系人的配置文件

cfg_file=/usr/local/nagios/etc/contacts.cfg      //指定联系人配置文件路径

cfg_file=/usr/local/nagios/etc/contactgroups.cfg  //指定联系人组配置文件路径

#cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg   //注释掉,用自己写的监视时段配置文件

cfg_file=/usr/local/nagios/etc/timeperiods.cfg        //指定监视时段配置文件路径

cfg_file=/usr/local/nagios/etc/objects/templates.cfg    //指定临时配置文件路径

#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg  //注释掉,

cfg_file=/usr/local/nagios/etc/hostgroups.cfg       //主机组配置文件路径

 

check_external_commands=1  //在web界面下重启nagios,停止主机/服务检查操作,默认关闭;

command_check_interval=10s  //定义这个命令检查时间间隔,默认是1秒;

4、配置timeperiods.cfg文件

这是个服务器监控时间段的配置文件,一般都是全天24小时,名称是24x7;

vi /usr/local/nagios/etc/timeperiods.cfg

define timeperiod{

        timeperiod_name         24x7

        alias                      24 hours a day,7days aweek

        sunday                   00:00-24:00

        monday                  00:00-24:00

        tuesday                  00:00-24:00

        wednesday               00:00-24:00

        thursday                 00:00-24:00

        friday                    00:00-24:00

        saturday                 00:00-24:00

        }

在这里要注意时间段名称那里的后面不能有空格出现,

5、创建联系人配置文件,contacts.cfg

vi /usr/local/nagios/etc/contacts.cfg

 define contact {

    contact_name         kytest

    alias                systemadministrator

    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                         kyhack@vip.qq.com

   # pager                        13800138000

    }

创建一个名为nagios的联系人,下面列出其中几个重要选项的说明

#服务出了状况通知的时间段,这个时间段是前面timeperiods.cfg里面定义的。

service_notification_period    24x7

#主机出现状况时通知的时间段,这个时间段是前面timeperiods.cfg里面定义的。

        host_notification_period       24x7

#当服务出现w—报警(warning),u—未知(unkown),c—严重(critical),r—从异常恢复到正常,在这四种情况下通知联系人

service_notification_options  w,u,c,r

#当主机出现d­­­­—当机(down),u—返回不可达(unreachable),r—从异常情况恢复正常,在这3种情况下通知联系人

        host_notification_options       d,u,r

#服务出问题通知采用的命令notify-service-by-email,这个命令是在commands.cfg中定义的,作用是给联系人发邮件. nagios2.x的版本上可以不一样,可以自己到commands.cfg里看一下;在这里也可以设置发送短信的方式通知联系人,前提是你要配置有发送知道的脚本,还要到commands.cfg里面添加发送脚本所用到的命令;

        service_notification_commands  notify-service-by-email

#同上,主机出问题时采用的也是发邮件的方式通知联系人

        host_notification_commands     notify-host-by-email

#指定联系的人email地址

        email        kyhack@vip.qq.com

#联系人的手机,前提是要支持短信通知,这里没有启用通过手机短信的方式发送警报 

pager        13800138000

如果有多个联系人的话,可以通过复制来创建多个联系人;

6、创建联系人组配置文件,contactgroups.cfg ,把多个联系人加到一个组里面

vi /usr/local/nagios/etc/contactgroups.cfg

define contactgroup{

       contactgroup_name       sagroup

       alias                   systemadministrator group

       members                 kytest

       }

注意:members选项里面的联系人在contacts.cfgj里面要要定义,多个联系从之间用逗号隔开;

7、创建hosts.cfg主机配置文件

vi /usr/local/nagios/etc/hostgroups.cfg

define host{

host_name              nagios-server       //被监控主机的名称,后面不能带空格

       alias                   nagiosserver      //别名

       address                192.168.0.10      //被监控主机的ip地址,这里是监控本机

       contact_groups         sagroup     //联系人组,是在前面contactgroups.cfgj里面定义的组        check_command        check-host-alive    //检查主机是否存活,命令来自commadns.cfg文件

       max_check_attempts      5               //检查失败后重试次数

       notification_interval   10              //提醒的间隔,每隔10秒提醒一次

       notification_period     24x7    //提醒的周期,24x7这个时间段来自timeperiods.cfg里的定义

       notification_options    d,u,r       //在什么时候提醒,详见contacts.cfg部分的介绍

       }

define host{

       host_name               win2003

       alias                   web server

       address                192.168.0.100        //这是我的windows 2003的服务器,

       contact_groups          sagroup

       check_command          check-host-alive

       max_check_attempts      5

       notification_interval   10

       notification_period     24x7

       notification_options    d,u,r

       }

define host{

       host_name               linux

       alias                   web server

       address                192.168.0.102           //被监控的linux服务器

       contact_groups          sagroup

       check_command          check-host-alive

       max_check_attempts      5

       notification_interval   10

       notification_period     24x7

       notification_options    d,u,r

       }

8、创建hostgroups.cfg文件

vi  /usr/local/nagios/etc/hostgroups.cfg

define hostgroup{

        hostgroup_name  sa-servers

       alias           sa servers

        members         nagios-server,win2003,linux

        }

这个跟联系人组配置差不多,要是有多台主机可以用逗号隔开;members里的主机成员必须也是要在hosts.cfg里面定义的,其实这个文件也可以不要;

ok,到这里就差可以说是完成了最基础的一部份了,现在就是最关键的一部分了,前面已经定义好了联系人,被监控主机,但是还没有定义好要监控主机上的什么东东;现在在这一部分就可以对主机上的各种信息进行监控,nagios监控的信息主要有:本地资源,对外的服务等;本地资源主要包括cpu,硬盘,swap,内存等;对外服务有web,fpt,smtp,pop3等;

#---------------------------------------------------------------------------------------------------------------------------

配置监控服务器(Nagios服务器)

四、安装nrpe
tar -zxvf nrpe-2.12.tar.gz && cd nrpe-2.12
./configure #默认自动添加了openssl因为传送过程要加密,如果后面make报错,加如下参数

--enable-ssl --with-ssl-lib (前提是已经安装了openssl与openssl-devel)
make all && make install-plugin && make install-daemon&& make install-daemon-config

五、配置nrpe
#commands.cfg中定义nrpe这个外部构件
vi /usr/local/nagios/etc/nagios.cfg,打开下面这一行
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
vi /usr/local/nagios/etc/objects/commands.cfg,增加如下一行
#check nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

最后启动nrpc,并测试
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
echo '/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d &>/dev/null' >> /etc/rc.local
netstat -atulnp | grep 'nrpe'
tcp       0      0 0.0.0.0:5666               0.0.0.0:*                  LISTEN      3308/nrpe
/usr/local/nagios/libexec/check_nrpe -H 192.168.0.6   #linux客户端的IP地址:192.168.0.6
NRPE v2.12
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
service nagios restart
http://nagios_ip_address/nagios

#---------------------------------------------------------------------------------------------------------------------------

配置被监控的Linux主机(Linux客户端)

1、安装所需的软件(nagios-plugins、nrpe)

wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

1)安装nagios-plugins
#增加一个用户
groupadd nagios
useradd –g nagios –s /sbin/nologin nagios
#解压并安装
tar zvxf nagios-plugins-1.4.14.tar.gz && cd nagios-plugins-1.4.14
./configure --with-nagios-user=nagios --with-nagios-group=nagios &&make && make install
chown -R nagios:nagios /usr/local/nagios

2)安装nrpe
tar -zxvf nrpe-2.12.tar.gz && cd nrpe-2.12
./configure --prefix=/usr/local/nagios    如make报错,加下面参数。

--enable-ssl --with-ssl-lib (前提是已经安装了openssl与openssl-devel)
make all && make install-plugin && make install-daemon&& make install-daemon-config

3)配置nrpe
#配置nrpe信息
vi /usr/local/nagios/etc/nrpe.cfg,查找并修改如下一行
allowed_hosts=192.168.1.100,127.0.0.1   #注意修改为nagios服务器的IP:192.168.1.100
#配置监控对象
说明:由监控原理可知被监控端做监控,然后将数据传给监控服务器绘总,设置监控详细参数主要是设置被监控端的nrpe.cfg文件,可以看到里面监控对象,

说明:对要监控的对象需在监控服务器的主机,和服务中定义,服务命令要和被监控机上的一致。

如:被监控断设置:     

command[check_df]=/usr/local/nagios/libexec/check_disk -w 10% -c 10%

监控断设置:

define service{

       use                                      local-service                

host_name                192.168.10.70

       service_description          DiskSpace

       check_command           check_nrpe!check_df!5%!10%!/

       }
vi /usr/local/nagios/etc/nrpe.cfg,查找并修改如下一行
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 10% -c 5%
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -sZ
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 500 -c 550
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
command[check_ping]=/usr/local/nagios/libexec/check_ping-H 192.168.1.1 -w 100.0,20% -c 500.0,60%
4)启动nrpe,并测试
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
echo '/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d &>/dev/null' >> /etc/rc.local
netstat -atulnp | grep 'nrpe'
tcp       0      0 0.0.0.0:5666               0.0.0.0:*                  LISTEN      3308/nrpe
/usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12
127.0.0.1,211.144.13.112,211.144.13.6

#---------------------------------------------------------------------------------------------------------------------

配置被监控的Windows主机(Win客户端)

它的工作原理图如下:

   

Nagios使用NSClient++监控远程Windows主机

可以看到它是通过监控服务器上的check_nt这一个插件来检查WINDOWS机器的服务,当监控服务器将监控请求发给NSClient后,通过NSClient客户端检查监控项目,所有的监控都是由NSClient来完成;

下载NSClient++-Win32-0.3.5.msi并安装。
到安装目录打开NSC.ini文件进行修改:
1、 在[modules]模块,将除CheckWMI.dll和RemoteConfiguration.dll外的所有dll文件前的     注释(;)去掉

2、在[Settings]模块可以设置一个连接密码password=PWD,为了简单,在此不设密码。

设置allowed_hosts=127.0.0.1/32,192.168.0.19,可以连接的监控服务器的地址,如果写成192.168.0.0/24 则表示该子网内的所有机器都可以访问;如果这个地方是空白则表示所有的主机都可以连接上来(注意在[NSClient]有allowed_hosts的同样设置,不要设置错了),最后不要忘记去掉前面的注释符(;)。

3、在 [NSClient] 部分找到“port=12489”这一行,并把前面的注释去掉;这是NSCline的默认监听端口。

4、CMD,进到NSClient安装目录:

     D:\ProgramFiles\NSClient++> nsclient++.exe /install

5、CMD,services.msc打开服务管理:

       看到下图时就表明已经安装上了:

 

在NSClinet++上面点右键属性,打开服务,如下图:

服务已经启动了

点登录,在登录登录身份下面勾选允许服务与桌面交互,如下图:

到这里就已经在WINDOWS主机上安装好了,如果你有防火墙的话请打开TCP的12489端口,否则nagios检查此服务的时候会报socket 超时错误。

这样被监控的主机就搞定了,现在回到nagios-server 监控服务器上做下面三个步骤:

1安装监控windows的插件(已经默认安装了check_nt)

2)定义命令

#'check_nt' command definition

define command{

       command_name    check_nt

       command_line    $USER1$/check_nt-H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$

       }

//这一部分在3.20里面默认就已经有了,不用再添加;

3)定义要监控的项目

修改/usr/local/nagios/etc/services.cfg文件,增加windows 被监控主机的监控项目;

详情请参阅前面第三步内容;

关于check_nt的用法可以使用下面命令查看帮助:

#/usr/local/nagios/libexec/check_nt  -h

下面给出一些常用的参数:

1)监控windows服务器运行的时间

check_command           check_nt!UPTIME

2)监控Windows服务器的CPU负载,如果5分钟超过80%则是warning,如果5分钟超过90%则是critical

check_command           check_nt!CPULOAD!-l 5,80,90

3)监控Windows服务器的内存使用情况,如果超过了80%则是warning,如果超过90%则是critical.

check_command           check_nt!MEMUSE!-w 80 -c 90

4)监控Windows服务器C:\盘的使用情况,如果超过80%已经使用则是warning,超过90%则是critical

check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c90

注:-l后面接的参数用来指定盘符

5)监控Windows服务器D:\盘的使用情况,如果超过80%已经使用则是warning,超过90%则是critical

check_command           check_nt!USEDDISKSPACE!-l d -w 80 -c90

6)监控Windows服务器的W3SVC服务的状态,如果服务停止了,则是critical

check_command           check_nt!SERVICESTATE!-d SHOWALL -lW3SVC

7)监控Windows服务器的Explorer.exe进程的状态,如果进程停止了,则是critical

check_command           check_nt!PROCSTATE!-d SHOWALL -lExplorer.exe

 

3、修改access

[root@localhost mail]# pwd

/etc/mail

[root@localhost mail]# vi access

# Check the/usr/share/doc/sendmail/README.cf file for a description

# of the format of this file. (searchfor access_db in that file)

# The /usr/share/doc/sendmail/README.cfis part of the sendmail-doc

# package.

#

# by default we allow relaying fromlocalhost...

Connect:localhost.localdomain RELAY

Connect:localhost RELAY

Connect:127.0.0.1 RELAY

Connect:192.168.0 RELAY

Connect:http://www.163.com RELAY

Connect:1.1.1 RELAY

Connect:nagios@localhost.localdomainRELAY

Connect:root@localhost RELAY

然后执行makemap hash access< access

或者是makemap -v hash/etc/mail/access.db < /etc/mail/access

4、[root@localhostspool]# pwd

/var/spool

chmod 777 mqueue

我的邮箱是163.com

5、检查所传送的电子邮件是否送出,或滞留在邮件服务器中

语法:/usr/lib/sendmail-bp

若屏幕显示为“Mail queue isempty” 的信息,表示mail 已送出。

6、检查邮件发送过程

在Sendmail邮件服务器上执行下面的命令.

# echo testing | /usr/sbin/sendmail -vsomeone@somedomain.com

tar –zxvf sendEmail-v1.55.tar.gz 
cd sendEmail-v1.55
cp sendEmail /usr/local/bin
 
chmod 0755 /usr/local/bin/sendEmail
chown nagios:nagios /usr/local/bin/sendEmail

使用测试

/usr/local/bin/sendEmail  –f  nagios@lhp.com  –t  lihuipeng007@163.com –s mail.lhp.com –u “nagios test” –xu nagios@lhp.com –xp 123456  –m nagios-test

参数解释:

-f 表示发送者的邮箱
-t
表示接收者的邮箱
-s
表示SMTP服务器的域名或者ip
-u
表示邮件的主题
-xu
表示SMTP验证的用户名
-xp
表示SMTP验证的密码(注意,这个密码貌似有限制,例如我用d!5neyland就不能被正确识别)
-m
表示邮件的内容
-cc 表示抄送
-bcc
表示暗抄送

如果想以一个文件的内容为邮件内容可以这样:

cat  filename |  /usr/local/bin/sendEmail –f nagios@lhp.com –t lihuipeng007@163.com –s mail.lhp.com –u “nagios test” –xu nagios@lhp.com –xp 123456

这个跟我们的nagios发件方式类似,下面我们来改nagios的发件方式:

command.cfg配置修改email发送方式

define command{
     command_name notify-by-email
     command_line
 /usr/bin/printf "%b" "***** Nagios 2.9 *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/local/bin/sendEmail -f nagios@lhp.com -t $CONTACTEMAIL$ -s lihuipeng007@163.com  -u "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -xu nagios@lhp.com -xp 123456 
}

 

 

 

 

OSMA

被监控机须安装DELL OMSA

 

2.1 安装前的设置

wget -q -O - http://linux.dell.com/repo/hardware/OMSA_6.5.3/bootstrap.cgi | bash

2.2 安装OMSA

yum install srvadmin-all -y

2.3 安装firmware-tools 用来管理BIOSfirmware版本更新

yum install dell_ft_install
yum install $(bootstrap_firmware)

2.4 更新BIOSfirmware版本

 

比较可用更新版本

update_firmware

安装任何可用更新

update_firmware --yes

更新后,需要重启服务器。

 

测试中R410报错如下(更新固件版本后才可以使用此插件获得数据):

[root@localhost check_openmanage-3.7.5]# ./check_openmanage
Storage Error! No controllers found
Problem running 'omreport chassis memory': Error: Memory object not found
Problem running 'omreport chassis fans': Error! No fan probes found on this system.
Problem running 'omreport chassis temps': Error! No temperature probes found on this system.
Problem running 'omreport chassis volts': Error! No voltage probes found on this system.
Chassis Service Tag is bogus: 'N/A'

OMSA详见:

http://linux.dell.com/repo/hardware/OMSA_6.5.3/

 

3、插件命令使用示例:

3.1 温度

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only temp-d
System:PowerEdge R410 IIOMSA version:6.5.0
ServiceTag:3NGGB3XPlugin version:3.7.5
BIOS/date:1.9.0 10/21/2011Checking mode:SNMPv2c UDP/IPv4
-----------------------------------------------------------------------------
Chassis Components
=============================================================================
STATE|ID|MESSAGE TEXT
---------+------+------------------------------------------------------------
OK |0 | Temperature Probe 0 [System Board Ambient Temp] reads 28 C (min=8/3, max=42/47)

默认温度最大警告阈值42.0 °C 最大故障阈值 47.0 °C 

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only temp
TEMPERATURES OK - 1 temperature probes checked
[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only temp-p
TEMPERATURES OK - 1 temperature probes checked|T0_System_Board_Ambient=28C;42;47

自定义温度阈值

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only temp-w 0=20 -c 0=30
Temperature Probe 0 [System Board Ambient Temp] reads 28 C (custom max=20)

3.2 电压(19个部件)

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only voltage
VOLTAGE OK - 19 voltage probes checked

3.3 CPU

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only cpu
PROCESSORS OK - 2 processors checked
[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only cpu -d
System:PowerEdge R410 IIOMSA version:6.5.0
ServiceTag:3NGGB3XPlugin version:3.7.5
BIOS/date:1.9.0 10/21/2011Checking mode:SNMPv2c UDP/IPv4
-----------------------------------------------------------------------------
Chassis Components
=============================================================================
STATE|ID|MESSAGE TEXT
---------+------+------------------------------------------------------------
OK |0 | Processor 0 [Intel Xeon E5620 2.40GHz] is Present
OK |1 | Processor 1 [Intel Xeon E5620 2.40GHz] is Present

3.4 风扇的转速

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only fans
FANS OK - 8 fan probes checked

关于风扇的debug输出

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only fans -d
System:PowerEdge R410 IIOMSA version: 6.5.0
ServiceTag:3NGGB3XPlugin version:3.7.5
BIOS/date:1.9.0 10/21/2011Checking mode:SNMPv2c UDP/IPv4
-----------------------------------------------------------------------------
Chassis Components
=============================================================================
STATE|ID|MESSAGE TEXT
---------+------+------------------------------------------------------------
OK |0 | Chassis fan 0 [System Board FAN MOD 1A RPM] reading: 6240 RPM
OK |1 | Chassis fan 1 [System Board FAN MOD 1B RPM] reading: 4320 RPM
OK |2 | Chassis fan 2 [System Board FAN MOD 2A RPM] reading: 6240 RPM
OK |3 | Chassis fan 3 [System Board FAN MOD 2B RPM] reading: 4320 RPM
OK |4 | Chassis fan 4 [System Board FAN MOD 3A RPM] reading: 6360 RPM
OK |5 | Chassis fan 5 [System Board FAN MOD 3B RPM] reading: 4440 RPM
OK |6 | Chassis fan 6 [System Board FAN MOD 4A RPM] reading: 7800 RPM
OK |7 | Chassis fan 7 [System Board FAN MOD 4B RPM] reading: 5400 RPM

参数-p 输出性能数据 用户pnp画图

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only fans -p
FANS OK - 8 fan probes checked|F0_System_Board_FAN_MOD_1A=6240rpm;0;0 F1_System_Board_FAN_MOD_1B=4320rpm;0;0 F2_System_Board_FAN_MOD_2A=6240rpm;0;0 F3_System_Board_FAN_MOD_2B=4320rpm;0;0 F4_System_Board_FAN_MOD_3A=6360rpm;0;0 F5_System_Board_FAN_MOD_3B=4440rpm;0;0 F6_System_Board_FAN_MOD_4A=7800rpm;0;0 F7_System_Board_FAN_MOD_4B=5400rpm;0;0

自定义风扇阈值

./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only fans-w 2000 -c 10000 -p
FANS OK - 8 fan probes checked|F0_System_Board_FAN_MOD_1A=6240rpm;0;0 F1_System_Board_FAN_MOD_1B=4320rpm;0;0 F2_System_Board_FAN_MOD_2A=6240rpm;0;0 F3_System_Board_FAN_MOD_2B=4320rpm;0;0 F4_System_Board_FAN_MOD_3A=6360rpm;0;0 F5_System_Board_FAN_MOD_3B=4440rpm;0;0 F6_System_Board_FAN_MOD_4A=7800rpm;0;0 F7_System_Board_FAN_MOD_4B=5400rpm;0;0

3.5 cmos电池

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only batteries
BATTERIES OK - 1 batteries checked
[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only batteries -d
System:PowerEdge R410 IIOMSA version:6.5.0
ServiceTag:3NGGB3XPlugin version:3.7.5
BIOS/date:1.9.0 10/21/2011Checking mode:SNMPv2c UDP/IPv4
-----------------------------------------------------------------------------
Chassis Components
=============================================================================
STATE|ID|MESSAGE TEXT
---------+------+------------------------------------------------------------
OK |0 | Battery probe 0 [System Board CMOS Battery] is Presence Detected

3.6 内存

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only memory
^[[AMEMORY OK - 6 memory modules, 49152 MB total memory
[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only memory -d
System:PowerEdge R410 IIOMSA version:6.5.0
ServiceTag:3NGGB3XPlugin version:3.7.5
BIOS/date:1.9.0 10/21/2011Checking mode:SNMPv2c UDP/IPv4
-----------------------------------------------------------------------------
Chassis Components
=============================================================================
STATE|ID|MESSAGE TEXT
---------+------+------------------------------------------------------------
OK |0 | Memory module 0 [DIMM_A1, 8192 MB] is Ok
OK |1 | Memory module 1 [DIMM_A2, 8192 MB] is Ok
OK |2 | Memory module 2 [DIMM_A3, 8192 MB] is Ok
OK |3 | Memory module 3 [DIMM_B1, 8192 MB] is Ok
OK |4 | Memory module 4 [DIMM_B2, 8192 MB] is Ok
OK |5 | Memory module 5 [DIMM_B3, 8192 MB] is Ok

3.7 电源监控(测试机R410不支持电源功耗监控)

[root@nagios90-248 libexec]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-only amperage
OK - no power monitoring probes found

3.8 监控所有硬件+DELL支持链接

./check_openmanage-H 10.0.188.115 -C vistata-I-b ctrl_fw=ALL\/ctrl_driver=ALL-a -p
OK - System: '<a target="_blank" href="http://support.dell.com/support/edocs/systems/per410/">PowerEdge R410 II</a>', SN: '<a target="_blank" href="http://www.dell.com/support/troubleshooting/Index?t=warranty&servicetag=3NGGB3X">3NGGB3X</a>', 48 GB ram (6 dimms), 1 logical drives, 4 physical drives|T0_System_Board_Ambient=28C;42;47 F0_System_Board_FAN_MOD_1A=6240rpm;0;0 F1_System_Board_FAN_MOD_1B=4320rpm;0;0 F2_System_Board_FAN_MOD_2A=6240rpm;0;0 F3_System_Board_FAN_MOD_2B=4320rpm;0;0 F4_System_Board_FAN_MOD_3A=6360rpm;0;0 F5_System_Board_FAN_MOD_3B=4440rpm;0;0 F6_System_Board_FAN_MOD_4A=7800rpm;0;0 F7_System_Board_FAN_MOD_4B=5400rpm;0;0

参数-o 定义输出信息行数

./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_fw=ALL\/ctrl_driver=ALL-o 4
OK - System: 'PowerEdge R410 II', SN: '3NGGB3X', 48 GB ram (6 dimms), 1 logical drives, 4 physical drives
----- BIOS='1.9.0 10/21/2011', iDRAC6='1.80'
----- Ctrl 0 [PERC H700 Adapter]: Fw='12.10.2-0004', Dr='00.00.04.17-RH1'
----- Encl 0:0:0 [Backplane]: Fw='1.07'
----- OpenManage Server Administrator (OMSA) version: '6.5.0'

3.9 模仿硬盘故障

正常状态

[root@localhost check_openmanage-3.7.5]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_driver=0-a
OK - System: 'PowerEdge R410 II', SN: '3NGGB3X', 48 GB ram (6 dimms), 1 logical drives, 4 physical drives

拔出硬盘模仿故障

[root@localhost check_openmanage-3.7.5]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_driver=0-a
Physical Disk 0:0:3 [Dell ST3600057SS, 600GB] on ctrl 0 needs attention: Removed
Logical Drive '/dev/sda' [RAID-5, 1675.12 GB] needs attention: Degraded
ESM log content: 1 critical, 0 non-critical, 1 ok

模仿更换硬盘后的状态

[root@localhost check_openmanage-3.7.5]# ./check_openmanage-H 10.0.188.115 -C vistata-b ctrl_driver=0-a
ESM log content: 1 critical, 0 non-critical, 2 ok
Physical Disk 0:0:3 [Dell ST3600057SS, 600GB] on ctrl 0 is Rebuilding
Logical Drive '/dev/sda' [RAID-5, 1675.12 GB] needs attention: Degraded

4Nagios监控效果

4.1 硬件监控:特定监控项(温度、cpu、内存)及所有硬件(服务器型号、SN、内存、逻辑、物理磁盘)

 

4.2 物理硬盘故障

 

4.3 更换硬盘后的监控状态

5、简单介绍OMSA平台管理服务器

 

  这是一个基于web程序管理DELL服务器,安装完毕OMSA自动启用TCP端口1311。

访问方式:https://服务器IP:1311 ,使用系统账户密码登录,界面类似于iDrac。

功能方面:可以配置BIOS、控制电源、硬件监控、存储管理配置、软件信息、iDrac管理、系统网络管理等,功能比较强,当然是基于操作系统和OMSA。

 

界面(使用很方便,不再赘述):

 

 

 

结束语:

  服务监控固然重要,但他的载体服务器硬件监控一样不容忽视。这些功能的实现原理跟IPMI及其重要部件BMC有关。

详见:http://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html

拓展:

DELL刀片监控插件:

http://folk.uio.no/trondham/software/check_dell_bladechassis.html

HP 刀片监控插件:

http://folk.uio.no/trondham/software/check_hp_bladechassis.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值