본문 바로가기
Programming/Performance

Performance, Nagios NRPE Addon(Remote Host)

by ★용호★ 2014. 10. 31.


NRPE


  • NRPE는 원격 Linux/Unix 머신에서 Nagios 명령 수행을 허용하도록 디자인 된 Nagios의 Addon이다.

  • SSH를 사용하여 원격 호스트의 정보를 가져오는 것이 보안적인 면에서는 더 우수하지만 모니터링 하는 쪽과 원격 장비 모두 큰 부하가 생긴다. NRPE는 그에 비해 부하가 적기 때문에 많이 사용되고 있다.

  • 모니터링 서버에 NRPE가 상주하고 SSL로 연결된 원격 호스트에도 NRPE 데몬이 돌고 있어서 check_nrpe 플러그인을 사용하여 접근할 수 있다.

  • NRPE 데몬은 기본적으로 원격 호스트에 Nagios plugin이 설치되어 있어야 한다. 플러그인들이 없으면 NRPE 데몬은 어떤 것도 모니터링 할 수 없다.



  • NRPE에 대한 문서는 NRPE를 다운 받은 파일의 압축을 해제하면 docs 디렉토리 안에 pdf 형식의 파일로 존재한다.






원격 호스트에서의 작업



  • 유저 생성

$ useradd nagios $ passwd nagios


  • Nagios Plugin 설치
$ wget http://www.nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz
$ tar xvf nagios-plugins-2.0.3.tar.gz
$ cd nagios-plugins-2.0.3
$ ./configure 
$ make 
$ sudo make install

$ chown nagios.nagios /usr/local/nagios
$ chown -R nagios.nagios /usr/local/nagios/libexec

$ sudo apt-get install xinetd


  • NRPE 설치

$ wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
$ tar xvf nrpe-2.15.tar.gz
$ cd nrpe-2.15
$ ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
$ make all
$ make install-plugin
$ make install-daemon
$ make install-daemon-config
$ make install-xinetd


  • SSL Library 오류 시 --with-ssl-lib 추가
  • configure 수행 시 SSL Header 오류가 발생할 경우 libssl-dev 설치

$ sudo apt-get install libssl-dev


  • /etc/xinetd.d/nrpe 파일 수정 (모니터링 서버의 ip 설정)
only_from = 127.0.0.1 <nagios_ip_address>


  • /etc/services 파일 수정 (NRPE 포트 설정)

nrpe            5666/tcp            # NRPE


  • 방화벽 해제 후 서비스 재시작

$ sudo ufw allow 5666/tcp
$ service xinetd restart


  • NRPE 데몬 확인
netstat -at | grep nrpe




모니터링 서버에서의 작업


  • Nagios Plugins 설치

$ wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz $ tar xvf nrpe-2.15.tar.gz $ cd nrpe-2.15 $ ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu --prefix=/etc/nagios3 # apt-get install nagios3 명령으로 나기오스를 설치 한 경우 경로 지정이 필요하므로 --prefix로 지정 $ make all $ make install-plugin


  • nrpe가 설치된 호스트로 접속 테스트

$ nagios폴더/libexec/check_nrpe -H 호스트IP
NRPE v2.15

  • 나기오스 명령 추가(/etc/nagios3/commands.cfg)

define command{     command_name check_nrpe     command_line /etc/nagios3/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$     }


  • 호스트와 서비스 정의 생성(/etc/nagios3/conf.d/???.cfg)

define host{         name              linux-box         use             generic-host         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         } define host{         use linux-box         host_name remotehost         alias Ubuntu         address 192.168.0.1         }


define service{
use generic-service
host_name heli
service_description CPU Load
check_command check_nrpe!check_load
}


  • 설정 검사 후 Nagios 재시작
$ nagios3 -v /etc/nagios3/nagios.cfg
$ service nagios3 restart



  • http://localhost/nagios3 접속


  • heli : 원격지 호스트, NRPE 정상적으로 설치
  • localhost : 로컬 호스트, NRPE 필요 없음
  • poly : 원격지 호스트, NRPE 설치 안함
    • NRPE가 정상적으로 설치 된 경우 설정한 플러그인에 대한 응답을 정상적으로 받아서 OK 상태가 되었고, NRPE가 설치 되지 않은 경우에는 플러그인에 대한 응답을 받을 수 없으므로 CRITICAL 상태가 되었다.


댓글