728x90
반응형
몇 가지 삽질 끝에 Nagios에서 문제 발생시 SMS를 발송하는 방법에 대해 정리한 문서입니다.
Nagios를 사용하시는 분들에게 저와 같이 삽질하지 않고 한방에 해결하시기 바랍니다.
1. /usr/local/etc/nagios/commands.cfg 수정
SMS 수신을 위한 명령(Command) 객체를 다음과 같이 추가합니다.
# SMS 발송을 위한 명령
위와 같이 php로도 쉘 스크립트 부럽지 않게 쉘 명령으로 수행할 수 있도록 작성할 수 있습니다.
MS-SQL 2005을 이용하여 SMS를 발송하는 솔루션을 이용하였었는데, PHP에서 FreeTDS 이용시, /usr/local/etc/freetds.conf 파일에서 버전을 8.0 으로 수정을 해야 제대로 접속이 되더군요. 이것 때문에 freetds 디버깅도 해보고 쌩 난리를 쳤었네요. -_-; 이글을 보시는 분들은 이런 실수를 하지 마시길...
2. /usr/local/etc/nagios/templates.cfg 수정
연락처 템플릿을 추가합니다.
3. /usr/local/etc/nagios/contacts.cfg 수정
관리자 연락처를 수정합니다.
4. /usr/local/etc/nagios/templates.cfg 수정
host 템플릿이든 serivce 템플릿에 SMS를 수신하는 관리자 그룹을 추가하던가,
기존의 관리자 그룹에 앞서 추가한 관리자 연락처를 추가합니다.
이상입니다.
성공하시길~
Nagios를 사용하시는 분들에게 저와 같이 삽질하지 않고 한방에 해결하시기 바랍니다.
1. /usr/local/etc/nagios/commands.cfg 수정
SMS 수신을 위한 명령(Command) 객체를 다음과 같이 추가합니다.
# SMS 발송을 위한 명령
define command{ command_name notify-by-sms command_line $USER1$/sms.php $CONTACTPAGER$ "$NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" }상단의 $USER1, $CONTACTPAGER$, $NOTIFICATIONTYPE$ 등은 Nagios에서 미리 정의된 매크로 상수입니다.
- $USER1$ - Nagios Command 실행 경로
- $CONTACTPAGER$ - 관리자 핸드폰 번호
- $NOTIFICATIONTYPE$ - 알림 형태 : PROBLEM, ...
- $HOSTALIAS$ - 문제가 발생한 서버의 별명
- $SERVICEDESC$ - 문제가 발생한 서버의 서비스의 이름
- $SERVICESTATE$ - 현재 서비스의 상태(WARNING, CRITICAL, OK, ...)
sms.php는 다음과 같이 작성합니다.
#!/usr/local/bin/php -q
위와 같이 php로도 쉘 스크립트 부럽지 않게 쉘 명령으로 수행할 수 있도록 작성할 수 있습니다.
MS-SQL 2005을 이용하여 SMS를 발송하는 솔루션을 이용하였었는데, PHP에서 FreeTDS 이용시, /usr/local/etc/freetds.conf 파일에서 버전을 8.0 으로 수정을 해야 제대로 접속이 되더군요. 이것 때문에 freetds 디버깅도 해보고 쌩 난리를 쳤었네요. -_-; 이글을 보시는 분들은 이런 실수를 하지 마시길...
2. /usr/local/etc/nagios/templates.cfg 수정
연락처 템플릿을 추가합니다.
define contact{ name sms-contact ; SMS 발송을 위한 연락처 템플릿 service_notification_period 24x7 host_notification_period 24x7 service_notification_options c,r ; CRITICAL 및 RECOVERY 시에만 받음 host_notification_options d,u,r ; HOST DOWN, HOST UNKNOWN, HOST RECOVERY 시에만 받음 service_notification_commands notify-by-sms ; 서비스 장애시 앞서 만든 notify-by-sms 객체를 이용하여 알림(sms) host_notification_commands notify-by-sms ; 서버 장애시 앞서 만든 notify-by-sms 객체를 이용하여 알림(sms) register 0 }
3. /usr/local/etc/nagios/contacts.cfg 수정
관리자 연락처를 수정합니다.
define contact{ contact_name sms_admin1 use sms-contact ; 앞서 만든 SMS 발송을 위한 연락처 템플릿 이용 alias SMS Admin 1 email admin@hbesthee.com pager 0123456789 }
4. /usr/local/etc/nagios/templates.cfg 수정
host 템플릿이든 serivce 템플릿에 SMS를 수신하는 관리자 그룹을 추가하던가,
기존의 관리자 그룹에 앞서 추가한 관리자 연락처를 추가합니다.
이상입니다.
성공하시길~
'Linux,Unix,BSD' 카테고리의 다른 글
qmail 가동중 25번 port(smtp) 응답이 느릴때 해결법 (0) | 2009.05.07 |
---|---|
vi 명령어 모음... (5) | 2009.03.07 |
rsync로 백업할 때, 생각해볼 문제. (0) | 2008.07.24 |
잃어버린 root 비밀번호 복구하기 (0) | 2008.07.24 |
crontab (0) | 2008.06.30 |