* 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'
'unix and linux' 카테고리의 다른 글
export 사용시 유의사항 (1) | 2014.02.10 |
---|---|
nagios 스크립트 실행 코드 (0) | 2013.10.02 |
운영 스크립트 - #!/bin/sh 과 #!/usr/bin/env bash (0) | 2013.07.01 |
리눅스 커널 3.0.0-rc1 commit (0) | 2011.05.31 |
netstat를 완전 믿지 말자. (0) | 2010.08.18 |