FragranceM 发表于 2019-1-14 11:43:25

Nagios NRPE学习心得

  最近需要用Nagios监控几台Linux服务器,经过搜索学习,我成功的实现了这个目标。以下是整个安装流程和需要注意的事项。
  

  首先,需要明确的知道Nagios是如何监控LINUX服务器的。他们是通过NRPE addon实现交流的。NRPE addon包括了两个部分,nrpe_check和nrpe_daemon。nrpe_check在nagios服务器端,通过ssl连接到nrpe_daemon上,远程的调用linux服务器上的nrpe plugin上定义的命令,就可以获得远程服务器的各种信息。
http://blog.运维网.com/attachment/201309/132003678.png
  

  因此,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 –prefix=/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
  

http://blog.运维网.com/attachment/201309/133749411.png
  

  记得将5666端口加入services
  sudo echo "nrpe 5666/tcp #NRPE" >> /etc/services (MUST run as ROOT).
  

  5 最后我们还得来配置/usr/local/nagios/etc/nrpe.cfg文件。前面说了,端口号和服务器不用在这里配置了,但是nrpe daemon调用的命令还需要在这里定义。
  

  这些命令都可以手动的执行看看是否工作
http://blog.运维网.com/attachment/201309/134422345.png
  

  最后需要重启xinetd服务
  sudo /etc/init.d/xinetd restart
  

  测试一下,这里可以看出nrpe是独立运行还是基于xineted的服务运行的
  sudo netstat -l | grep nrpe
  ps aux | grep nrpe
  netstat -nap | grep nrpe
http://blog.运维网.com/attachment/201309/134843794.png
  

  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
http://blog.运维网.com/attachment/201309/141713213.png
  看了语法,我们就可以在对应的command.cfg里面进行配置了
  比如说 vim /etc/nagios3/command.cfg
http://blog.运维网.com/attachment/201309/143850201.png
  

  $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
  

http://blog.运维网.com/attachment/201309/145104922.png
  

  check_nrpe!check_swap
  check_nrpe是在nagios服务器/etc/nagios3/command.cfg中定义的, !表示远程调用daemon的程序,check_swap则是第6步在远程服务器上/usr/local/nagios/bin/nrpe定义的
  

  

  另外一个例子是
http://blog.运维网.com/attachment/201309/144542361.png
  这个command会远程的调用window 客户端 (nsclient++)里面定义的CheckMem以便查看物理内存
  具体的语法定义如下
  http://www.nsclient.org/nscp/wiki/CheckSystem/checkMem
  

  

  To be Continued...



页: [1]
查看完整版本: Nagios NRPE学习心得