最近需要用Nagios监控几台Linux服务器,经过搜索学习,我成功的实现了这个目标。以下是整个安装流程和需要注意的事项。
首先,需要明确的知道Nagios是如何监控LINUX服务器的。他们是通过NRPE addon实现交流的。NRPE addon包括了两个部分,nrpe_check和nrpe_daemon。nrpe_check在nagios服务器端,通过ssl连接到nrpe_daemon上,远程的调用linux服务器上的nrpe plugin上定义的命令,就可以获得远程服务器的各种信息。
因此,Nagios服务器端需要安装 Nrpe addon , 而远程服务器需要安装 nrpe addon和 nrpe plugin。
我的nagios服务器和远程服务器都是Debian
以下是客户端(远程服务器)的安装:
1. 首先是预安装相关的程序
sudo apt-get install make gcc g++
sudo apt-get install libssl-dev
sudo apt-get install snmpd
sudo apt-get install snmp scli tkmib
sudo useradd -p nagios *PASSWORD*
2. 然后就可以下载最新的nagios plugin文件,并进行解压
cd /downloads
sudo wget http://internode.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.**.tar.gz (** = latest version)
sudo tar -xzvf nagios-plugins-1.4.**.tar.gz
cd nagios-plugins-1.4.13
检测库文件,测试,安装
sudo ./configure
sudo make
sudo make install
他的默认安装路径是 /local/usr/nagios, 也可以第一步手动确认 ./confgure �Cprefix=/usr/local/nagios
安装完以后的访问权限是 root root 权限,我们需要把它改成nagios nagios
sudo chown -R nagios:nagios /usr/local/nagios/
最后我们需要安装xineted,并将nrpe作为他的一个服务运行。
sudo apt-get install xinetd
3. 客户端安装nagios addon
下载解压
cd /usr/src
sudo wget http://waix.dl.sourceforge.net/sourceforge/nagios/nrpe-2.**.tar.gz (** = latest version)
sudo tar -xzvf nrpe-2.**.tar.gz
cd nrpe-2.12
安装
需要值得一提的是第一步 sudo ./configure, 我发现2.14, 2.15版本的文件无法通过解析,会报错ssl library无法找到,解决的办法如下:
#dpkg -L libssl-dev (他会显示我的libssl.so位于/usr/lib/x86_64_linux_gnu)
#./confiugre --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64_linux_gnu
如果是低版本的例如2.12,直接运行以下命令即可
sudo ./configure
sudo make all
sudo make install-plugin
sudo make install-daemon
sudp make install-daemon-config
sudo make install-xinetd
至此安装完毕。下一步是修改配置文件
4.修改客户端的nrpe文件
因为我们是通过xinetd来运行nrpe,所以授权的nagios服务器是在/etc/xinetd.d/nrpe中配置,如果没有安装xinetd,那么端口和运行的服务器则是在/usr/local/nagios/etc/nrpe.cfg中配置
sudo vim /etc/xinetd.d/nrpe
and add to only_from= your Nagios server IP
记得将5666端口加入services
sudo echo "nrpe 5666/tcp #NRPE" >> /etc/services (MUST run as ROOT).
5 最后我们还得来配置/usr/local/nagios/etc/nrpe.cfg文件。前面说了,端口号和服务器不用在这里配置了,但是nrpe daemon调用的命令还需要在这里定义。
这些命令都可以手动的执行看看是否工作
最后需要重启xinetd服务
sudo /etc/init.d/xinetd restart
测试一下,这里可以看出nrpe是独立运行还是基于xineted的服务运行的
sudo netstat -l | grep nrpe
ps aux | grep nrpe
netstat -nap | grep nrpe
Linux 客户端的安装基本完成了
6. Nagios主机上不需要daemon,所以安装plugin即可,第3步的操作再运行一次
sudo wget http://waix.dl.sourceforge.net/sourceforge/nagios/nrpe-2.**.tar.gz (** = latest version)
sudo tar -xzvf nrpe-2.**.tar.gz
cd nrpe-2.12
sudo ./configure
sudo make all
sudo make install-plugin
接下来是配置nrpe
首先看看nrpe的语法
/usr/local/nagios/libexec/check_nrpe -h|less
看了语法,我们就可以在对应的command.cfg里面进行配置了
比如说 vim /etc/nagios3/command.cfg
$USER1$是在/etc/nagios3/resources.cfg里面定义的路径
相当于调用 /usr/local/nagios/libexec/check_nrpe
-H 是当前指向的远程服务器
-c 是执行命令远程服务器上的命令
$ARG1$ 是命令的名字
这里定义之后,在对应的server.cfg中就可以配置services
例如,sudo vim /etc/nagios3/objects/au_servers.cfg
check_nrpe!check_swap
check_nrpe是在nagios服务器/etc/nagios3/command.cfg中定义的, !表示远程调用daemon的程序,check_swap则是第6步在远程服务器上/usr/local/nagios/bin/nrpe定义的
另外一个例子是
这个command会远程的调用window 客户端 (nsclient++)里面定义的CheckMem以便查看物理内存
具体的语法定义如下
http://www.nsclient.org/nscp/wiki/CheckSystem/checkMem
To be Continued...