Nagios Alert을 Telegram을 통해 받는 방법
인프라 운영 관점에서 Nagios Alert을 Telegram을 통해 받는 방법의 목적, 적용 범위, 실행 전 확인할 항목을 정리한 기술 노트입니다.
핵심 요약
- 인프라 운영 기준으로 글의 목적과 적용 범위를 먼저 확인할 수 있게 정리했습니다.
- 원문의 명령어, 로그, 절차는 보존하고 운영자가 먼저 봐야 할 맥락을 앞쪽에 배치했습니다.
- 실행형 명령은 대상 환경, 권한, 백업 또는 롤백 경로를 확인한 뒤 적용하는 것을 전제로 합니다.
적용 범위
이 글은 인프라 운영 업무에서 Nagios Alert을 Telegram을 통해 받는 방법를 빠르게 검토하기 위한 운영 노트입니다. 실습이나 변경 작업은 각자의 랩/운영 환경 기준으로 값과 절차를 재확인한 뒤 진행합니다.
정리된 본문
Nagios는 시스템 및 네트워크 모니터링을 위한 오픈소스 도구입니다. Nagios에서는 알람 기능을 제공하여 특정 이벤트나 조건이 발생할 때 알림을 받을 수 있습니다. 이번에는 Nagios 알람을 Telegram을 통해 받는 방법을 설명해드리겠습니다.
Telegram bot 생성: 먼저, Telegram bot을 생성해야 합니다. Telegram bot을 생성하는 방법은 https://core.telegram.org/bots#3-how-do-i-create-a-bot 링크를 참고하시기 바랍니다.
Telegram bot token 확인: Telegram bot 생성 후, bot의 token을 확인합니다.
Telegram 그룹 ID 확인: 알람을 받을 Telegram 그룹의 ID를 확인합니다.
Telegram 알람 스크립트 다운로드: Nagios에서 Telegram 알람을 보내기 위한 스크립트를 다운로드합니다. 스크립트는 https://github.com/sbidy/nagios-telegram-bot 링크에서 다운로드할 수 있습니다.
스크립트 설정: 스크립트를 다운로드한 후, 파일을 열어 다음과 같이 설정합니다.
- Telegram bot token 입력: TOKEN 변수에 Telegram bot의 token을 입력합니다.
TOKEN="<YOUR_TELEGRAM_BOT_TOKEN>"
- Telegram 그룹 ID 입력: CHATID 변수에 알람을 받을 Telegram 그룹의 ID를 입력합니다.
CHATID="<YOUR_TELEGRAM_GROUP_ID>"
- Nagios 설정: Nagios에서 Telegram 알람을 받기 위해, 다음과 같은 설정을 해주어야 합니다.
- commands.cfg 파일 수정
아래와 같은 내용을 추가합니다.
define command {
command_name notify-host-by-telegram
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$HOSTOUTPUT$" | /usr/bin/telegram-send --stdin --config /etc/telegram-send.conf --format markdown --disable-web-page-preview --disable-notification --timeout 120 --chat_id $CONTACTPAGER$
}
define command {
command_name notify-service-by-telegram
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/telegram-send --stdin --config /etc/telegram-send.conf --format markdown --disable-web-page-preview --disable-notification --timeout 120 --chat_id $CONTACTPAGER$
}
- contacts.cfg 파일 수정
아래와 같은 내용을 추가합니다.
define contact {
contact_name telegram
alias Telegram
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-telegram
host_notification_commands notify-host-by-telegram
pager <YOUR_TELEGRAM_BOT_TOKEN>
}
- Nagios 재시작: Nagios 설정 파일을 수정한 후, Nagios를 재시작합니다.
위의 방법으로 Nagios 알람을 Telegram을 통해 받을 수 있습니다. 자세한 내용은 다음 링크에서 확인할 수 있습니다.
https://www.sbidy.com/2018/01/nagios-telegram-notifications/
운영 체크리스트
- 대상 OS, 버전, 네트워크 구간, 권한 범위가 현재 환경과 일치하는지 확인합니다.
- 운영 장비에서 실행하기 전 테스트 환경 또는 읽기 전용 명령으로 먼저 검증합니다.
- 설정 변경, 패키지 설치, 서비스 재시작이 포함되면 백업과 롤백 절차를 준비합니다.
실무 지원이 필요하다면
이 글의 내용을 실제 환경에 맞게 검증하거나 운영 절차로 정리해야 한다면, 인프라 운영 점검과 기술 문서화를 1회성 기술 리뷰 또는 짧은 운영 개선 스프린트로 도와드릴 수 있습니다.
- 대상 환경과 현재 증상을 기준으로 실행 전 체크리스트를 정리합니다.
- 명령어, 로그, 설정 변경이 필요한 경우 안전한 검증 순서와 롤백 포인트를 분리합니다.
- Nagios Alert을 Telegram을 통해 받는 방법와 연결된 작업을 보고서, Runbook, 자동화 초안 형태로 정리합니다.