본문 바로가기
Programming/Performance

Performance, Nagios에 pnp4nagios 적용

by ★용호★ 2014. 11. 12.

다운로드



설치


$ tar xvfz pnp4nagios-0.6.24.tar.gz

$ ./configure

*** Configuration summary for pnp4nagios-0.6.24 30-07-2014 ***
 General Options:
 -------------------------         -------------------
 Nagios user/group:                nagios nagios
 Install directory:                /usr/local/pnp4nagios
 HTML Dir:                         /usr/local/pnp4nagios/share
 Config Dir:                       /usr/local/pnp4nagios/etc
 Location of rrdtool binary:       /usr/bin/rrdtool Version 1.4.8
 RRDs Perl Modules:                *** NOT FOUND ***
 RRD Files stored in:              /usr/local/pnp4nagios/var/perfdata
 process_perfdata.pl Logfile:      /usr/local/pnp4nagios/var/perfdata.log
 Perfdata files (NPCD) stored in:  /usr/local/pnp4nagios/var/spool
 Web Interface Options:
 -------------------------         -------------------
 HTML URL:                         http://localhost/pnp4nagios
 Apache Config File:               /etc/httpd/conf.d/pnp4nagios.conf

 Review the options above for accuracy.  If they look okay,
 type 'make all' to compile.

 WARNING: The RRDs Perl Modules are not found on your system
          Using RRDs will speedup things in larger installations.

    RRDs Perl Modules 부분이 NOT FOUND 라서 이를 해결하려고 구글링 후 시도해봤는데 잘 안됐었다. 우선은 설치는 가능하므로 패쓰하긴 했는데 방법을 찾아봐야할 것 같다.


      $ make
      $ make install
      $ make install-webconf
      $ make install-config
      $ make isntall-init
      $ sudo service apache2 restart


      설정

      • /etc/nagios3/nagios.cfg 파일 수정

      process_performance_data=1
      enable_environment_macros=1
      host_perfdata_command=process-host-perfdata (remove comment)
      service_perfdata_command=process-service-perfdata (remove comment)
      


      • /etc/nagios3/commands.cfg 파일 수정

      define command {
            command_name    process-host-perfdata
            command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
      }
      
      
      define command {
            command_name    process-service-perfdata
            command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl
      }


      • /etc/nagios3/conf.d/templates.cfg 파일 수정

      (꼭 templates.cfg 파일이 없는 경우 생성해 주거나 용도에 맞는 .cfg 파일 안에 넣어주면 된다.)

      define host {
        name       host-pnp
        action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
        register   0
      }
      
      define service {
        name       srv-pnp
        action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
        register   0
      }

      위에서 정의한 host와 service를 그래프로 보여주고자하는 host와 service에 상속시켜주면 된다.

      나는 모든 경우에 다 보여주길 원하므로 generic-host와 generic-service가 해당 host와 service를 상속받도록 했다.


      • generic-host-nagios.cfg 파일 수정

      # Generic host definition template - This is NOT a real host, just a template!
      
      define host{
              use                             host-pnp
              name                            generic-host    ; The name of this host template
              notifications_enabled           1       ; Host notifications are enabled
              event_handler_enabled           1       ; Host event handler is enabled
              flap_detection_enabled          1       ; Flap detection is enabled
              failure_prediction_enabled      1       ; Failure prediction is enabled
              process_perf_data               1       ; Process performance data
              retain_status_information       1       ; Retain status information across program restarts
              retain_nonstatus_information    1       ; Retain non-status information across program restarts
                      check_command                   check-host-alive
                      max_check_attempts              10
                      notification_interval           0
                      notification_period             24x7
                      notification_options            d,u,r
                      contact_groups                  admins
              register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
              }
      
      


      • generic-service-nagios.cfg 파일 수정

      # generic service template definition
      define service{
              use                             srv-pnp
              name                            generic-service ; The 'name' of this service template
              active_checks_enabled           1       ; Active service checks are enabled
              passive_checks_enabled          1       ; Passive service checks are enabled/accepted
              parallelize_check               1       ; Active service checks should be parallelized (disabling this can lead to major performance problems)
              obsess_over_service             1       ; We should obsess over this service (if necessary)
              check_freshness                 0       ; Default is to NOT check service 'freshness'
              notifications_enabled           1       ; Service notifications are enabled
              event_handler_enabled           1       ; Service event handler is enabled
              flap_detection_enabled          1       ; Flap detection is enabled
              failure_prediction_enabled      1       ; Failure prediction is enabled
              process_perf_data               1       ; Process performance data
              retain_status_information       1       ; Retain status information across program restarts
              retain_nonstatus_information    1       ; Retain non-status information across program restarts
                      notification_interval           60              ; Only send notifications on status change by default.
                      is_volatile                     0
                      check_period                    24x7
                      normal_check_interval           5
                      retry_check_interval            1
                      max_check_attempts              4
                      notification_period             24x7
                      notification_options            w,u,c,r,f,s
                      contact_groups                  admins
              register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
              }


      아파치 설정

      설치는 완료 되었으나 해당 페이지로 접속을 해보면 404 에러가 발생한다.

      아파치에 연결 하는 작업을 해줘야 했다.


      ./configure를 했을 때 로그를 보면 아파치 설정 파일의 경로가 /etc/httpd/conf.d/pnp4nagios.conf 로 되어 있었는데 아파치 폴더로 해당 파일을 연결 시켜줘야 한다.




      /etc/apache2의 디렉토리 구조를 보면 현재 활성화되어 있는 설정 파일들이 conf-enabled 폴더에 링크 파일로 존재해 있는데 해당 파일은 conf-available 디렉토리에 위치해 있다. 그래서 나의 경우에는 pnp4nagios.conf파일을 conf-available로 옮겨와서 conf-enabled 디렉토리에 링크 파일을 만들어 사용했다.


      • /etc/apache2/conf-available 디렉토리



      • /etc/apache2/conf-enabled 디렉토리



      파일 셋팅이 완료 되었으면 아파치를 재시작 해준다.

      $ sudo service apache2 restart


      실행




      http://localhost/nagios3 으로 접속해서 services 항목을 보면 이전과는 달리 host들과 service들 이름 옆에 그래프 모양의 아이콘이 생긴 것을 볼 수 있다. 아이콘을 클릭해보면 그래프가 표시되지 않고 몇가지를 더 수행하라고 알려준다.





      먼저 Apache Rewrite Module이 활성화되어있지 않다면서 어떻게 하면 된다고 링크로 안내해주고 있다.

      $ a2enmod rewrite
      
      $ sudo service apache2 restart



      이후 이 페이지의 하단에 보면 Your environment passed all requirements. Remove or rename the /usr/local/pnp4nagios/share/install.php file now. 메세지를 볼 수 있는데 여기서 가리키는 경로의 파일이 현재 페이지를 출력해주는 php로 작성된 웹 페이지 파일이다.  설치와 관련된 페이지인데 설치를 완료 했으므로 install.php파일의 이름을 바꾸던가 제거를 하라는 메세지이다. 나는 그냥 이름만 바꿔줬다.

      $ sudo mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install_temp.php

      바꾸고 다시 http://localhost/pnp4nagios 로 접속해보면 그래프가 이쁘게 출력된다!





      참고 사이트

      http://wiki.as-online.net/index.php/Experts:Nagios_installation_-_pnp4nagios

      https://docs.pnp4nagios.org/pnp-0.6/install


      댓글