本文将介绍基于openSUSE平台的安装教程这些指令在基于openSUSE10.2的系统下写成的。参考于http://nagios-cn.sourceforge.net/nagios-cn/
确认你安装好的openSUSE系统之上已经安装了如下软件包再继续。你可以在openSUSE系统下用yast或zypper来安装软件包。如果你的机器中已经安装了如下软件包,你可以直接跳过1,直接看2。
首先看看本机上有没有安装apache2、gcc和g++,操作如下:
#apache2
If 'apache2' is not a typo you can use command-not-found to lookup the package that contains it, like this:
cnf apache2
上面表明没有安装apache2,它让我们运行
#cnf apache2
接着它会提示我们运行zypper install apache2来安装apache2
安装apache2
#zypper se apache2
然后从列表中选择安装apache2
#zypper install apache2
安装gcc编译器
先看看系统有没有安装gcc
#gcc
如果没有安装,它会提示如下:
If 'gcc' is not a typo you can use command-not-found to lookup the package that contains it, like this:
cnf gcc
我们执行如下指令
#> cnf gcc
The program 'gcc' can be found in the following package:
* gcc [ path: /usr/bin/gcc, repository: zypp (oss) ]
Try installing with:
sudo zypper install gcc
#zypper se gcc
然后从列表中选择安装gcc
#zypper install gcc
以同样的方法安装g++
#zypper install gcc-c++
切换为root用户
su -l
创建新帐户名为nagios并给它一个登录口令
/usr/sbin/useradd nagios
passwd nagios
创建一个用户组名为nagios,并把nagios帐户加入该组
/usr/sbin/groupadd nagios
/usr/sbin/usermod -G nagios nagios
创建一个用户组名为nagcmd来执行外部命令并可以通过WEB接口来执行。将nagios用户和apache用户都加到这个组中。
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd wwwrun
2)下载Nagios和插件程序包
建立一个目录用以存储下载文件
mkdir ~/downloads
cd ~/downloads
下载Nagios和Nagios插件的软件包(访问http://www.nagios.org/download/站点以获得最新版本),在写本文档时,最新的Nagios的软件版本是3.0rc1,Nagios插件的版本是1.4.11。
wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
(要是所在linux机不能上网的话只能通过下载对应模块然后传入linux中安装)
3)编译与安装Nagios
展开Nagios源程序包
cd ~/downloads
tar xzf nagios-3.0rc1.tar.gz
cd nagios-3.0rc1
运行Nagios配置脚本并使用先前开设的用户及用户组:
./configure --with-command-group=nagcmd
编译Nagios程序包源码
make all
安装二进制运行程序、初始化脚本、配置文件样本并设置运行目录权限
make install
make install-init
make install-config
make install-commandmode
现在还不能启动Nagios - 还有一些要做的...
4)客户化配置
样例配置文件默认安装在这个目录下/usr/local/nagios/etc,这些样例文件可以配置Nagios使之正常运行,只需要做一个简单的修改...
用你擅长的编辑器软件来编辑这个/usr/local/nagios/etc/objects/contacts.cfg配置文件,更改email地址nagiosadmin的联系人定义信息中的EMail信息为你的EMail信息以接收报警内容。
vi /usr/local/nagios/etc/objects/contacts.cfg
define contact{
contact_name nagiosadmin
use generic-contact
alias Nagios Admin
email [email protected]
}
(注意:以上方法是通过internet来发送邮件,要是在工作环境中只能连接到内网,请参考下文的sendmail模块的介绍。)
5)配置WEB接口
安装Nagios的WEB配置文件到Apache的conf.d目录下
make install-webconf
创建一个nagiosadmin的用户(将口令设为nagios)用于Nagios的WEB接口登录。记下你所设置的登录口令,一会儿你会用到它。
htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重启Apache服务以使设置生效。
service apache2 restart
6)编译并安装Nagios插件
展开Nagios插件的源程序包
cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
编译并安装插件
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
7)启动Nagios
把Nagios加入到服务列表中以使之在系统启动时自动启动
chkconfig --add nagios
chkconfig nagios on
验证Nagios的样例配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果没有报错,可以启动Nagios服务
service nagios start
8)登录WEB接口
你现在可以从WEB方式来接入Nagios的WEB接口了,你需要在提示下输入你的用户名(nagiosadmin)和口令(nagios),你刚刚设置的,这里用系统默认安装的浏览器,用下面这个超链接
konqueror http://localhost/nagios/
(注意:要是所在的linux机中不能连到外网而只能通过内网相连时,上面网址中的localhost要改成安装服务器的linux主机的ip地址,如服务器在192.168.4.70机器中,则:http://192.168.4.70/nagios/ )
(若报错error 403,则在此之前可能还要安装apache2-mod——php5这个软件包,可用zyper se php查找,使用zypper in apache2-mod_php5命令)
点击“服务详情”的引导超链来查看你本机的监视详情。你可能需要给点时间让Nagios来检测你机器上所依赖的服务因为检测需要些时间。
9)其他的变更
确信你机器的防火墙规则配置允许你可以从远程登录到Nagios的WEB服务。
你可以这样做:
配置EMail的报警项超出了本文档的内容,指向你的系统档案用网页查找或是到这个站点NagiosCommunity.org wiki来查找更进一步的信息,以使你的openSUSE系统上可以向外部地址发送EMail信息。
参考来源 http://whbill.blog.51cto.com/3280780/600184
被监控主机需要安装nagios插件和NRPE Deamon
1)同样要求被监控主机要有apache2、gcc和g++,安装可以看1。
2)创建nagios用户
#useradd nagios
#passwd nagios
3)下载安装nagios plugin
在http://www.nagios.org/download/plugins下载nagios插件到 /usr/local/src。最新稳定版本是nagios-plugins-1.4.15.tar.gz
#cd /usr/local/src
#tar xzf nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15
#./configure
#make
#make install
#chown nagios /usr/local/nagios
#chown -R nagios /usr/local/nagios/libexec
4)下载安装NRPE Deamon
下载http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz到 /usr/local/src
#cd /usr/local/src
#tar xzf nrpe-2.12.tar.gz
#cd nrpe-2.12
编译
#./configure
(如果报错的话请用:./configure --prefix=/usr/local来指定特定目录)
#make all
安装NRPE插件、Deamon和Deamon配置文件示例(在此之前可能要新建一个groups,命令groupadd+名称)
#make install-plugin
#make install-daemon
#make install-daemon-config
安装NRPE Deamon为xinetd下的一个服务
#make install-xinetd
编辑vi /etc/xinetd.d/nrpe,在only_from参数里加入nagios服务器的IP地址,用逗号隔开
only_from = 127.0.0.1 <nagios server IP>
如:only_from = 127.0.0.1,192.168.4.70
在vi /etc/services中添加NRPE Deamon
nrpe 5666/tcp #NRPE
在vi /usr/local/nagios/etc/nrpe.cfg里面的allow=127.0.0.1中添加nagios服务器的IP地址,如下
allowd_hosts = 127.0.0.1,192.168.4.70
重启xinetd服务
#service xinetd restart
(注意:有些机子本省xinetd服务不可用,则可用命令:/usr/local/nagios/bin/nrpe –c /usr/local/nagios/etc/nrpe.cfg 注意要对应写入nrpe 和nrpe.cfg的目录)
或者用下面的方法重启xinetd服务
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d (-d表示以守护进程方式启动)
5)本地测试NRPE Deamon
检查NRPE Deamon是否运行
#netstat -at | grep nrpe
tcp 0 0 *:nrpe *:* LISTEN
检查NRPE Deamon是否工作正常
#/usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12
6)放开防火墙(因为我们虚拟机和工作机中没有防火墙,所以可以忽略此步),允许nagios服务器访问本地NRPE Daemon。命令可能不完全同。
#iptables -I RH-Firewall-1-INPUT -p tcp –m tcp -dport 5666 –j ACCEPT
(#iptables -A INPUT -p tcp -s 192.168.0.1 --dport 5666 -j ACCEPT)
保存新的iptables规则,保证机器重启后依然能生效。
service iptables save
3.监控Linux主机
3.1nagios服务器上安装设置
安装check_nrpe插件
#cd /usr/local/src
#tar xzf nrpe-2.12.tar.gz
#cd nrpe-2.12
编译
#./configure
#make all
安装NRPE插件
#make install-plugin
3.2.测试与远端NRPE Daemon的通信
(在此之前要确定两台主机是否能ping通,保证能上网)
如果远端主机IP地址是192.168.0.1
#/usr/local/nagios/libexec/check_nrpe -H 192.168.0.1
NRPE v2.12
/usr/local/nagios/libexec/check_nrpe -H 192.168.0.1 -c check_users(可不用)
可能会出现的错误:#Error - Could not complete SSL handshake.
解决方法:重启nrpe服务
因为nrpe是以守护进程的方式来启动的,所以要重启nrpe服务的话必须先杀死nrpe的进程,方法下:
#ps –ef |grep nrpe 找到/usr/local/nagios/bin/nrpe –c /usr/local/nagios/etc/nrpe.cfg进程对应的进程号,如123
#kill -9 123
#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d (重启nrpe服务)
在所有配置都完成后,建议将/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d写入系统的脚本中,让客户机在一开机的时候就启动nrpe服务,nagios服务器可以直接检测,方法如下:
#vim nrpe_start
在nrpe_start文本中编辑:
#!/bin/sh
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d (然后保存并退出)
#chmod +x nrpe_start
#chkconfig nrpe_start on(将文本伴随系统启动)
3.3建立命令定义
需要在nagios object配置文件commnads.cfg中建立命令定义,如下:
#vi /usr/local/nagios/etc/objects/commnads.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
3.4.建立host和service定义
必须定义一些对象定义用于监视远程的LINUX/UNIX主机。这些定义可以放在自己的文件里或加入现有的对象配置文件里(配置文件是localhost.cfg 配置文件路径一般在/usr/local/nagios/etc/objects/localhost.cfg中,配置模版文件一般为/usr/local/nagios/etc/objects/templates.cfg)。
最好的方法是为监视的每一类主机建议自己的配置模版。下面建立一个新的LINUX模版,也可以不建立,直接用已存在的。
vi /usr/local/nagios/etc/objects/templates.cfg
如下添加自已的模版,参考模版如下:
define host{
name linux-hwt ;Name of this template
use local-service ;Inherit default values
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ;DONT REGISTER THIS - ITS A TEMPLATE
}
该模版从generic-host模版继承缺省值。generic-host模版在templates.cfg中定义。templates.cfg为系统缺省安装。
定义要检测的主机:
使用上面建好的模版定义一个主机.
vi /usr/local/nagios/etc/objects/localhost.cfg
define host{
use linux-hwt ;Inherit default valus from a template和前面的定义对应
host_name myRemoteHost ;The name we're giving to this server
alias OpenSUSE ;A longer name for the server
address 192.168.4.21 ;被监控机的IP地址
}
然后,将定义监视远程主机的服务。这些服务使用远程主机nrpe.cfg里定义的命令。
下面介绍如何加入对应的服务,在/usr/local/nagios/etc/objects/localhost.cfg中加入相关模块即可(在上面主机定义后面添加)。
下面的服务监视远程主机的CPU负载。chech_nrpe命令的“check_load”参数告诉远程主机的NRPE Deamon执行定义的check_load命令。
define service{
use local-service ;和上面的对应
host_name myRemoteHost;和上面的对应
service_description CPU Load
check_command check_nrpe!check_load
}
下面服务监视登录用户数
define service{
use local-service
host_name myRemoteHost
service_description Current Users
check_command check_nrpe!check_users
}
下面服务监视zombie进程总数
define service{
use local-service
host_name myRemoteHost
service_description Zombie Processes
check_command check_nrpe!check_zombie_procs
}
3.5在/usr/local/nagios/etc/nrpe.cfg里面添加上面的服务定义。
vi /usr/local/nagios/etc/nrpe.cfg
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_users]=/usr/local/nagios/libexec/check_users -w 1 -c 2
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
3.6 重启Nagios
验证Nagios配置
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
重启nagios
#service nagios restart
===============================================================
定制配置
如果想使用nrpe监视远程主机上的新服务,需要做两件事:
1.在远程主机的nrpe.cfg文件里加上新命令。
2.对该主机的Nagios配置里添加新服务定义。
http://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux