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,内容如下:
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 [email protected] –t [email protected] –s mail.test.com –u “from nagios” –xu nagios –xp p#3isoda–m happy
/usr/local/bin/sendEmail-f [email protected] -t [email protected] smtp.qiye.163.com -u "hhh" -xu [email protected] -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
AuthType Basic
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "NagiosAccess"
AuthUserFile/usr/local/nagios/etc/htpasswd
Require valid-user
Alias /nagios /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即可。
默认情况下点左边的HOST或Service自身的监控将能够看到,继续后面的操作。
五、配置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 [email protected]
# 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 [email protected]
#联系人的手机,前提是要支持短信通知,这里没有启用通过手机短信的方式发送警报
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:[email protected]
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 [email protected]
tar –zxvf sendEmail-v1.55.tar.gz |
使用测试
/usr/local/bin/sendEmail –f [email protected] –t [email protected] –s mail.lhp.com –u “nagios test” –xu [email protected] –xp 123456 –m nagios-test |
参数解释:
-f 表示发送者的邮箱 |
如果想以一个文件的内容为邮件内容可以这样:
cat filename | /usr/local/bin/sendEmail –f [email protected] –t [email protected] –s mail.lhp.com –u “nagios test” –xu [email protected] –xp 123456 |
这个跟我们的nagios发件方式类似,下面我们来改nagios的发件方式:
command.cfg配置修改email发送方式
define command{ |
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 用来管理BIOS和firmware版本更新
yum install dell_ft_install
yum install $(bootstrap_firmware)
2.4 更新BIOS、firmware版本
比较可用更新版本
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: 'PowerEdge R410 II', SN: '3NGGB3X', 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
4、Nagios监控效果
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