YUMSERV
article thumbnail
Published 2020. 5. 11. 21:44
Nagios 텔래그램 연동 MONITORING
반응형

 

Nagios 서버와 클라이언트를 구축했다면, 이제 텔래그램을 통해서 Nagios 알람을 받는 방법을 알아봅시다.

 

이전 Nagios 서버 구축과 클라이언트 구축 참고 글 아래 글 클릭

[LINUX/MONITORING] - Nagios 서버 구성

[LINUX/MONITORING] - Nagios 클라이언트 구성

 

 

** 텔래그램 연동

** Nagios 서버쪽에서 설치 진행

 

1. 텔래그램이 설치

$ wget -O /usr/local/bin/nagios_telegram.py https://raw.githubusercontent.com/pommi/telegram_nagios/master/telegram_nagios.py
$ chmod 755 /usr/local/bin/nagios_telegram.py
$ yum install python-pip
$ pip install twx.botapi

 

2. 텔레그램 Nagios 봇 만들기

botfather를 통해서 봇을 만들어주면 됩니다.

 

 

bot father를 통해서 봇을 새롭게 생성을 하게되면 HTTP_API 토큰값을 받을 수 있으며, 이 값을 통해서 nagios와 연동해 전송할 수 있습니다.

 

이제 Chat ID값을 알아보기 위해 아래와 같이 값을 확인해봅시다.

위에 t.me/ 로 시작하는 공개링크를 들어가게 되면 아래와 같이 봇을 시작할 수 있습니다.

봇을 시작하면 브라우저 입력창에 아래와 같이 입력합니다.

https://api.telegram.org/botHTTP_API값/getupdates

 

 

그 다음에 START 버튼을 클릭하게 되면 방금 전 들어갔던 url창으로 다시 접속하게 되면 Chat ID값을 확인할 수 있습니다.

 

 

여기서 id로 시작하는 부분이 이 봇과 저의 대한 대화의 Chat ID값입니다.

 

 

만약 봇과, 저, 뿐만아니라 그룹을 만들경우, 해당 봇을 초대해서 그룹을 만든 다음에, 위의 URL를 통해 새로 만들어진 그룹에 대한 Chat ID값을 받습니다. 그룹의 경우 id값이 -로 표기됩니다.

 

 

3. telegram 연동 설정파일 수정

$ cd /usr/local/nagios/etc/objects
$ vi contact.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
        }

define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 telegram
        }

 

$ vi commands.cfg
# 맨아래에 내용 추가
# 봇을 만들때 사용하던 HTTP_API값을 넣어줍니다.

define command {
  command_name     notify-host-by-telegram
  command_line     /usr/local/bin/nagios_telegram.py --token HTTP_API값 --object_type host --contact "$USER2$" --notificationtype "$NOTIFICATIONTYPE$" --hoststate "$HOSTSTATE$" --hostname "$HOSTNAME$" --hostaddress "$HOSTADDRESS$" --output "$HOSTOUTPUT$"
}
define command {
  command_name     notify-service-by-telegram
  command_line     /usr/local/bin/nagios_telegram.py --token HTTP_API값 --object_type service --contact "$USER2$" --notificationtype "$NOTIFICATIONTYPE$" --servicestate "$SERVICESTATE$" --hostname "$HOSTNAME$" --servicedesc "$SERVICEDESC$" --output "$SERVICEOUTPUT$"
}

 

$ cd /usr/local/nagios/etc/
$ vi resource.cfg
# 모든 내용 주석처리 후, 아래 내용 추가
# 봇을 만들때, ID값과, HTTP_API값을 추가해주면 됩니다.
$USER1$=/usr/local/nagios/libexec
$USER2$=ID값
$USER3$=HTTP_API값

 

텔래그램이 정상적으로 발송되는지 확인하기 위한 테스트

$ /usr/local/bin/nagios_telegram.py --token HTTP_API값 --object_type service --contact "ID값" --servicestate "OK" --hostname "test" --servicedesc "load" --output "OK - load average: 0.02 0.01 0.01

 

$ service nagios restart

 

정상적으로 발송되면 아래와 같이 오게 됩니다.

 

 

 

반응형

'MONITORING' 카테고리의 다른 글

NSClient++ 로 윈도우 서버 모니터링  (0) 2020.06.30
Nagios Plugin 활용  (0) 2020.05.12
Nagios 클라이언트 구성  (0) 2020.05.11
Nagios 서버 구성  (0) 2020.05.05
Zabbix 4.2 설치 및 설정  (0) 2019.06.01
profile

YUMSERV

@lena04301

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!