Launch service pages are live SaaS, web app, indie game, and home server public-context handoffs. No secrets.
Services SaaS Web App Game Homelab

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>"
  1. 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>
}
  1. Nagios 재시작: Nagios 설정 파일을 수정한 후, Nagios를 재시작합니다.

위의 방법으로 Nagios 알람을 Telegram을 통해 받을 수 있습니다. 자세한 내용은 다음 링크에서 확인할 수 있습니다.

https://www.sbidy.com/2018/01/nagios-telegram-notifications/

운영 체크리스트

  • 대상 OS, 버전, 네트워크 구간, 권한 범위가 현재 환경과 일치하는지 확인합니다.
  • 운영 장비에서 실행하기 전 테스트 환경 또는 읽기 전용 명령으로 먼저 검증합니다.
  • 설정 변경, 패키지 설치, 서비스 재시작이 포함되면 백업과 롤백 절차를 준비합니다.

실무 지원이 필요하다면

이 글의 내용을 실제 환경에 맞게 검증하거나 운영 절차로 정리해야 한다면, 인프라 운영 점검과 기술 문서화를 1회성 기술 리뷰 또는 짧은 운영 개선 스프린트로 도와드릴 수 있습니다.

  • 대상 환경과 현재 증상을 기준으로 실행 전 체크리스트를 정리합니다.
  • 명령어, 로그, 설정 변경이 필요한 경우 안전한 검증 순서와 롤백 포인트를 분리합니다.
  • Nagios Alert을 Telegram을 통해 받는 방법와 연결된 작업을 보고서, Runbook, 자동화 초안 형태로 정리합니다.

서비스 안내 보기 · 주제별 글 읽기 · 작업 문의

\n\n\n