Zabbix3.0에서 추가된 매개변수를 사용하여 Slack에 알림 보내기
Zabbix의 알림 알림은 이메일로 보내졌지만,
Slack에 방을 세우고 거기에 통지하도록 설정하기로 했다.
관련 리소스에 나열된 사이트에 따라 여러 가지를 시도했지만
생각대로 움직이지 않기 때문에 결국 스스로 조용한 결과를 메모해 두기로 했다.
전제
절차
경고 스크립트의 위치를 확인합니다.
[root@jumps alertscripts]# grep AlertScripts /etc/zabbix/zabbix_server.conf
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
Zabbix가 스크립트를 사용하여 경고를 알리도록 설정
Media Types
이미지처럼 설정.
Script Parameters에 대해서는 여기를 참조.
설정한 파라미터가 스크립트의 인수로서 건네받는 구조다. 다음과 같이 된다.
/usr/lib/zabbix/alertscripts/slack.sh {ALERT.SUBJECT} {ALERT.MESSAGE}
사용자 만들기
사용자 slack의 권한으로 보이는 범위의 경고는 Script : Slack을 이용하여 통지되도록 지정한다.
Send to
는 이번에는 사용되지 않지만, 필수인 것 같기 때문에 적당하게 Channel명을 넣는다.
Action 설정
각 호스트에서 체크하고 있는 Trigger 가 Hit 했을 때에 이 Action 가 움직인다.
즉, 무언가 경고가 발생했는지 어떻게 할지 지정합니다.
이번에는 사용자 : slack에게 메시지를 보내면 설정합니다.
슬랙 측 설정
zabbix 방 만들기
CHANNELS의 오른쪽에있는 +에서 깔끔하게 만들 수 있으므로 할애
Webhook 설정
Team Setting에서 적당히 찾아 포치 포치하고 다음과 같은 화면으로 진행하여 Webhook URL을 취득.
/usr/share/zabbix/favicon.ico
을 png로 이용. 조금 bokeh.
스크립트 작성
세세한 성형은 귀찮기 때문에, 통지될 때 색만 바뀌도록 지정한다.
색은 디폴트로 3개 준비되어 있는 것 같다.
*2016/03/30 추가
SNMP-Trap의 Message 안에 들어 있다"(더블 쿼트)가 JSON과 궁합 나쁜 것 같기 때문에 지우는 행을 추가했다
*2017/09/14 추가
slack 측의 변경이 있었던 것 같아서 사용할 수 없게 되었기 때문에, attachments의 쓰는 방법을 수정했다
script의 내용은 이쪽
htps : // 기주 b. 코 m / td 카오루 / 쌈 x
완성 된 알림이 기사의 맨 위에 표시되는 이미지.channel
는 Webhook URL에서 지정되었으므로 불필요했습니다.
덧붙여서, attachments
를 사용하지 않고 메세지를 소소로 내면,
기타
스크립트 안에서는 {ALERT.MESSAGE}
의 정형을 하고 있지 않으므로, Action 의 Default Message
를 편집해 필요한 정보만 취하도록 한다.
*2016/03/23 추가
참고까지 편집한 것도 붙여 둔다.
DefaultMessageDate: {EVENT.DATE} {EVENT.TIME}
Description: {TRIGGER.NAME}
Hostname: {HOST.NAME1}
IP address: {HOST.IP1}
Severity: {TRIGGER.SEVERITY}
Item values: {ITEM.NAME1}: {ITEM.VALUE1}
Original event ID: {EVENT.ID}
RecoveryMessageDate: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
Description: {TRIGGER.NAME}
Hostname: {HOST.NAME1}
IP address: {HOST.IP1}
Item values: {ITEM.NAME1}: {ITEM.VALUE1}
Original event ID: {EVENT.ID}
Zabbix 3.0이라면 Original event ID가 동일하지 않기 때문에 (?) RecoveryMessage가 사용되지 않는 것 같다. 수수께끼
관련 리소스
[root@jumps alertscripts]# grep AlertScripts /etc/zabbix/zabbix_server.conf
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/alertscripts/slack.sh {ALERT.SUBJECT} {ALERT.MESSAGE}
스크립트 안에서는
{ALERT.MESSAGE}
의 정형을 하고 있지 않으므로, Action 의 Default Message
를 편집해 필요한 정보만 취하도록 한다.*2016/03/23 추가
참고까지 편집한 것도 붙여 둔다.
DefaultMessage
Date: {EVENT.DATE} {EVENT.TIME}
Description: {TRIGGER.NAME}
Hostname: {HOST.NAME1}
IP address: {HOST.IP1}
Severity: {TRIGGER.SEVERITY}
Item values: {ITEM.NAME1}: {ITEM.VALUE1}
Original event ID: {EVENT.ID}
RecoveryMessage
Date: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
Description: {TRIGGER.NAME}
Hostname: {HOST.NAME1}
IP address: {HOST.IP1}
Item values: {ITEM.NAME1}: {ITEM.VALUE1}
Original event ID: {EVENT.ID}
Zabbix 3.0이라면 Original event ID가 동일하지 않기 때문에 (?) RecoveryMessage가 사용되지 않는 것 같다. 수수께끼
관련 리소스
Reference
이 문제에 관하여(Zabbix3.0에서 추가된 매개변수를 사용하여 Slack에 알림 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tdkaoru/items/7ad9e28cf592f10849df텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)