Nagios 서버와 클라이언트를 구축했다면, 이제 텔래그램을 통해서 Nagios 알람을 받는 방법을 알아봅시다.
이전 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 |