Linux,Unix,BSD

Nagios에서 SMS 설정하기

채윤아빠 2008. 11. 18. 14:18
728x90
반응형
몇 가지 삽질 끝에 Nagios에서 문제 발생시 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를 수신하는 관리자 그룹을 추가하던가,
기존의 관리자 그룹에 앞서 추가한 관리자 연락처를 추가합니다.

이상입니다.

성공하시길~