您的位置:首页 > 运维架构 > Linux

nagios监控linux主机和主机上的web服务

2010-09-04 10:12 477 查看
[align=left]需要用的组件
[/align]
监控服务器:RHEL5(192.168.0.20)+nagios-3.0.5+
nagios-plugins-1.4.11+ nrpe_2.8.1
被监控端RHEL5 (192.168.0.21)+ nagios-plugins-1.4.11+
nrpe_2.8.1
[align=left][/align][align=left]1.NRPE监控插件[/align]
[align=left]NRPE由两部分组成:[/align]
[align=left] check_nrpe插件,运行在监控主机上。[/align]
[align=left] NRPE daemon,运行在远程的linux主机上(通常就是被监控机)[/align]
[align=left]整个的监控过程:[/align]
[align=left] 当Nagios需要监控某个远程linux主机时:[/align]
[align=left] 1).nagios运行check_nrpe插件,在nagios配置文件定义检查内容.[/align]
[align=left] 2).check_nrpe插件会通过SSL连接到远程的NRPE daemon.[/align]
[align=left] 3).NRPE daemon会运行相应的nagios插件来执行检查.[/align]
[align=left] 4).NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios处理.[/align]
注意:NRPE daemon需要nagios插件安装在远程被监控linux主机上,否则,daemon不能做任何的监控.别外因为它们间的通信是加密的SSL,所以在编译安装时都要加上选项, ./configure --enable-ssl
--with-ssl-lib=/lib/,否则也会出错.




[align=left]2.配置监控端[/align]
[align=left]1.安装nagios[/align]
[align=left]rpm -qa |grep gd[/align]
[align=left]rpm -ql gd-devel-2.0.28-5.4E.el4_6.1[/align]
[align=left]cd nagios-3.0.5[/align]
./configure
--prefix=/usr/local/nagios --with-command-group=nagcmd --with-gd-lib=/usr/lib
--with-gd-inc=/usr/include
[align=left]make all[/align]
[align=left]make install[/align]
[align=left]make install-init[/align]
[align=left]make install-config[/align]
[align=left]make install-commandmode[/align]
make install-webconf
#可以自动配置httpd.conf
[align=left]2.安装nagios-plugins[/align]
[align=left]cd nagios-plugins-1.4.11[/align]
./configure
--with-nagios-user=nagios --with-nagios-group=nagios
--enable-redhat-pthread-workaround
[align=left]make[/align]
[align=left]make install[/align]
[align=left]3.安装NRPE[/align]
[align=left]cd nagios-nrpe_2.8.1[/align]
[align=left]./configure #默认自动添加了openssl[/align]
[align=left]#因为传送过程要加密,如果后面make报错,加如下参数[/align]
[align=left]rpm -qa| grep ssl [/align]
[align=left]openssl-devel-0.9.7a-43.17.el4_6.1[/align]
rpm -ql openssl-devel-0.9.7a-43.17.el4_6.1
| more
./configure --enable-ssl
--with-ssl-lib=/lib/(当然前提要有openssl)
[align=left]make all[/align]
[align=left]make install-plugin[/align]
[align=left]4.commands.cfg定义外部构件nrpe[/align]
vi
/usr/local/nagios/etc/objects/commands.cfg
[align=left]#添加[/align]
[align=left]#check nrpe[/align]
[align=left]define command{[/align]

command_name check_nrpe

command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}
[align=left]5.配置要监控的linux主机[/align]
[align=left]vi /usr/local/nagios/etc/nagios.cfg[/align]
[align=left]#中间添加[/align]
[align=left]cfg_file=/usr/local/nagios/etc/objects/mylinux.cfg[/align]
[align=left]6.新建mylinux.cfg 设置监控内容[/align]
vi
/usr/local/nagios/etc/objects/mylinux.cfg
[align=left]define host{[/align]

use
linux-server

host_name mylinux

alias
mylinux

address 192.168.0.21(客户端IP既被监控的IP)

}
[align=left]define service{[/align]

use
generic-service

host_name
mylinux

service_description check-swap

check_command check_nrpe!check_swap

}
[align=left]define service{[/align]

use
generic-service

host_name
mylinux

service_description check-load

check_command
check_nrpe!check_load

}
[align=left]define service{[/align]

use
generic-service

host_name
mylinux

service_description check-disk

check_command
check_nrpe!check_had1
[align=left]define service{[/align]

use
generic-service

host_name
mylinux

service_description check-users

check_command
check_nrpe!check_users

}
[align=left]define service{[/align]

use
generic-service

host_name
mylinux

service_description otal_procs

check_command
check_nrpe!check_total_procs
[align=left]}[/align]
[align=left]6.其它设置[/align]
chkconfig --add
nagios #配置机器启动时自动启动Nagios
[align=left]chkconfig nagios on[/align]
/usr/local/nagios/bin/nagios
-v /usr/local/nagios/etc/nagios.cfg #检查Nagios配置文件
vi
/etc/selinux/config #关闭SELinux
[align=left]SELINUX=disabled[/align]
[align=left]service iptables stop #关闭SELinux,或打开80,5666端口[/align]
[align=left]service nagios start[/align]
[align=left]3.配置被监控端[/align]
[align=left]1.安装nagios-plugin[/align]
[align=left]useradd nagios[/align]
[align=left]passwd nagios[/align]
[align=left]tar -zxvf nagios-plugins-1.4.12.tar.gz[/align]
[align=left]cd nagios-plugins-1.4.12[/align]
./configure
--with-nagios-user=nagios --with-nagios-group=nagios
--enable-redhat-pthread-workaround
[align=left]Make[/align]
[align=left]make install[/align]
[align=left]2.改变主目录权限[/align]
chown –R nagios.nagios
/usr/local/nagios
[align=left][root@client nagios]# ll[/align]
drwxr-xr-x 2 nagios
nagios 4096 Jun 1 00:07 libexec
drwxr-xr-x 3 nagios
nagios 4096 Jun 1 00:07 share
[align=left]3.安装客户端的nrpe[/align]
[align=left]tar -zxvf nagios-nrpe_2.8.1.orig.tar.gz[/align]
[align=left]cd nagios-nrpe_2.8.1[/align]
[align=left]./configure (会自动加载SSL)[/align]
[align=left]#如果后面make报错,加如下参数[/align]
./configure --enable-ssl
--with-ssl-lib=/usr/lib/(当然前提要有openssl)
[align=left]make all[/align]
[align=left]make install-plugin[/align]
[align=left]make install-daemon[/align]
[align=left]make install-daemon-config[/align]
[align=left]4.配置nrpe信息[/align]
vi
/usr/local/nagios/etc/nrpe.cfg
[align=left]allowed_hosts=192.168.0.20,127.0.0.1,192.168.0.99[/align]
[align=left]5.启动nrpe[/align]
/usr/local/nagios/bin/nrpe
-c /usr/local/nagios/etc/nrpe.cfg –d
[align=left]#或[/align]
[align=left]vi /etc/rc.d/rc.local[/align]
/usr/local/nagios/bin/nrpe
-c /usr/local/nagios/etc/nrpe.cfg –d
[align=left]6.验证nrpe[/align]
[align=left]netstat -an | grep 5666[/align]
tcp
0 0 0.0.0.0:5666
0.0.0.0:* LISTEN
/usr/local/nagios/libexec/check_nrpe
-H 127.0.0.1
[align=left]NRPE v2.8.1[/align]
[align=left]#服务端测试[/align]
/usr/local/nagios/libexec/check_nrpe
-H l92.168.0.21
[align=left]NRPE v2.8.1[/align]
[align=left]#常见错误[/align]
/usr/local/nagios/libexec/check_nrpe
-H 127.0.0.1
CHECK_NRPE: Error - Could
not complete SSL handshake.
[align=left]配置allowed_hosts=192.168.0.20,127.0.0.1,192.168.0.99,然后kill进程再重启就OK了[/align]
2./usr/local/nagios/libexec/check_nrpe
-H 127.0.0.1
[align=left]Connection refused by host[/align]
[align=left]Nrpe进程没有启动[/align]
[align=left]7.配置监控对像[/align]
[align=left] 被监控端做监控然后传给监控服务器绘总,设置监控详细参数主要是设置被监控端的nrpe.cfg文件[/align]
[align=left] 可以看到里面监控对象[/align]
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_hda1]=/usr/local/nagios/libexec/check_disk
-w 20 -c 10 -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs
-w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs
-w 150 -c 200
command[check_swap]=/usr/local/nagios/libexec/check_swap
-w 20% -c 10%
如果nagios服务器想要监控客户机swap分区,但客户机nrpe.cfg文件没有swap监控对像,这时监控服务器就是报错(NRPE command ‘check_swap’no
defined).



[align=left]到此,就可以监控linux客户机的Disk,swap,users,memory了.[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
1、 解包、配置:tar zxvf httpd-2.2.0.tar.gz ; cd
httpd-2.2.0 ; ./configure –prefix=/usr/local/apache 。

2、 编译安装: make ; make install 。

安装完成后,执行命令
./usr/local/apache/bin/apachectl –t 检查一下apache是否正确安装。

#setting for nagios

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 "Nagios Access"

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 "nagios Access"

AuthUserFile /usr/local/nagios/etc/htpasswd

Require valid-user

</Directory>

更改目录/usr/local/apache
的权限 为nagios用户

执行/usr/local/apache/bin/apachl
-t 检查语法

然后/usr/local/apache/bin/apachctl
start & 把apache启动到后台

注意有的版本自带了自己的apache服务,不要试验 /etc/init.d/httpd start 进行启动会冲突

四。进入到/usr/local/nagios/etc/
下,目录结构如下



[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]

然后进入到 ./nagios
下对nagios 配置文件进行修改

cfg_file=/usr/local/nagios//etc/objects/commands.cfg //会在 object 的目录下生成相应的配置文档

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
// cfg_file=/usr/local/nagios//etc/objects/windows.cfg //取消的注释行,开启监测windows服务器

cfg_file=/usr/local/nagios//etc/objects/switch.cfg
//取消的注释行,开启对路由和交换机的监测

command_check_interval=-10s //设定服务器掉线的允许时间,默认为1s

enable_notifications=1 //是否发送通知的过滤器

在cgi.cfg中进行修改

authorized_for_system_information=nagiosadmin,zhangbo

authorized_for_configuration_information=nagiosadmin,zhangbo

authorized_for_system_commands=zhangbo //多个用户之间用逗号隔开

authorized_for_all_services=nagiosadmin,zhangbo

authorized_for_all_hosts=nagiosadmin,zhangbo

authorized_for_all_service_commands=nagiosadmin,zhangbo

authorized_for_all_host_commands=nagiosadmin,zhangbo

下面进入到 ./object
的目录下,改目录的结构如下:



再 contacts.cfg
中进行修改:这里主要是联系人的相关设置

define contactgroup{

contactgroup_name
admins //联系组的相应组名,后面要用到

alias
Nagios Administrators //别名

members
zhangbo //成员,多用户用“,”隔开

}

define contact{

contact_name
zhangbo //联系人

alias
Nagios zhangbo (Admin)
//别名

email
zhangbo@邮箱
//联系人的邮箱,通知的邮箱

}

再timeperiods.cfg
中没有修改:
//这里主要是一些关于监测时间,报警时间,间断时间的一些设置,保持默认即可


localhost.cfg 下的修改:

define hostgroup{

hostgroup_name
hostadmin //监视的主机组的名称

alias
hostadmin //别名

members
zhangbo //成员名 ,多用户用“,”隔开

}

define host{

use
linux-server //使用的类定义,根据templates.cfg的定义

host_name
zhangbo
//主机名

alias
zhangbo
//别名

parents
MainSwitch

address
192.168.1.251 //对应的ip地址

icon_image
server.gif

statusmap_image server.gd2

2d_coords
500,200

3d_coords
500,200,100

}


templates.cfg 中进行修改://可以根据自己的需要进行相应类的定义

define contact{

name
generic-contact //定义的类名

service_notification_period
24x7

host_notification_period
24x7

service_notification_options
w,u,c,r,f,s

events, and scheduled downtime events

host_notification_options
d,u,r,f,s

ents, and scheduled downtime events

service_notification_commands notify-service-by-email

host_notification_commands
notify-host-by-email

register
0

检测:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

出现下面情况表示成功

Checking misc settings...

Total Warnings: 0

Total Errors: 0

Things look okay - No serious problems were detected during the pre-flight
check

对于监测是点来说,我这里都是一些windows的机器,因为系统的差异,对windows的监控得需要在各监控点上安装第三方的软件--NSClient++

NSClient++ 客户端在windos上的安装步骤

1,到官方网站上下载最新的稳定的 NSClient++ 软件包或安装程序

2. 将其安装再C盘下

3.再 cmd 的模式下,进入到安装目录,执行:

NSClient++ /uninstall

NSClient++ SysTray uninstall

NSClient++ /install

NSClient++ SysTray install

4.再安装目录下对配置文件进行修改:

将 [modules]部分的所有模块前面的注释都去掉,除了CheckWMI.dll and
RemoteConfiguration.dll这两个

在[Settings]部分设置'password'选项来设置密码,作用是在nagios连接过来时要求提供密码.这一步是可选的,我这里方便起见跳过它,不要密码.

将[Settings]部分'allowed_hosts'选项的注释去掉,并且加上运行nagios的监控主机的IP.我改为如下这样
allowed_hosts=127.0.0.1/32,192.168.0.111 以逗号相隔.这个地方是支持子网的,如果写成192.168.0.0/24则表示该子网内的所有机器都可以访问.如果这个地方是空白则表示所有的主机都可 以连接上来.注意是[Settings]部分的,因为[NSClient]部分也有这个选项.

必须保证[NSClient]的'port'选项并没有被注释,并且它的值是'12489',这是NSClient的默认监听端口

5.在CMD中执行nsclient++ /start启动服务,注意所在目录是C:\NSClient++

password=secret-password

下面是web的nagios的监控图形界面



对服务器监控测试正常



[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
本文出自 “骑虎南下” 博客,请务必保留此出处http://battle.blog.51cto.com/1888131/387197
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: