本指南试图让你通过简单的指令以在20分钟内在你的openSUSE平台上通过对Nagios的源程序的安装来监控本地主机。这里没有讨论更高级的设置项 - 只是一些基本操作,但这足以使95%的用户启动Nagios。
这些指令在基于openSUSE10.2的系统下写成的。
确认你安装好的openSUSE系统之上已经安装了如下软件包再继续。你可以在openSUSE系统下用yast来安装软件包。
切换为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
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这条命令的话可以通过zypper in make来安装
安装二进制运行程序、初始化脚本、配置文件样本并设置运行目录权限
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
5)配置WEB接口
安装Nagios的WEB配置文件到Apache的conf.d目录下
make install-webconf
创建一个nagiosadmin的用户用于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)和口令,你刚刚设置的,这里用系统默认安装的浏览器,用下面这个超链接
konqueror http://localhost/nagios/
(若报错error 403,则在此之前可能还要安装apache2-mod——php5这个软件包,可用zyper se php查找,使用zypper in apache2-mod_php5命令)
点击“服务详情”的引导超链来查看你本机的监视详情。你可能需要给点时间让Nagios来检测你机器上所依赖的服务因为检测需要些时间。
9)其他的变更
确信你机器的防火墙规则配置允许你可以从远程登录到Nagios的WEB服务。
你可以这样做:
配置EMail的报警项超出了本文档的内容,指向你的系统档案用网页查找或是到这个站点NagiosCommunity.org wiki来查找更进一步的信息,以使你的openSUSE系统上可以向外部地址发送EMail信息。
本文档描述了如果监控Linux/UNIX的"私有"服务和属性,如:
由Linux系统上的公众服务(HTTP、FTP、SSH、SMTP等)可以按照这篇监控公众服务文档。
如下内容是假定已经按照快速安装指南安装并设置好Nagios。如下例子参考了样例配置文件(commands.cfg、templates.cfg等)里的对象定义,样例配置文件已经在安装过程中安装就位。
[注意:本文档没有结束。推荐阅读文档NRPE外部构件里如何监控远程Linux/Unix服务器中的指令]
有几种不同方式来监控远程Linux/UNIX服务器的服务与属性。一个是应用共享式SSH密钥运行check_by_ssh插件来执行对远程主机的检测。这种方法本文档不讨论,但它会导致安装有Nagios的监控服务器很高的系统负荷,尤其是你要监控成百个主机中的上千个服务时,这是因为要建立/毁构SSH联接的总开销很高。
另一种方法是使用NRPE外部构件监控远程主机。NRPE外部构件可以在远程的Linux/Unix主机上执行插件程序。如果是要象监控本地主机一样对远程主机的磁盘利用率、CPU负荷和内存占用率等情况下,NRPE外部构件非常有用。
Nagios有许多"外部构件"软件包可供使用。外部构件可以扩展Nagios的应用并使之与其他软件集成。
外部构件可用于:
你可以通过访问如下站点找寻外部构件:
这里对一些我开发的外部构件给一个简洁的介绍...
NRPE是一个可在远程Linux/Unix主机上执行的插件的外部构件包。如果你需要监控远程的主机上的本地资源或属性,如磁盘利用率、CPU负荷、内存利用率等时是很有用的。象是用check_by_ssh插件来实现的功能一样,但是它不需要占用更多的监控主机的CPU负荷-当你需要监控成百上千个主机是这个很重要。
NRPE外部构件包和文档可以在http://www.nagios.org/上找到。
NSCA是一个可在远程Linux/Unix主机上执行强制检测并将结果传给Nagios守护进程的外部构件包。这在分布式和冗余/失效监控的设置时非常有用。
NSCA外部构件包和文档可以在http://www.nagios.org/上找到。
NDOUtils是一个可以把全部状态信息保存到MySQL数据库里的外部构件。外个Nagios的库实例都可以把它们监控的信息保存到统一的中心数据库并集中报告。它将为一个Nagios新的基于PHH的WEB接口程序提供数据源服务。
NDOUtils外部构件包和文档可以在http://www.nagios.org/上找到。
下面介绍具体安装及操作步骤:
参考来源 http://whbill.blog.51cto.com/3280780/600184
被监控主机安装
需要安装nagios插件和NRPE Deamon
1.
2.创建nagios用户
#useradd 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
Red Hat版本的LINUX需要加--enable-redhat-pthread-workaround开关。具体见 http://nagiosplugins.org/faq/compile/configure_appears_to_hang
#./configure --enable-redhat-pthread-workaround
#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
#make all
安装NRPE插件、Deamon和Deamon配置文件示例(在此之前可能要新建一个groups,命令groupadd+名称)
#make install-plugin
#make install-daemon
#make install-daemon-config
安装NRPE Deamon为xinetd下的一个服务
#make install-xinetd
编辑/etc/xinetd.d/nrpe,在only_from参数里加入nagios服务器的IP地址
only_from = 127.0.0.1 <nagios server IP>
在/etc/services中添加NRPE Deamon
nrpe 5666/tcp #NRPE
重启xinetd服务
#service xinetd restart
或者使用以下命令替换上一条命令:/usr/local/nagios/bin/nrpe –c /usr/local/nagios/etc/nrpe.cfg –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
7.客户化NRPE命令
#vi /usr/local/nagios/etc/nrpe.cfg
============================================================
nagios服务器上安装设置
1.安装check_nrpe插件
#cd /usr/local/src
#tar xzf nrpe-2.12.tar.gz
#cd nrpe-2.12
编译
#./configure
#make all
安装NRPE插件
#make install-plugin
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
3.建立命令定义
需要在nagios object配置文件中建立命令定义。
#vi /usr/local/nagios/etc/objects/commnads.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
4.建立host和service定义
必须定义一些对象定义用于监视远程的LINUX/UNIX主机。这些定义可以放在自己的文件里或加入现有的对象配置文件里(配置文件是localhost.cfg 配置文件路径一般在/usr/local/nagios/etc/objects/localhost.cfg中)。
最好的方法是为监视的每一类主机建议自己的配置模版。下面建立一个新的LINUX模版。
参考:
define host{
name linux-box ;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为系统缺省安装。
定义要检测的主机:
使用上面建好的模版定义一个主机.
define host{
use linux-box ;Inherit default valus from a template和前面的定义对应
host_name remotehost ;The name we're giving to this server
alias Fedora Core 6 ;A longer name for the server
address 192.168.0.1 ;IP address of the server根据具体修改
}
然后,将定义监视远程主机的服务。这些服务使用远程主机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 linux-i0o0 ;和上面的对应
service_description CPU Load
check_command check_nrpe!check_load
}
下面服务监视登录用户数
define service{
use local-service
host_name linux-i0o0
service_description Current Users
check_command check_nrpe!check_users
}
下面服务监视/dev/hda1的空闲空间
define service{
use local-service
host_name linux-i0o0
service_description /dev/hda1 Free Space
check_command check_nrpe!check_hda1
}
下面服务监视进程总数
define service{
use local-service
host_name linux-i0o0
service_description Total Processes
check_command check_nrpe!check_total_procs
}
下面服务监视zombie进程总数
define service{
use local-service
host_name linux-i0o0
service_description Zombie Processes
check_command check_nrpe!check_zombie_procs
}
5 重启Nagios
验证Nagios配置
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
重启nagios
#service nagios restart
===============================================================
定制配置
如果想使用nrpe监视远程主机上的新服务,需要做两件事:
1.在远程主机的nrpe.cfg文件里加上新命令。
2.对该主机的Nagios配置里添加新服务定义。