Nagios 란 네트워크와 관련된 문제를 관리하는 오픈 소스 프로그램으로, 컴퓨터 시스템과 네트워크를 모니터링하면서 문제가 발생하거나 해결된 경우 경보 메시지를 전송하는 것을 담당합니다.
Nagios 서버 하나를 통해 이용을 하다보면 사용하는 서버의 수가 늘어날수록 알림을 많이 받을 수도 있게 되는데요.
그러다보면 바로바로 확인해주지 않는 이상 메시지가 많이 쌓여 일일이 확인하기 어려워 질 수 있습니다.
또는 관리하는 사람이 다르거나 관리하는 부서가 다를 경우에도 굳이 여러 Nagios 서버를 쓰는것보다 한개 서버에서 각 텔레그램방으로 넘겨주는 방법이 있는데요.
우선 텔레그램 BotFarher 를 통해 봇을 생성 후 토큰값과 ChatID 를 따로 메모해두시기 바랍니다.
-
resource.cfg 파일에 USER 변수에 토큰값과 ChatID 설정
2. objects 폴더의 contacts.cfg 파일에 contact 정의와 contact_group 을 생성
3. objects 폴더의 commands.cfg 파일에 보내줄 텔레그램 설정
정의 명령 {
command_name notify-host-by-telegram
command_line /usr/local/bin/nagios_telegram.py –token 135792468:AAAAAAAAAAAAAAAAAAAAAA–BBBBBBBBBB –object_type host –contact “$USER2$” –notificationtype “$NOTIFICATIONTYPE$ ” –hoststate “$HOSTSTATE$” –hostname “$HOSTNAME$” –hostaddress “$HOSTADDRESS$” –output “$HOSTOUTPUT$”
}
정의 명령 {
command_name notify-service-by-telegram
command_line /usr/local /bin/nagios_telegram.py –token 135792468:AAAAAAAAAAAAAAAAAAAAAAA–BBBBBBBBBB –object_type 서비스 –contact “$USER2$” –notificationtype “$NOTIFICATIONTYPE$” –servicestate “$SERVICESTATE$” –hostname “$HOSTNAME$ ” –servicedesc “$SERVICEDESC$” –output “$SERVICEOUTPUT$”
}
정의 명령 {
command_name notify-host-by-telegram2
command_line /usr/local/bin/nagios_telegram.py –token 135792468:AAAAAAAAAAAAAAAAAAAAAA–BBBBBBBBBB –object_type host –contact “$USER4$” –notificationtype “$NOTIFICATIONTYPE$ ” –호스트상태 “$HOSTSTATE$” –호스트이름 “$HOSTNAME$” –호스트주소 “$HOSTADDRESS$” –출력 “$HOSTOUTPUT$”
}
명령 정의 {
command_name notify-service-by-telegram2
command_line /usr/local/bin/nagios_telegram.py –token 135792468:AAAAAAAAAAAAAAAAAAAAAA–BBBBBBBBBB –object_type 서비스 –contact “$USER4$” –notificationtype “$NOTIFICATIONTYPE$ ” –servicestate “$SERVICESTATE$” –hostname “$HOSTNAME$” –servicedesc “$SERVICEDESC$” –output “$SERVICEOUTPUT$”
}
- 사진의 픽셀 문제로 텍스트로 삽입하였습니다.
위 텍스트 값에서 보셔야 할 값은 –token 뒤에 오는 토큰값과 –object_type host –contact 뒤에 오는 “$USER” 값이며, 해당 토큰과 ChatID 값은 앞서 입력하신 resource.cfg 파일에 입력한 각 텔레그램방의 토큰값과 ChatID 를 고려하여 입력해주시면 됩니다.
텔레그램을 보내기 위한 define command 설정은 –object_type host 와 –object_type service 두개 모두 설정해주셔야 하기때문에 텔레그램방은 2개지만 define command 설정은 총 4개입니다.
4. 모니터링 설정을 위한 서버 cfg 파일 설정
cfg 파일에서 수정할 부분은 contact_groups 에서 앞서 설정하였던 각 텔레그램방으로 보내기 위한 group명만 바꿔서 설정해주시면 test로 설정한 cfg 파일은 1번 텔레그램방으로 , test2로 설정한 cfg파일은 2번 텔레그램방으로 알림이 발송됩니다.