Nagios搭建与配置详解
系统平台:
系统版本详细信息:
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
内核版本信息:Linux 2.6.18-194.el5
使用的软件包:
1,httpd
2,php
3,nagios-3.2.3.tar.gz
4,nagios-plugins-1.4.1.tar.gz
安装次序:1,2,3,4
安装步骤:
由于安装步骤比较常规,所以这里说一下各个包在安装时候注意的事项。
1,安装rpm包
rpm -ivh httpd-* php-*
2,安装nagios
安装nagios前,需要新建nagios用户,否则安装时会报错。
useradd nagios
usermod -G nagios apache
编译前的配置 ./configure --prefix=/usr/local/nagios
编译:make all
安装: make install安装主要的程序、CGI及HTML文件
make install-commandmode 给外部命令访问nagios配置文件的权限
make install-config 把配置文件的例子复制到nagios的安装目录
make install-init把nagios做成一个运行脚本,使nagios随系统开机启动
make install-webconf创建naigos网页配置文件
验证:切换目录到安装路径(这里是/usr/local/nagios),看是否存在 etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正确的安装到系统了。后表是五个目录功能的简要说明:
bin |
Nagios执行程序所在目录,这个目录只有一个文件nagios |
etc |
Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件 |
sbin |
Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录 |
Share |
Nagios网页文件所在的目录 |
Var |
Nagios日志文件、spid 等文件所在的目录 |
3,安装nagios插件
编译前的配置: ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios &&make && make install
验证:cd /usr/local/nagios/libexec ; ls
chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec
配置过程指定的安装路径是/usr/local/nagios,而不是/usr/local/nagios-plus,安装完成后,将在目录/usr/local/nagios生成目录libexec(里面有很多文件),这正是nagios所需要的。
监控软件nagios-扩展
NRPE功能和意义
基本的Nagios 监测服务只能是本地系统监测以及对远程主机的连通性监测。为了使Nagios的监测服务器能够远程对被监测主机系统上的信息进行获取,比如远程系统上的进程数、磁盘空间使用状况、所运行的服务等等这些必须要登录远程主机系统上才能了解的信息的话,就必须要依靠NRPE这个核心扩展插件程序,NRPE作为中间的代理程序,扮演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的信息的中间人角色。
NRPE工作方式
如以上提到的实现Nagios对远程系统的监测,那么首先必须要在被监测的远程主机上除了安装Nagios-plugins插件程序之外还必须安装NRPE 核心扩展插件程序,并将NRPE在被监测的远程主机系统上以守护进程的方式运行起来,开放指定的NRPE监听端口监听着Nagios监测服务器发送过来的所有监测请求。另外,在Nagios监测服务器上,在必须要安装Nagios-plugins插件程序和NRPE核心扩展插件程序。唯一不同的是, Nagios监测服务器不需要将NRPE作为守护进程运行着,因为它本身一般不需要被别人监测着而是去监测别人,对Nagios监测服务器而言,它只需要使用到Nagio-plugins插件程序和NRPE扩展插件程序就足够了
安装nrpe:
nrpe的安装非常简单,只需要执行常规的安装步骤就可以安装成功。
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
相关文件的修改
service xinetd restart
netstat -at | grep nrpe
tcp 00 *:nrpe *:*LISTEN
配置步骤:
一,配置apache
1,编写测试php网页:
vi /var/www/html/test.php
测试:http://Ip/test.php看能否出来php说明文字
如果没有成功则配置apache支持.php网页
编辑/etc/httpd/conf/httpd.conf
添加AddType application/x-httpd-php.php
添加AddType application/x-httpd-php-source.phps
找DirectoryIndex字样修改为:
DirectoryIndex index.html index.php index.htm
2,配置apache虚拟主机
查看/etc/httpd/conf.d/nagios.conf文件,如果文件存在则无需编辑,否则进行如下编辑
#setting for nagios
ScriptAlias /nagios/cgi-bin /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
Alias /nagios /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
生成用户验证文件及web合法访问用户nagiosadmin,执行命令:
/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadmin
如要添加更多的用户,不要使用“-c”,否则会覆盖所有生成的行。
重启apache
/usr/local/apache/bin/apachectl restart
启动nagios
/etc/init.d/nagios start
此时就可以访问nagios了。
没有问题的话,进行nagios进一步的配置。
二,配置nagios
因为/usr/local/nagios-plus没有关于内存,cpu及uptime的监控,所以需要将脚本拷贝的nagios-plus目录下,并设置相应的配置文件。
1)编辑/usr/local/nagios/etc/nrpe.cfg添加
command[check_mem]=/usr/local/nagios/libexec/check_mem -w 20 -c 15
command[check_cpu.sh]=/usr/local/nagios/libexec/check_cpu.sh -w 20 -c 15
command[check_uptime.sh]=/usr/local/nagios/libexec/check_uptime.sh -w 20 -c 15
2) 编辑/usr/local/nagios/etc/objects/commands.cfg
#nrpe set
define command{
command_name check_nrpe#定义的命令名就叫作check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
#说明:
#$USER1$/check_nrpe会通过引用resource.cfg里的函数$USER1$获得#/usr/local/nagios/libexec/check_nrpe这个绝对路径。
#-H $HOSTADDRESS$ 用来获得指定被监测主机的IP地址,$HOSTADDRESS$变量会
#通过定义主机名查找到host段中的IP地址。
#-c $ARG1$ 用来指定被监测主机上NRPE守护进程运行着的NRPE命令名。
define command{
command_name check_mem
command_line $USER1$/check_mem -w $ARG1$ -c $ARG2$
}
define command{
command_name check_cpu.sh
command_line $USER1$/check_cpu.sh -w $ARG1$ -c $ARG2$
}
define command{
command_name check_uptime.sh
command_line $USER1$/check_uptime.sh -w $ARG1$ -c $ARG2$
修改nagios主配文件/usr/local/nagios/etc/nagios.cfg
反注释cfg_file=/usr/local/nagios/etc/objects/host.cfg此条指定nagios的配置文件路径。
配置host.cfg文件
define host{
host_name Nagios-Server
alias Nagios Server
address 127.0.0.1
check_command check-host-alive
check_interval 5
max_check_attempts 5
retry_interval 1
check_period 24x7
process_perf_data 0
retain_nonstatus_information 0
contact_groups admins
notification_interval 30
notification_period 24x7
notification_options d,u,r
}
define host{
host_name Cacti-Server
alias Cacti Server
address 10.2.5.130
check_command check-host-alive
check_interval 5
max_check_attempts 5
retry_interval 1
check_period 24x7
process_perf_data 0
retain_nonstatus_information 0
contact_groups admins
notification_interval 30
notification_period 24x7
notification_options d,u,r
}
配置services.cfg文件,监控的项目有:查看主机存活(网络ping),ssh服务,内存使用量,硬盘或目录使用率,当前用户登录数,cpu使用率,系统负载,系统运行时间,进程数等
若有多个主机,复制此配置文件只将host_name更改一下即可。
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 admins
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-mem
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups admins
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_nrpe!check_mem
}
define service {
host_name Nagios-Server
service_description check-disk
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups admins
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_nrpe!check_sda3
}
define service {
host_name Nagios-Server
service_description check-users
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups admins
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_nrpe!check_users
}
define service {
host_name Nagios-Server
service_description check-load
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups admins
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_nrpe!check_load
}
define service {
host_name Nagios-Server
service_description check-cpu
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups admins
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_nrpe!check_cpu.sh
}
define service {
host_name Nagios-Server
service_description check-uptime
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups admins
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_nrpe!check_uptime.sh
}
define service {
host_name Nagios-Server
service_description check-total-procs
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups admins
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_nrpe!check_total_procs
}
define service{
uselocal-service; Name of service template to use
host_nameNagios-Server
service_descriptionSSH
check_commandcheck_ssh
notifications_enabled0
}
配置文件检查命令:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
重启nagios服务:
/etc/init.d/nagios restart
/etc/init.d/httpd restart
验证:
再次打开http://ip/nagios确认配置已经生效。
配置服务开机启动
chkconfig --add nagios
chkconfig nagios on
chkconfig --level 35 httpd on
注:用nagios监控windows机器,需要在被监控的机器上安装NSClient软件。
被监控端的安装配置
首先为被监控端准备nagios-plugins和nrpe的安装包。
添加用户nagios:
usraddnagios
我的安装包放在/usr目录下面;
cd/usr
tar xzvf nagios-plugins-XXX.tar.gz
cd nagios-plugins-XXX
./configure --prefix=/usr/local/nagios
make
make install
./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios &&make && make install
chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec
再在被监控主机上安装NRPE扩展插件程序:
tar -zxvf nrpe-xxx.tar.gz
cd nrpe-xxx
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
相关文件的修改
vi/etc/xinetd.d/nrpe
only_from= 127.0.0.1 10.2.5.130
(注意,10.2.5.130监控服务器的IP,也就是所允许10.2.5.130来监控本机的服务)
vi/etc/services
nrpe5666/tcp# NRPE(添加一行)
service xinetd restart
如果配置没有问题的话,输入如下命令。查看配置是否配好
netstat -at | grep nrpe
tcp 00 *:nrpe *:*LISTEN
找到NRPE运行的执行程序
ll /usr/local/nagios/bin/nrpe
-rwxrwxr-x 1 nagios nagios 93420 Oct7 01:16 /usr/local/nagios/bin/nrpe
了解NRPE的执行程序的使用方式
/usr/local/nagios/bin/nrpe -h
测试NEPE本地是否正常启动
/usr/local/nagios/libexec/check_nrpe –Hlocalhost
如果正确的话,回返回NRPE的版本号
将NRPE运行添加加入系统启动脚本中
echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.d/rc.local
到此,被监控主机要做的工作已经完成了。