nagios 的安装与配置
nagios服务器端的配置文档
4.4. 基于Fedora平台的快速指南
4.4.1. 介绍
本指南试图让你通过简单的指令以在20分钟内在Fedora平台上通过对Nagios的源程序的安装来监控本地主机。这里没有讨论更高级的设置项 - 只是一些基本操作,但这足以使95%的用户启动Nagios。
这些指令在基于Fedora Core 6的系统下写成的。
最终结果是什么
如果按照本指南安装,最后将是这样结果:
Nagios和插件将安装到/usr/local/nagios
Nagios将被配置为监控本地系统的几个主要服务(CPU负荷、磁盘利用率等)
Nagios的Web接口是URL是https://localhost/nagios/
4.4.2. 准备软件包
在做安装之前确认要对该机器拥有root权限。
确认你安装好的Fedora系统上已经安装如下软件包再继续。
Apache
GCC编译器
GD库与开发库
可以用yum命令来安装这些软件包,键入命令:
yum install httpd
yum install php
yum install perl
yum install fontconfig
yum install freetype
yum install libpng
配置index.php文件的访问
vi /etc/httpd/conf/httpd.conf
yum install gcc
yum install glibc glibc-common
yum install gd gd-devel
4.4.3. 操作过程
1)建立一个帐号
切换为root用户
su -l
创建一个名为nagios的帐号并给定登录口令
/usr/sbin/useradd nagios
passwd nagios
创建一个用户组名为nagcmd用于从Web接口执行外部命令。将nagios用户和apache用户都加到这个组中。
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd apache
2)下载Nagios和插件程序包
建立一个目录用以存储下载文件
mkdir ~/downloads
cd ~/downloads
下载Nagios和Nagios插件的软件包(访问https://www.nagios.org/download/站点以获得最新版本),在写本文档时,最新的Nagios的软件版本是3.0rc1,Nagios插件的版本是1.4.11。
wget https://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz
wget https://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 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接口登录。记下你所设置的登录口令,一会儿你会用到它。
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重启Apache服务以使设置生效。
service httpd 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)更改SELinux设置
Fedora与SELinux(安全增强型Linux)同步发行与安装后将默认使用强制模式。这会在你尝试联入Nagios的CGI时导致一个”内部服务错误”消息。
如果是SELinux处于强制安全模式时需要做
getenforce
令SELinux处于容许模式
setenforce 0
如果要永久性更变它,需要更改/etc/selinux/config里的设置并重启系统。
不关闭SELinux或是永久性变更它的方法是让CGI模块在SELinux下指定强制目标模式:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
更多有关Nagios的CGI模块增加目标策略的强制权限方式见NagiosCommunity.org的维基百科https://www.nagioscommunity.org/wiki。
9)登录WEB接口
你现在可以从WEB方式来接入Nagios的WEB接口了,你需要在提示下输入你的用户名(nagiosadmin)和口令,你刚刚设置的,这里用系统默认安装的浏览器,用下面这个超链接
https://localhost/nagios/
点击“服务详情”的引导超链来查看你本机的监视详情。你可能需要给点时间让Nagios来检测你机器上所依赖的服务因为检测需要些时间。
10)其他的变更
确信你机器的防火墙规则配置允许你可以从远程登录到Nagios的WEB服务。
配置EMail的报警项超出了本文档的内容,指向你的系统档案用网页查找或是到这个站点NagiosCommunity.org wiki来查找更进一步的信息,以使你的系统上可以向外部地址发送EMail信息。更多有关通知的信息可以查阅这篇文档。
11)完成了
祝贺你已经成功安装好Nagios,但网络监控工作只是刚开始。毫无疑问你不是只监控本地系统,所以要看以下这些文档…
对Windows主机的监控
对Linux/Unix主机的监控
对Netware服务器的监控
监控路由器和交换机
监控公众化服务(HTTP、FTP、SSH等)
4.5. 基于openSUSE平台的快速指南
4.5.1. 介绍
本指南试图让你通过简单的指令以在20分钟内在你的openSUSE平台上通过对Nagios的源程序的安装来监控本地主机。这里没有讨论更高级的设置项 - 只是一些基本操作,但这足以使95%的用户启动Nagios。
这些指令在基于openSUSE10.2的系统下写成的。
4.5.2. 所需的软件包
确认你安装好的openSUSE系统之上已经安装了如下软件包再继续。你可以在openSUSE系统下用yast来安装软件包。
apache2
C/C++开发库
4.5.3. 操作过程
1)建立一个帐号
切换为root用户
su -l
创建新帐户名为nagios并给它一个登录口令
/usr/sbin/useradd nagiospasswd 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 ~/downloadscd ~/downloads
下载Nagios和Nagios插件的软件包(访问https://www.nagios.org/download/站点以获得最新版本),在写本文档时,最新的Nagios的软件版本是3.0rc1,Nagios插件的版本是1.4.11。
wget https://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gzwget https://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
3)编译与安装Nagios
展开Nagios源程序包
cd ~/downloadstar xzf nagios-3.0rc1.tar.gzcd nagios-3.0rc1
运行Nagios配置脚本并使用先前开设的用户及用户组:
./configure –with-command-group=nagcmd
编译Nagios程序包源码
make all
安装二进制运行程序、初始化脚本、配置文件样本并设置运行目录权限
make installmake install-initmake install-configmake 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 ~/downloadstar xzf nagios-plugins-1.4.11.tar.gzcd nagios-plugins-1.4.11
编译并安装插件
./configure –with-nagios-user=nagios –with-nagios-group=nagiosmakemake install
7)启动Nagios
把Nagios加入到服务列表中以使之在系统启动时自动启动
chkconfig –add nagioschkconfig 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 https://localhost/nagios/
点击“服务详情”的引导超链来查看你本机的监视详情。你可能需要给点时间让Nagios来检测你机器上所依赖的服务因为检测需要些时间。
9)其他的变更
确信你机器的防火墙规则配置允许你可以从远程登录到Nagios的WEB服务。
你可以这样做:
打开控制中心
选择’打开超户设置’以打开YaST超户控制中心
选择在’安全与用户’设置里的’防火墙’
在防火墙的配置窗口中点击’允许的服务’选项
在许可的服务中增加’HTTP服务’,是’外部区’的部分
点击’下一步’并选择’接受’以使得防火墙设置生效
配置EMail的报警项超出了本文档的内容,指向你的系统档案用网页查找或是到这个站点NagiosCommunity.org wiki来查找更进一步的信息,以使你的openSUSE系统上可以向外部地址发送EMail信息。
4.6. 基于Ubuntu平台的快速指南
4.6.1. 介绍
本指南试图让你通过简单的指令以在20分钟内在Ubuntu平台上通过对Nagios的源程序的安装来监控本地主机。没有讨论更高级的设置项-只是一些基本操作,但这足以使95%的用户启动Nagios。
这些指令在基于Ubuntu6.10(桌面版)的系统下写成的。
What You’ll End Up With
如果按照本指南安装,最后将是这样结果:
Nagios和插件将安装到/usr/local/nagios
Nagios将被配置为监控本地系统的几个主要服务(CPU负荷、磁盘利用率等)
Nagios的Web接口是URL是https://localhost/nagios/
4.6.2. 所需软件包
确认你安装好的系统上已经安装如下软件包再继续。
Apache2
GCC编译器与开发库
GD库与开发库
可以用apt-get命令来安装这些软件包,键入命令:
sudo apt-get install apache2
sudo apt-get install build-essential
sudo apt-get install libgd2-dev
4.6.3. 操作过程
1)建立一个帐号
切换为root用户
sudo -s
创建一个名为nagios的帐号并给定登录口令
/usr/sbin/useradd nagios
passwd nagios
在Ubuntu服务器版(6.01或更高版本),创建一个用户组名为nagios(默认是不创建的)。在Ubuntu桌面版上要跳过这一步。
/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 www-data
2)下载Nagios和插件程序包
建立一个目录用以存储下载文件
mkdir ~/downloads
cd ~/downloads
下载Nagios和Nagios插件的软件包(访问https://www.nagios.org/download/站点以获得最新版本),在写本文档时,最新的Nagios的软件版本是3.0rc1,Nagios插件的版本是1.4.11。
wget https://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz
wget https://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 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接口登录。记下你所设置的登录口令,一会儿你会用到它。
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重启Apache服务以使设置生效。
/etc/init.d/apache2 reload
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加入到服务列表中以使之在系统启动时自动启动
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
验证Nagios的样例配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果没有报错,可以启动Nagios服务
/etc/init.d/nagios start
8)登录WEB接口
你现在可以从WEB方式来接入Nagios的WEB接口了,你需要在提示下输入你的用户名(nagiosadmin)和口令,你刚刚设置的,这里用系统默认安装的浏览器,用下面这个超链接
https://localhost/nagios/
点击“服务详情”的引导超链来查看你本机的监视详情。你可能需要给点时间让Nagios来检测你机器上所依赖的服务因为检测需要些时间。
9)其他的变更
如果要接收Nagios的EMail警报,需要安装(Postfix)包
sudo apt-get install mailx
需要编辑Nagios里的EMail通知送出命令,它位于/usr/local/nagios/etc/commands.cfg文件中,将里面的’/bin/mail’全部替换为’/usr/bin/mail’。一旦设置好需要重启动Nagios以使配置生效。
sudo /etc/init.d/nagios restart
配置EMail的报警项超出了本文档的内容,指向你的系统档案用网页查找或是到这个站点NagiosCommunity.org wiki来查找更进一步的信息,以使Ubuntu系统上可以向外部地址发送EMail信息。
———————————————————–
安装nrpe插件监控linux主机
* 解压:tar xvfz nrpe-2.12.tar.gz
* cd nrpe-2.12
* ./configure
* make all
* make install-plugin
在commands.cfg里添加命令
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
———————————————————-
被监控linux主机安装nrpe
创建用户nagios
* useradd nagios
安装nagios-plugins
* 解压:#tar xvfz nagios-plugins-1.4.13.tar.gz
* 进入目录:#cd nagios-plugins-1.4.13
* 配置:#./configure –prefix=/usr/local/nagios/
* 编译:#make
* 安装:#make install
更改文件夹属主
* chown -R nagios.nagios /usr/local/nagios
安装nrpe
* 解压:tar xvfz nrpe-2.12.tar.gz
* cd nrpe-2.12
* ./configure
* make all
* make install-plugin
* make install-daemon
* make install-daemon-config
修改修改/usr/local/nagios/etc/nrpe.cof
* allowd_hosts=192.168.202.15
开机启动nrpe
* 在/etc/init.d/rc.local里添加/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
* 执行/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
//被监控机器安装结束
———————————————————
[精华] Nagios飞信linux系统免费短信报警配置
——————————————————————————–
https://www.chinaunix.net 作者:solaris小兵 发表于:2009-05-26 16:27:58
【发表评论】【查看原文】【门户网站运维讨论区】【关闭】
Nagios飞信linux系统免费短信报警配置
本人声明如需转载请保留如下信息:
作者:SOLARIS小兵
MAIL:[email]solarisxb@hotmail.com[/email]
BLOG:https://solarisxb.cublog.cn/
一、 前言:
1、 nagios是一个非常好的系统监控工具,现在我的nagios系统已经正常运行,使用短信猫和邮件可以报警。使用飞信可以节约我们的短信猫和短信费用。
2、 飞信首先手机要开通中国移动的飞信业务。目前使用飞信发送短信是免费的。需要把接受短信的手机和飞信发送手机加为好友。
3、 下载飞信的linux客户端程序.解开包后只有一个文件sms。不错。这个就是飞信发送短信的程序啦。现在的飞信还是不能用的。因为它需要libace的glibc库的支持。
二、 飞信linux程序下载:
1、 飞信官方网站:https://www.it-adv.net/
2、 飞信官方命令下载:sms
https://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
3、 飞信官方lib库下载:
32位官方lib库:https://www.it-adv.net/fetion/library32.rar
64位官方lib库:https://www.it-adv.net/fetion/library64_linux.tar.gz
三、 飞信程序测试:
1、 飞信命令测试:
# wget https://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
# tar xvfz fetion_linux_20080402.tar.gz
# cp sms /usr/bin
# sms -h
sms -f mobile -p pwd -t mobile1,.. -m message -a message -d
sms -f mobile -p pwd -t mobile1,.. -i file_name[utf8] -a invite_message -d 1
-f:Fetion mobile account(only supports mobile phone No.)
-p:Account password
-t:Destination mobile list
-m:Message
-i:File name(only supports utf8)
-a:Auto send invite using invite_message.
-d:Debug on.
如果没有安装lib库,将会提示 缺少libACE.so.5.4.7包
四、 解决缺少lib库的方法:
说明: 在centOS5下装提示需要libACE.so.5.4.7这个库,千万不要自己去安装ACE包,很麻烦,官方已经给了liunx的下载版本:
1.先检查一下缺少的lib文件
[root@nagios libexec]# ldd sms
linux-gate.so.1 => (0×00b00000)
libACE.so.5.4.7 => not found
libACE_SSL.so.5.4.7 => not found
libssl.so.0.9.8 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0×02a05000)
libm.so.6 => /lib/libm.so.6 (0×00cd4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0×029f7000)
libc.so.6 => /lib/libc.so.6 (0×00b92000)
/lib/ld-linux.so.2 (0×001c3000)
2.下载lib库:
32位官方lib库:https://www.it-adv.net/fetion/library32.rar
64位官方lib库:https://www.it-adv.net/fetion/library64_linux.tar.gz
3、安装lib库
[root@nagios library32]# ls
libACE.so.5.4.7 libACE_SSL.so.5.4.7 libcrypto.so.0.9.8 libssl.so.0.9.8
[root@nagios library32]# cp *.* /lib/
[root@nagios library32]# cp *.* /usr/lib/
4、测试sms:
[root@nagios libexec]# ./sms
************************ IMPORTANT STATEMENT ************************
** **
** PLEASE DON’T USE THIS SOFTWARE TO SEND JUNK SHORT MESSAGES. **
** OTHERWISE PLEASE BEAR YOUR OWN CONSEQUENCES. **
** **
** [version:2008-4-2] **
*********************************************************************
This program is for sending short messages via CMCC Fetion!
[url=https://www.fetion.com.cn/]https://www.fetion.com.cn/
AUTHOR:KelvinHan MSN/EMAIL:shichangguo@msn.com 2008/3/8
Usage:
sms -f mobile -p pwd -t mobile1,.. -m message -a message -d
sms -f mobile -p pwd -t mobile1,.. -i file_name[utf8] -a invite_message -d 1
-f:Fetion mobile account(only supports mobile phone No.)
-p:Account password
-t:Destination mobile list
-m:Message
-i:File name(only supports utf8)
-a:Auto send invite using invite_message.
-d:Debug on.
五、 Nagios飞信测试:
1、 需要注册一个可以使用飞信的手机号码,测试期间可以自己发送给自己做测试。
2、 给别的手机发飞信,需要给把手机绑定为好友。
3、 飞信环境解决了,发短信测试一下
136933XXXXX为发飞信的注册手机号码
136833XXXXX、36733XXXXX 为接收飞信短信的手机号码
[root@nagios libexec]# ./sms -f 136933XXXXX -p password -t 136833XXXXX -m hello,this is test
也可以要发的消息在一个文本文件里,如 message.txt
./sms -f 136933XXXXX -p password -t 136833XXXXX,136733XXXXX -i message.txt
如果接收短信的手机号码在你的好友列表里,就会发送成功。
如果不在好友列表里,发送是不成功的。如果你想让程序邀请他们加入,那么就用 -a 参数
sms -f 136933XXXXX -p password -t 136833XXXXX,136733XXXXX -m 你好,飞信 -a UBUNTU
这样,对方就会收到移动发的确认短信。
六、 Nagios配置:
1、 nagios命令配置commands.cfg:
more /usr/local/nagios/etc/commands.cfg
define command{
command_name notify-service-by-sms
command_line /usr/bin/sms -f 13901111111 -p 562128 -t $CONTACTPAGER$ -m “$HOSTNAME$ $SERVICEDESC$ is $SERVICESTATE$
on $TIME$ result is $SERVICEOUTPUT$” $CONTACTPAGER$
}
2、 nagios发送配置contacts.cfg:
[root@nagios ~]# more /usr/local/nagios/etc/contacts.cfg
define contact{
contact_name sa
alias system admin
host_notification_period 24×7
service_notification_period 24×7
host_notification_options d,r,
service_notification_options c,w,r
service_notification_commands notify-service-by-email,notify-service-by-sms
# service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
# email [email]1234@sina.com[/email]
pager 158010775111
}
[root@nagios ~]#
七、 备注:
添加内容:现在新的lib库,测试以后在32位和64位操作系统都可以使用!!
测试系统:centos 5.2
——————————————————————————-
4.7. 监控Windows主机
4.7.1. 介绍
本文用来说明如何监控Windows主机的本地服务和特性,包括:
内存占用率
CPU负载
Disk利用率
服务状态
运行进程
等等
在Windows主机上的公众化服务(如HTTP、FTP、POP3等)可以查阅监控公众化服务这篇文档。
注意
如下的内容是假定你已经按照快速安装指南安装好了Nagios系统之后做的,下面所使用的样例配置文件(如commands.cfg、templates.cfg等)已经在安装过程中安装到位。
4.7.2. 概览
对Windows机器的监控私有服务需要在机器上安装代理程序。代理将会在检测插件与Nagios服务之间起网关代理作用。如果没有在机器上安装代理的话,Nagios将无法对Windows私有服务或属性等进行监控。
在下面例子中,将在Windows机器上安装NSClient++外部构件并使用check_nt插件检测和与NSClient++构件进行通讯。如果你按照指南来安装的话,check_nt插件已经安装到了Nagios服务器上。
如果愿意,可以用其他的Windows代理(象NC_Net)替代NSClient++构件所起的作用-只是要稍稍改一下对应的命令和服务定义等。下面将只是讨论安装了NSClient++外部构件的情况。
4.7.3. 步骤
为完成对Windows机器的检测,有几个步骤要做,它们是:
确认一下首要条件;
在Windows机器上安装代理(在本例中是安装NSClient++构件);
给Windows机器创建新的主机和服务对象定义;
重启动Nagios守护进程。
4.7.4. 已经做了什么?
为使过程简单,已经完成了少量配置文件的工作:
已经把check_nt命令加入到了commands.cfg文件中,就可以直接使用check_nt插件来监控Windows服务;
一个Windows机器的主机对象模板(命名为windows-server)已经在templates.cfg文件里创建好了,可以更容易地加入一个新的Windows主机对象定义。
常用的配置文件可以在/usr/local/nagios/etc/objects/目录里找到。如果愿意可以对里面的对象进行修改以适应你的要求。但是,如果你没有熟悉配置Nagios之前劝你不要这么做。开始时可以只是按照下面的指令操作来快速完成监控Windows机器。
4.7.5. 首要条件
首次监控一台Winodws机器时需要对Nagios做点额外的工作,记住,仅仅是监控第一台Windows机器时需要做这些工作。
编辑Nagios的主配置文件
vi /usr/local/nagios/etc/nagios.cfg
把下面这行最前面的#号去掉:
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
保存配置文件并退出。
刚才做的是什么呢?是让Nagios起用/usr/local/nagios/etc/objects/windows.cfg这个配置文件里的对象定义。在这个配置文件里可以加些Windows的主机与服务对象定义。该配置文件里已经包含有几个样例主机、主机组及服务对象定义。对于第一台Windows机器,可以只是简单地修改里面已经有的主机与服务对象定义而不要新创建一个。
4.7.6. 安装Windows代理程序
在用Nagios监控Windows机器的私有服务之前,需要先在机器上安装代理程序。推荐使用NSClient++外部构件,它可以在https://sourceforge.net/projects/nscplus找到。如下指令可以安装一个基本的NSClient++外部构件,同时也配置好Nagios来监控这台Windows机器。
1.从https://sourceforge.net/projects/nscplus站点下载最新稳定版的NSClient++软件包;
2.展开软件包到一个目录下,如C:\NSClient++;
3.打开一个命令行窗口并切换到C:\NSClient++目录下;
4.用下面命令将NSClient++系统服务注册到系统里:
nsclient++ /install
5.用下面命令安装NSClient++系统托盘程序(’SysTray’是大小写敏感的):
nsclient++ SysTray
6.打开服务管理器并确认NSClientpp服务可以在桌面交互(看一下服务管理器里的’Log On’选项页),如果没有允许桌面交互,点一下里面的选择项打开它。
7.编辑NSC.INI文件(位于C:\NSClient++目录)并做如下修改:
去掉在[modules]段里的列出模块程序的注释,除了CheckWMI.dll和RemoteConfiguration.dll;
最好是修改一下在[Settings]段里的’password’选项;
去掉在[Settings]段里的’allowed_hosts’选项注释,把Nagios服务所在主机的IP加到这一行里,或是置为空,让全部主机都可以联入;
确认一下在[NSClient]段里的’port’选项里已经去掉注释并设置成’12489′(默认端口);
8.用下面命令启动NSClient++服务:
nsclient++ /start
9.如果安装正确,一个新的图标会出现在系统托盘里,是个黄圈里面有个黑色的’M';
10.完成了。这台Windows机器可以加到Nagios监控配置里了…
4.7.7. 配置Nagios
为监控Windows机器下面要在Nagios配置文件里加几个对象定义。
编辑方式打开windows.cfg文件。
vi /usr/local/nagios/etc/objects/windows.cfg
给Windows机器加一个新的主机对象定义以便监控。如果是被监控的第一台Windows机器,可以只是修改windows.cfg文件里的对象定义。修改host_name、alias和address域以符合那台Windows机器。
define host{
use windows-server ; Inherit default values from a Windows server template (make sure you keep this line!)
host_name winserver
alias My Windows Server
address 192.168.1.2
}
好了。下面可以加几个服务定义(在同一个配置文件里)以使Nagios监控Windows机器上的不同属性内容。如果是第一台Windows机器,可以只是修改windows.cfg里的服务对象定义。
注意
用你刚刚加好的主机对象定义里的host_name来替换例子里的”winserver”。
加入下面的服务定义以监控运行于Windows机器上的NSClient++外部构件的版本。当到时间要升级Windows机器上的外部构件时这信息会很用有,因为它可以告知这台Windows机器上的NSClient++需要升级到最新版本。
define service{
use generic-service
host_name winserver
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
加入下面的服务定义以监控Windows机器的启动后运行时间。
define service{
use generic-service
host_name winserver
service_description Uptime
check_command check_nt!UPTIME
}
加入下面的服务定义可监控Windows机器的CPU利用率,并在5分钟CPU负荷高于90%时给出一个紧急警报或是高于80%时给出一个告警警报。
define service{
use generic-service
host_name winserver
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
加入下面的服务定义可监控Windows机器的内存占用率,并在5分钟内存占用率高于90%时给出一个紧急警报或是高于80%时给出一个告警警报。
define service{
use generic-service
host_name winserver
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
加入下面的服务定义可监控Windows机器的C:盘的磁盘利用率,并在磁盘利用率高于90%时给出一个紧急警报或是高于80%时给出一个告警警报。
define service{
use generic-service
host_name winserver
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
加入下面的服务定义可监控Windows机器上的W3SVC服务状态,并在W3SVC服务停止时给出一个紧急警报。
define service{
use generic-service
host_name winserver
service_description W3SVC
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}
加入下面的服务定义可监控Windows机器上的Explorer.exe进程,并在进程没有运行时给出一个紧急警报。
define service{
use generic-service
host_name winserver
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}
都好了,已经加好了基础服务定义,可以监控Windows机器了,保存一下配置文件。
4.7.8. 口令保护
如果想指定保存在Windows机器上NSClient++配置文件里的口令,可以修改check_nt命令定义,让它带着口令。编辑方式打开commands.cfg文件。
vi /usr/local/nagios/etc/commands.cfg
修改check_nt命令的定义,带上”-s <PASSWORD>”命令参数(这里的PASSWORD 要换成你Windows机器的真正口令),象这样:
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
}
保存文件退出。
——————————————————————————————————–
4.9. 监控路由器和交换机
4.9.1. 介绍
本文档将介绍如何来监控路由器和交换机的状态。一些便宜的”无网管”功能的交换机与集线器不能配置IP地址而且对于网络是不可见的组成构件,因而没办法来监控这种东西。稍贵些的交换机和路由器可以配置IP地址可以用PING检测或是通过SNMP来查询状态信息。
下面将描述如果来监控这些有网管功能的交换机、集线器和路由器:
包丢弃率,平均回包周期RTA
SNMP状态信息
带宽与流量
注意
如下指令是假定你已经按快速安装指南安装好Nagios。参考的样例配置是在已经按指南安装就位的配置文件(commands.cfg、templates.cfg等)。
4.9.2. 概览
监控交换机与路由器可简可繁-主要是看拥有什么样设备与想监控什么内容。做为极为重要的网络组成构件,毫无疑问至少要监控一些基本状态。
交换机与路由器可以简单地用PING来监控丢包率、RTA等数据。如果交换机支持SNMP,就可以监控端口状态等,用check_snmp插件,也可以监控带宽(如果用了MRTG),用check_mrtgtraf插件。
check_snmp插件只有当系统里安装了net-snmp和net-snmp-utils包后才编译。先确定插件已经在/usr/local/nagios/libexec目录里再继续做,如果没有这个文件,安装net-snmp和net-snmp-utils包并且重编译并重新安装Nagios插件包。
4.9.3. 步骤
要监控交换机与路由器要有几步工作:
第一时间执行些必备工作;
给设备创建要监控的主机与服务对象定义;
重启动Nagios守护进程。
4.9.4. 已经做了什么?
为了让工作轻松点,几个配置任务已经做好了:
两个命令定义(check_snmp和check_local_mrtgtraf)已经加到了commands.cfg文件中。可以用check_snmp和check_mrtgtraf插件来监控网络打印机。
一个交换机模板(命名为generic-switch)已经创建在templates.cfg文件里。可以在对象定义里更容易地加一个新的交换机与路由器设备。
以上的监控配置文件可以在/usr/local/nagios/etc/objects/目录里找到。如果愿意可以修改这些定义或是加入其他适合需要的更好的定义。但推荐你最好是等到你熟练地掌握了Nagios配置之后再这么做。开始的时候,只要按上述的配置来监控网络里的路由器和交换机就可以了。
4.9.5. 必备工作
要配置Nagios用于监控网络里的交换机之前,有必要做点额外工作。记住,这是首先要做的工作才能监控。
编辑Nagios的主配置文件
vi /usr/local/nagios/etc/nagios.cfg
移除文件里下面这行的最前面的(#)符号
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg
保存文件并退出。
为何要这么做?这是要让Nagios检查/usr/local/nagios/etc/objects/switch.cfg配置文件来找些额外的对象定义。在文件里可以增加有关路由器和交换机设备的主机与服务定义。配置文件已经包含了几个样本主机、主机组和服务定义。做为监控路由器与交换机的第一步工作是最好在样例的主机与服务对象定义之上修改而不是重建一个。
4.9.6. 配置Nagios
需要做些对象定义以监控新的交换机与路由器设备。
打开switch.cfg文件进行编辑。
vi /usr/local/nagios/etc/objects/switch.cfg
给要监控的交换机加一个新的主机对象定义。如果这是第一台要监控的交换机设备,可以简单地修改switch.cfg里的样例配置。修改主机对象里的host_name、alias和address域值来适用于监控。
define host{
use generic-switch ; Inherit default values from a template
host_name linksys-srw224p ; The name we’re giving to this switch
alias Linksys SRW224P Switch ; A longer name associated with the switch
address 192.168.1.253 ; IP address of the switch
hostgroups allhosts,switches ; Host groups this switch is associated with
}
4.9.7. 监控服务
现在可以加些针对监控交换机的服务对象定义(在同一个配置文件)。如果是第一台要监控的交换机设备,可以简单地修改switch.cfg里的样例配置。
注意
替换样例定义里的”linksys-srw224p”主机名为你刚才定义的名字,是修改在host_name域。
4.9.8. 监控丢包率和RTA
增加如下的服务定义以监控自Nagios监控主机到交换机的丢包率和平均回包周期RTA,在一般情况下每5分钟检测一次。
define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p ; The name of the host the service is associated with
service_description PING ; The service description
check_command check_ping!200.0,20%!600.0,60% ; The command used to monitor the service
normal_check_interval 5 ; Check the service every 5 minutes under normal conditions
retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined
}
这个服务的状态将会处于:
紧急(CRITICAL)-条件是RTA大于600ms或丢包率大于等于60%;
告警(WARNING)-条件是RTA大于200ms或是丢包率大于等于20%;
正常(OK)-条件是RTA小于200ms或丢包率小于20%
4.9.9. 监控SNMP状态信息
如果交换机与路由器支持SNMP接口,可以用check_snmp插件来监控更丰富的信息。如果不支持SNMP,跳过此节。
加入如下服务定义到你刚才修改的交换机对象定义之中
define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Uptime
check_command check_snmp!-C public -o sysUpTime.0
}
在上述服务定义中的check_command域里,用”-C public”来指定SNMP共同体名称为”public”,用”-o sysUpTime.0″指明要检测的OID(译者注-MIB节点值)。
如果要确保交换机上某个指定端口或接口的状态处于运行状态,可以在对象定义里加入一段定义:
define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Port 1 Link Status
check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB
}
在上例中,”-o ifOperStatus.1″指出取出交换机的端口编号为1的OID状态。”-r 1″选项是让check_snmp插件检查返回一个正常(OK)状态,如果是在SNMP查询结果中存在”1″(1说明交换机端口处于运行状态)如果没找到1就是紧急(CRITICAL)状态。”-m RFC1213-MIB”是可选的,它告诉check_snmp插件只加载”RFC1213-MIB”库而不是加载每个在系统里的MIB库,这可以加快插件运行速度。
这就是给SNMP库的例子。有成百上千种信息可以通过SNMP来监控,这完全取决于你需要做什么和如果来做监控。祝你好运!
提示
通常可以用如下命令来寻找你想用于监控的OID节点(用你的交换机IP替换192.168.1.253):snmpwalk -v1 -c public 192.168.1.253 -m ALL .1
4.9.10. 监控带宽和流量
可以监控交换机或路由器的带宽利用率,用MRTG绘图并让Nagios在流量超出指定门限时报警。check_mrtgtraf插件(它已经包含在Nagios插件软件发行包中)可以实现。
需要让check_mrtgtraf插件知道如何来保存MRTG数据并存入文件,以及门限等。在例子中,监控了一个Linksys交换机。MRTG日志保存于/var/lib/mrtg/192.168.1.253_1.log文件中。这就是我用于监控的服务定义,它可以用于监控带宽数据到日志文件之中…
define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Port 1 Bandwidth Usage
check_command check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!1000000,2000000!5000000,5000000!10
}
在上例中,”/var/lib/mrtg/192.168.1.253_1.log”参数传给check_local_mrtgtraf命令意思是插件的MRTG日志文件在这个文件里读写,”AVG”参数的意思是取带宽的统计平均值,”1000000,200000″参数是指流入的告警门限(以字节为单位),”5000000,5000000″是输出流量紧急状态门限(以字节为单位),”10″是指如果MRTG日志如果超过10分钟没有数据返回一个紧急状态(应该每5分钟更新一次)。
保存该配置文件
—————————————————————————————————
4.12. 监控公众服务平台
4.12.1. 介绍
本文档介绍如何来监控一些公众化的服务、应用及协议。所谓的”公众”服务是指在网络里常见的服务-不管是本地网络还是因特网上都是这样。公众服务包括象-HTTP服务(WEB)、POP3、IMAP/SMTP、FTP和SSH。其实在日常使用中还有更多的基础服务。这些服务与应用,包括所依托的协议,可以被Nagios直接监控而不需要额外的支持。
与之相对,私有服务如果没有某些中间件做代理Nagios是无法监控的。主机上的私有服务比如说CPU负荷、内存占用率、磁盘利用率、当前登录用户、进程信息等。这些私有服务或属性不能暴露给外部客户。这样就要在这些被监控的主机上安装一些中间件做代理来取得此类信息。更多有关在不同类型主机上的私有服务的信息可以查阅如下文档:
监控Windows主机
监控Netware服务器
监控Linux/Unix机器
提示
偶尔发现有些私有服务和应用的信息可以通过SNMP来做监控。SNMP代理可以让远程监控系统提取一些有用信息。更多有关SNMP来监控服务信息的内容可以查阅一下监控交换机和路由器。
注意
如下内容假定你已经按照快速安装指南安装好Nagios系统。如下的配置样例对象可以参考安装包里的commands.cfg和localhost.cfg两个配置文件。
4.12.2. 监控服务的插件
当需要对一些应用、服务或协议进行监控时,可能已经有一个用于监控的插件了。Nagios的官方插件包带有插件可以用于监控很多种服务与协议,在插件包的contrib/目录下有很多可用的插件。而且在NagiosExchange.org网站上有许多额外的其他人写的插件可以试试看!
如果不巧没有找到要监控所需的插件,可以自己写一个。插件写起来很容易,不要怕它,读一读插件的开发这篇文档吧。
下面将会领略一下你迟早会用到的一些基础服务,每个服务都可以在Nagios插件包里找到对应的检测插件。下面就开始了…
4.12.3. 创建一个主机对象定义
在监控一个服务之前需要先定义一个服务要绑定的主机对象。可以把主机对象定义放在cfg_file域所指向的任何一个对象配置文件里或是放在由cfg_dir域所指向的任何一个目录下的文件里。如果已经定义过一个主机对象了,可以跳过这一步。
在本例中,假定你想在一台主机上监控许多种服务,把这台主机命名为remotehost。可以把主机对象定义放在它自己的配置文件里或加到一个已有的对象定义文件里。这里有个remotehost对象的定义象是这样:
define host{
use generic-host ; Inherit default values from a template
host_name remotehost ; The name we’re giving to this host
alias Some Remote Host ; A longer name associated with the host
address 192.168.1.50 ; IP address of the host
hostgroups allhosts ; Host groups this host is associated with
}
现在可以有了一个可被监控的主机对象了,之后就可以定义所要监控的服务。有了主机对象定义,服务对象定义可以加在任何一个对象配置文件的任何一个位置里。
4.12.4. 创建服务对象定义
在Nagios里每个要监控的服务都必须给出一个绑定在刚才定义出的主机上的一个服务对象。可以把服务对象放在任何一个由cfg_file域指向的对象配置文件里或是放在cfg_dir域所指向的目录下。
下面会给出一些要监控的样例服务(HTTP、FTP等)的对象定义。
4.12.5. 监控HTTP
有时不管是你或是其他人需要监控一个Web服务器。check_http插件就是做这件事的。插件可以透过HTTP协议并监控响应时间、错误代码、返回页面里的字符串、服务器证书和更多的东西。
在commands.cfg文件里包含有一个使用check_http插件的命令定义。象是这样的:
define command{
name check_http
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}
对于监控在remotehost机器上的HTTP服务的简单的服务对象定义会象是这样的:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description HTTP
check_command check_http
}
这个服务对象定义将会监控位于remotehost机器上的HTTP服务。如果WEB服务在10秒内没有响应将产生警报或是返回了一个HTTP的错误码(403、404等)也会产生警报。这是最基本的监控要求,很简单,不是么?
提示
对于更高级的监控,可以在命令行下手工运行check_http插件,带着–help参数,看看这个插件有什么选项。–help语法对于本文档所涉及的插件都适用。
下面看看对HTTP服务更高级的监控。这个服务定义将会检测如下内容:在URI(/download/index.php)里是否包含有”latest-version.tar.gz”字符串。如果没有指定字符串,或是URI非法也或许是在5秒内没有响应的话,它将产生一个错误。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description Product Download Link
check_command check_http!-u /download/index.php -t 5 -s “latest-version.tar.gz”
}
4.12.6. 监控FTP
监控FTP服务可以用check_ftp插件。在commands.cfg文件里包含有一个使用check_ftp插件的命令样例,象是这样:
define command{
command_name check_ftp
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}
对remotehost主机上的FTP服务的简单监控的例子象是这样:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description FTP
check_command check_ftp
}
这个服务对象定义将会在FTP服务器10秒内不响应时给出一个警报。
下面对FTP做些高级监控。下面这个服务将检测FTP服务器绑定在remotehost主机上的1023端口的FTP服务。如果在5秒内没有响应或是服务里没有回应字符串”Pure-FTPd [TLS]“时将会产生警报。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description Special FTP
check_command check_ftp!-p 1023 -t 5 -e “Pure-FTPd [TLS]”
}
4.12.7. 监控SSH
监控SSH服务可以用check_ssh插件。在commands.cfg文件里包含在使用check_ssh插件有样例命令,象是这样:
define command{
command_name check_ssh
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}
监控remotehost上的SSH服务的简单例子象是这样:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SSH
check_command check_ssh
}
这个服务对象定义将会在SSH服务10秒内不响应时给出一个警报。
下面对SSH做些高级监控。下面这个服务将检测SSH服务,如果5秒内不响应或是服务器版本串里没有能匹配字符串”OpenSSH_4.2″时产生一个警报。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SSH Version Check
check_command check_ssh!-t 5 -r “OpenSSH_4.2″
}
4.12.8. 监控SMTP
用check_smtp插件来监控EMail服务。commands.cfg文件里包含有使用check_smtp插件的命令,象是这样:
define command{
command_name check_smtp
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
}
监控remotehost上的SMTP服务的简单例子象是这样:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SMTP
check_command check_smtp
}
这个服务对象定义将会在SMTP服务器10秒内不响应时给出一个警报。
下面是更高级的监控。下面这个服务将检测SMTP服务,如果服务在5少内不响应或是返回串里没有包含字符串”mygreatmailserver.com”时将产生一个警报。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SMTP Response Check
check_command check_smtp!-t 5 -e “mygreatmailserver.com”
}
4.12.9. 监控POP3
用check_pop插件来监控EMail的POP3服务。commands.cfg文件里包含有使用check_pop插件的命令,象是这样:
define command{
command_name check_pop
command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
}
监控remotehost上的POP3服务的简单例子象是这样:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description POP3
check_command check_pop
}
这个服务对象定义将会在POP3服务10秒内不响应时给出一个警报。
下面是更高级监控。下面这个服务将检测POP3服务,当服务在5秒内不响应或是返回串里没有包含字符串”mygreatmailserver.com”时将产生一个警报。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description POP3 Response Check
check_command check_pop!-t 5 -e “mygreatmailserver.com”
}
4.12.10. 监控IMAP
用check_imap插件可以监控EMail的IMAP4服务。commands.cfg文件里包含有使用check_imap插件的命令,象是这样:
define command{
command_name check_imap
command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
}
监控remotehost上的IMAP服务的简单例子象是这样:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description IMAP
check_command check_imap
}
这个服务对象定义将在IMAP服务10秒内不响应时给出一个警报。
下面是更高级监控。下面这个服务将检测IAMP4服务,当服务在5秒内不响应或是返回串里没有包含有”mygreatmailserver.com”时将产生一个警报。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description IMAP4 Response Check
check_command check_imap!-t 5 -e “mygreatmailserver.com”
}
—————————————————————————————————-
第 5 章 准备配置Nagios
5.1. 配置概览
5.1.1. 介绍
在你开始监控网络与系统之前要有同个不同配置文件需要创建和编辑。耐心点,配置Nagios可能是要花些时间特别是对于那些初次使用者。弄清其机理所有的将它们搞定绝对是值得的。
注意
样本配置文件在安装时放在了/usr/local/nagios/etc/目录下,如果你是按照前面给出的快速安装指南来做的话。
5.1.2. 主配置文件
主配置文件包括了一系列的设置,它们会影响Nagios守护进程。不仅是Nagios守护进程要使用主配置文件,CGIs程序组模块也需要,因此,主配置文件是你开始学习配置其他文件的基础。
有关主配置文件的文档在这里。
5.1.3. 资源配置文件
资源文件可以保存用户自定义的宏。资源文件的一个主要用处是用于保存一些敏感的配置信息如系统口令等不能让CGIs程序模块获取到的东西。
你可以在主配置文件中设置resource_file指向一个或是多个资源文件。
5.1.4. 对象定义文件
对象定义文件用于定义主机、服务、主机组、服务组、联系人、联系人组、命令等等。这些将定义你需要监控什么并将如何监控它们。
你可以在主配置文件里设置cfg_file加上cfg_dir来指向一个或是多个对象定义文件。
有关对象定义和与其他间关系的文档是这里。
5.1.5. CGI配置文件
CGI配置文件包含了一系列的设置,它们会影响CGIs程序模块。还有一些保存在主配置文件之中,因此CGI程序会知道你是如何配置的Nagios并且在哪里保存了对象定义。
有关CGI配置文件的文档在这里。
5.2. 主配置文件选项
注意
当创建或编辑配置文件时,要遵守如下要求:
以符号’#'开头的行将视为注释不做处理;
变量必须是新起的一行 - 变量之前不能有空格符;
变量名是大小写敏感的;
提示
样例配置文件(/usr/local/nagios/etc/nagios.cfg)已经安装到位,如果你是按照快速安装指南来操作的话。
5.2.1. 配置文件的位置
主配置文件一般(实际是固定的)是nagios.cfg,存放位置在/usr/local/nagios/etc/目录里(--如果是rpm包来安装,应该是在/etc/nagios/)。
5.2.2. 配置文件里的变量
下面将对每个主配置文件里的选项进行说明…
表 5.1. 日志文件
格式: log_file=<file_name>
样例: log_file=/usr/local/nagios/var/nagios.log
这个变量用于设定Nagios在何处创建其日志文件。它应该是你主配置文件里面的第一个变量,当Nagios找到你配置文件并发现配置里有错误时会向该文件中写入错误信息。如果你使能了日志回滚,Nagios将在每小时、每天、每周或每月对日志进行回滚。
表 5.2. 对象配置文件
格式: cfg_file=<file_name>
样例: cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
cfg_file=/usr/local/nagios/etc/commands.cfg
该变量用于指定一个包含有将用于Nagios监控对象的对象配置文件。对象配置文件中包括有主机、主机组、联系人、联系人组、服务、命令等等对象的定义。配置信息可以切分为多个文件并且用cfg_file=语句来指向每个待处理的配置文件。
表 5.3. 对象配置目录
格式: cfg_dir=<directory_name>
样例: cfg_dir=/usr/local/nagios/etc/commands
cfg_dir=/usr/local/nagios/etc/services
cfg_dir=/usr/local/nagios/etc/hosts
该变量用于指定一个目录,目录里包含有将用于Nagios监控对象的对象配置文件。所有的在这个目录下的且以.cfg为扩展名的文件将被作为配置文件来处理。另外,Nagios将会递归该目录下的子目录并处理其子目录下的全部配置文件。你可以把配置放入不同的目录并且用cfg_dir=语句来指向每个待处理的目录。
表 5.4. 对象缓冲文件
格式: object_cache_file=<file_name>
样例: object_cache_file=/usr/local/nagios/var/objects.cache
该变量用于指定一个用于缓冲对象定义复本的文件存放位置。对象缓冲将在每次Nagios的启动和重启时和使用CGI模块时被创建或重建。它试图加快在CGI里的配置缓冲并使得你在编辑对象配置文件时可以让正在运行的Nagios不影响CGI的显示输出。
表 5.5. 预缓冲对象文件
格式: precached_object_file=<file_name>
样例: precached_object_file=/usr/local/nagios/var/objects.precache
该变量用于指定一个用于指定一个用于预处理、预缓冲 This directive is used to specify a file in which a pre-processed, pre-cached copy of 对象定义复本的文件存放位置。在大型或复杂Nagios安装模式下这个文件可用于显着地减少Nagios的启动时间。如何加快启动的更多信息可以查看这个内容。
表 5.6. 资源文件
格式: resource_file=<file_name>
样例: resource_file=/usr/local/nagios/etc/resource.cfg
该变量用于指定一个可选的包含有$USERn$宏定义的可选资源文件。$USERn$宏在存放用户名、口令及通用的命令定义内容(如目录路径)时非常有用。CGIs模块将不会试图读取资源文件,所以你可以限定这权文件权限(600或660)来保护敏感信息。你可以在主配置文件里用resource_file语句来加入多个资源文件-Nagios将会处理它们。如何定义$USERn$宏参见样例resource.cfg文件,它放在Nagios发行包的sample-config/子目录下。
表 5.7. 临时文件
格式: temp_file=<file_name>
样例: temp_file=/usr/local/nagios/var/nagios.tmp
该变量用于指定一个临时文件,Nagios将在更新注释数据、状态数据等时周期性地创建它。该文件不再需要时会删除它。
表 5.8. 临时路径
格式: temp_path=<dir_name>
样例: temp_path=/tmp
这个变量是一个目录,该目录是块飞地,在监控过程中用于创建临时文件。你应在该目录内运行tmpwatch或类似的工具程序以删除早于24小时的文件(这是个垃圾文件存放地)。
表 5.9. 状态文件
格式: status_file=<file_name>
样例: status_file=/usr/local/nagios/var/status.dat
这个变量指向一个文件,文件被Nagios用于保存当前状态、注释和宕机信息。CGI模块也会用这个文件以通过Web接口来显示当前被监控的状态,CGI模块必须要有这个文件的读取权限以使工作正常。在Nagios停机或在重启动时将会删除并重建该文件。
表 5.10. 状态文件更新间隔
格式: status_update_interval=<seconds>
样例: status_update_interval=15
这个变量设置了Nagios更新状态文件的速度(秒为单位),最小更新间隔是1秒。
表 5.11. Nagios用户
格式: nagios_user=<username/UID>
样例: nagios_user=nagios
该变量指定了Nagios进程使用哪个用户运行。当程序启动完成并开始监控对象之前,Nagios将切换自己的权限并使用该用户权限运行。你可以指定用户或是UID名。
表 5.12. Nagios组
格式: nagios_group=<groupname/GID>
样例: nagios_group=nagios
该变量用于指定Nagios使用哪个用户组运行。当程序启动完成并开始监控对象之前,Nagios将切换自己的权限并以该用户组权限运行。你可以拽定用户组或GID名。
表 5.13. 通知选项
格式: enable_notifications=<0/1>
样例: enable_notifications=1
该选项决定了Nagios在初始化启动或重启动时是否要送出通知。如果这个选项不使能,Nagios将不会向任何主机或服务送出通知。注意,如果你打开了状态保持选项,Nagios在其启动和重启时将忽略此设置并用这个选项的最近的一个设置(已经保存在状态保
最后更新:2017-01-04 22:34:31