nagios ncsa 연동

unix and linux 2013. 10. 2. 12:09

* nagios에서 nsca 연동 간단 설명 


이 자료가 가장 좋은 자료인 듯 하다. 

http://nagios.sourceforge.net/download/contrib/documentation/misc/NSCA_Setup.pdf


만약 이해가 잘 안가거나 debug 설명을 더 보고 싶으면 소스 보는 것을 추천한다. 그다지 어렵지 않다. 

nsca 디렉토리의 홈을 /app/nsca라고 가정했다.



1. nsca 데몬을 찾아 저장한 후, inet또는 xinet 데몬으로 설치한다.

http://sourceforge.net/projects/nagios/files/nsca-2.x/
이 안에 readme 파일이 있는데. 그대로 따라하면 된다. 


2. 서버 설정

nsca.cfg 파일

만약 debug=1로 수정후 nsca 데몬 재시작하면 보다 많은 정보를 확인할 수 있다.

syslog로 debug 출력이 되어 있는데. 기본 디폴트로 /var/log/message에 로그를 저장하도록 되어 있다. 

그리고 command_file 설정을 한후, 테스트를 진행한다. 

command_file=/app/nsca/var/rw/nagios.cmd 


nagios.cmd 파일은 일종의 pipe file이고, 추후 nagios 연동시 이 파일을 통해서 전달하도록 되어 있으므로, 신경을 잘써야 한다. 테스트하다가 이런 로그를 볼 수 있다.(Could not create external command file '/app/nsca/var/rw/nagios.cmd' as named pipe: (17) -> File exists.  If this file already exists and you are sure that another copy of Nagios is not running, you should delete this file.)




3. 클라이언트 테스트

클라테스트 정보는  

nagios홈/libexec/eventhandlers/distributed-monitoring>$ cat submit_check_result_via_nsca 

printfcmd="/usr/bin/printf"


NscaBin="/usr/local/nagios/libexec/send_nsca"

NscaCfg="/usr/local/nagios/etc/send_nsca.cfg"

NagiosHost="nagioshost"


# Fire the data off to the NSCA daemon using the send_nsca script

$printfcmd "%s\t%s\t%s\t%s\n" "$1" "$2" "$3" "$4" | $NscaBin -H $NagiosHost -c $NscaCfg



테스트 예제


>$ printf "%s\t%s\s\t%s\t%s\n" NSCA-Client-Host-Name TestMessage 0 "test" | /app/nsca/bin/send_nsca -H NSCA-Host-Name -c /app/nsca/etc/send_nsca.cfg


4. 서버 로그 확인

syslog에 로그가 제대로 남는지 확인. nsca client와 nsca server간의 통신 확인. command 파일에 nsca client가 전달한 데이터가 남음.


---- 여기까지가 nsca client와 nsca server간의 통신 체크 확인정도까지 완료.


5. nagios 연동


commands.cfg 파일 수정


define command{

    command_name check_dummy

    command_line $USER1$/check_dummy $ARG1$

}




services.cfg

# nsca 

define service{

name passive-service

use generic-service

register 0

active_checks_enabled 0

passive_checks_enabled 1

flap_detection_enabled 1

is_volatile 0

check_period 24x7

max_check_attempts 1

normal_check_interval 5

retry_check_interval 1

check_freshness   0

contact_groups admins

check_command check_dummy!0

notification_interval 120

notification_period 24x7

notification_options w,u,c,r 

stalking_options w,c,u

}


# nsca - client

define service{

use passive-service

service_description 서버이름:case1

hostgroup_name work-servers

}




* 트러블 슈팅 정보

1. Could not open alternate dump file '/app/nsca/var/rw/nsca.dump' for appending


1) /app/nsca/var/rw/ read write하게 할 수있도록 권한 부여 

2) touch  /touch /app/nsca/var/rw/nagios.cmd


성공시 아래와 같은 로그 출력(syslog)

SERVICE CHECK -> Host Name: 'NSCA-Client-Host-Name', Service Description: 'TestMessage', Return Code: '0', Output: 'test'





Posted by '김용환'
,