什么是nagios?
nagios是一款网络管理软件,开源的软件。能够对网络内的主机和硬件设备进行状态监控。
nagios的优势:
免费;开源;高扩展性。
nagios能实现的功能:
1. 状态监控
2. 预警处理
3. 集中,规模化管理
4. 可视化显示方式
nagios的实现方式:nagios采用分布-集中的管理模式。在nagios服务器上安装nagios主程序,
在被监控主机上安装nagios代理程序。通过nagios主程序和nagios代理程序之间的通讯,监视
主机状态。
主程序和代理程序之间有两种工作方式,一种是主程序-->Active-->代理程序;另一种是
主程序-->passive-->代理程序;顾名思义,是以一方向另一方主动提出通讯需求来划分的。
nagios的安装:
nagios服务器上需要安装以下包,nagios主程序,nagios的plugin程序,check_nrpe程序,imagepak包;
1、nagios安装
tar –xvzf nagios-2.0.tar.gz
mkdir /usr/local/nagios
pw useradd nagios –d /usr/local/nagios
pw addgroup root
chmod 755 /usr/local/nagios
cd nagios-2.0
./configure --prefix=/usr/local/nagios --with-gd-lib=/usr/local/lib --with-gd-inc=/usr/local/include
make all
make install
make install-init ##This installs the init script in /usr/local/etc/rc.d
make install-commandmode
make install-config ##将初始的配置文件安装到/usr/local/nagios/etc
注:在makeinstall-init这一步的时候可能会进行不下去,这时只要加个root组即可。
pw addgroup root
2、nagios-plugins的安装
tar –xvzf nagios-plugins-1.4.tar
mkdir /usr/local/nagios-plugins
cd nagios-plugins-1.4
./configure --prefix=/usr/local/nagios-plugins
make all
make install
mv /usr/local/nagios-plugins/libexec /usr/local/nagios
3、imagepak-base的安装
tar –xvzf imagepak-base.tar.gz
解压以后是base目录
cp –R base /usr/local/nagios/share/images/logos
4. nrpe的安装
安装nrpe(主要是使用check_nrpe模块)
#./configure --enable-ssl --enable-command-args
#make all
#cp src/check_nrpe /usr/local/nagios/libexec
vi checkcommands.cfg
定义check_nrpe命令
# 'check_nrep' command definition
define command{
command_name check_nrpe
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
restart nagios。
被监控主机需要安装nrpe和ncsa代理程序以及plugin程序。
1、安装nrpe与配置
#./configure --enable-ssl --enable-command-args
#make all
#mkdir -p /usr/local/nagios/etc
#mkdir /usr/local/nagios/bin
#mkdir /usr/local/nagios/libexec
#pw addgroup nagios
#pw useradd nagios -g nagios -d /usr/local/nagios/ -s /sbin/nologin
#chown -R nagios:nagios /usr/local/nagios
#cp nrpe.cfg /usr/local/nagios/etc
#cp src/nrpe /usr/local/nagios/bin
2、启动nrpe,端口为5666
/usr/local/nagios/bin/nrpe -c -n /etc/nrpe.cfg -d
3、安装监测的模块
nagios-plugins的安装
tar –xvzf nagios-plugins-1.4.tar
cd nagios-plugins-1.4
./configure --prefix=/usr/local/nagios
make all
make install
nagios的配置:
一、配置apache
在apache的配置文件httpd.conf中追加
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
<Directory "/usr/local/nagios/sbin/">
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Alias /nagios/ /usr/local/nagios/share/
<Directory "/usr/local/nagios/share">
Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
二、设置访问权限 1、在/usr/local/nagios/share目录下
vi .htaccess
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/.htpasswd
require valid-user
2、在/usr/local/nagios/sbin目录下
vi .htpasswd
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/.htpasswd
require valid-user
3、/usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/.htpasswd nagios
这个apache目录根据安装目录的不同而不同,主要所以用.htpasswd这个命令生成用户名和密码
三、配置nagios 1、在/usr/local/nagios/etc下是nagios的配置模板文件.cfg-sample,把.cfg-sample文件全部拷贝成.cfg
例如:cp nagios.cfg-sample nagios.cfg
全部拷贝完成即可.
2、vi dependencies.cfg (在2.0没有生成这个文件,自己创建)
然后保存即可.(在1.2用一个空的文件代替原来的dependencies.cfg文件,否则会出错)
3、修改minimal.cfg,把里面所有定义command的全部注释掉
vi /etc/minimal.cfg
修改cgi.cfg
修改use_authentication=1为use_authentication=0,即不用验证.不然有一些页面不会显示。
4、然后检查配置文件是否出错
/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
出现Total Warnings: 0
Total Errors: 0
为正常
出错的话,就是.cfg文件有问题
5、启动后台进程
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
/usr/local/etc/rc.d/nagios start
6、http://yourip/nagios/index.html
(如果有些页面看不到的话.可以在cgi.cfg文件中
把带有authorized的选项前的#号去掉即可)
这些配置完以后,基本的nagios配置完成。
经验:nagios功能非常强大,但是配置也特别复杂。在部署nagios应用之前,一定要事先规划好;
哪些主机需要监视,都需要监视哪些服务,在监视中都采取哪些动作;而且要把他们条理
清楚的体现在cfg文件中,这样便于问题查找和扩充。
举几个cfg文件的例子。
hosts.cfg hostgroup.cfg service.cfg这三个配置文件对于简单的配置很重要,至于其他的配置文件,就要根据具体的应用来配置了。
Hosts.cfg
# 'novell1' host definition
define host{
use generic-host ; Name of host template to use
host_name 你想管理的机器名
alias 自己定义的别名
address 你想管理的机器的IP
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,u,r
}
Hostgroup.cfg
# 'novell-servers' host group definition
define hostgroup{
hostgroup_name novell-servers
alias Novell Servers
contact_groups novell-admins
members 你想管理的机器名(可以用多个,中间用逗号分隔)
}
services.cfg
# Service definition
define service{
use generic-service ; Name of service template to use
host_name 你的机器名字
service_description SMTP
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 3
retry_check_interval 1
contact_groups novell-admins
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_smtp
}
contacts.cfg misccommands.cfg dependencies.cfg
nagios.cfg dependencies.cfg.bak resource.cfg
cgi.cfg escalations.cfg checkcommands.cfg
hostgroups.cfg services.cfg contactgroups.cfg
hosts.cfg timeperiods.cfg
以上三个配置文件对于想管理的机器,需要去配置,不过对于你的机器加入在不同的组里面所监视的服务是不同的,不同工作组的计算机在nagios的管理软件界面中的服务是不一样的,如果想要更多的监视一台服务器,那么就需要配置services.cfg文件,灵活的更改services.cfg文件对于使用好nagios非常的重要。