ZABBIX : 실패 정보를 mattermost에 씁니다.

5351 단어 zabbixMattermost

목적



zabbix에서 오류가 발생하면 Mattermost에 오류 정보 (ITEM.VALUE)를 씁니다.

했던 일



Zabbix에서 장애가 발생하면 Zabbix의 액션 기능으로 원격 명령 (webhook)을 실행하고 다음과 같이 Mattermost에 장애 정보를 씁니다.


사전에 있는 것


  • zabbix (이 환경은 3.0)
  • Mattermost

  • 작업 흐름


  • Mattermost의 "내향 웹 후크"설정
  • zabbix의 item/trigger 설정
  • zabbix 액션 설정
  • zabbix 서버 측에서 스크립트 설정

  • 작업 흐름 (세부 사항)



    Mattermost의 "내향 웹 훅" 설정



    Mattermost 내에서 "통합 기능" 선택





    "내향 웹 훅"을 선택





    내향 웹 훅 추가를 선택





    필요한 정보를 기재 (중요한 것은 어디의 채널에 써낼까(여기에서는 channel=alert))





    설정 완료하면 아래와 같이 TOKEN을 포함한 액세스 URL이 나오므로 삼가해 둡니다.




  • TOKEN 둥근 보이지만, 어차피 곧바로 스크랩하기 때문에 싣고 있습니다 (싣는 편이 샘플 PGM도 알기 쉽다고 해)

  • zabbix의 item/trigger 설정



    할애합니다. 뭔가 경고가 올라가도록 설정합니다.

    zabbix 액션 설정



    액션 부분은 이름만 설정합니다(여기에서는 "send mattermost")





    작업의 실행 조건도 기본값으로 유지됩니다.





    액션 실행 내용


  • 실행 내용 유형 = 원격 명령
  • 대상 목록 = 현재 호스트
  • 유형 = 사용자 정의 스크립트
  • 다음으로 실행 = Zabbix 서버
  • 명령 =/usr/local/bin/send_mattermost.sh '{ITEM.VALUE}'



  • zabbix 서버 측에서 스크립트 설정



    어려운 프로그램이지만 일단 움직이기 때문에 용서를 ...

    /usr/local/bin/send_mattermost.sh
    #!/usr/bin/php
    <?php
    $json = json_encode( array( "text" => preg_replace( "/^[^ ]* /", "Alert ", implode( " ", $argv))));
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,"http://192.168.10.189:8065/hooks/53yph6toibgyjmqn8ie7aawb3r");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
    curl_exec ($ch);
    curl_close ($ch);
    

    요약



    슬랙을 사용했지만 폐쇄 환경에서 chat을 사용하고 싶어서 Mattermost를 설치했습니다.
    처음 사용해 보았지만 Mattermost는 좋은 느낌일지도.
    앞으로 어떻게 할지 모르겠지만, Mattermost에서 클로즈하고 중얼거리면 대상의 장애 이벤트의 코멘트 기재해 클로즈 하는 것의 만들고 싶다.

    좋은 웹페이지 즐겨찾기