[Zabbix] Slack Web Hook 설정

empty·2021년 4월 3일
0

ZABBIX

목록 보기
3/5

Zabbix 서버 환경설정

Slack으로 알람을 보내기위해서는 Zabbix 서버에서 Slack 스크립트를 생성해줘야 한다.

  1. AlertScriptsPath에 설정되어있는 경로 확인

    > vi /etc/zabbix/zabbix_server.conf
    
    514 AlertScriptsPath=/usr/lib/zabbix/alertscripts
  2. 알람 스크립트 생성

    • 2-1. 스크립트 생성

      > cd /usr/lib/zabbix/alertscripts
      > vi slack.sh
      
      #!/bin/sh
      
      webhook_url=$1
      message=$2
      
      curl -k -X POST -d "payload={\"text\":\"$message\"}" $webhook_url
    • 2-2. 권한 수정

      chmod 755 slack.sh

User에게 Slack 알람 설정

  1. User에 Slack 알람설정

    • 1-1. Users 클릭
    • 1-2. 알람받기를 원하는 유저 클릭
    • 1-3. Media에서 Slack 추가
  2. 채널의 Webhook URL 생성

    • 2-1. 앱 추가 클릭
    • 2-2. webhooks 검색
      • 'Incoming Webhooks'를 추가해준다.
    • 2-3. Slack에 추가 클릭
    • 2-4. 알람을 보낼 채널 선택 후 생성
    • 2-5. 웹후크 URL 복사

Slack Web hook 설정

  1. Media Type 설정

    • 1-1. Media Type 클릭
    • 1-2. Slack 클릭
    • 1-3. 스크립트 수정
    • 1-3-1. 코드의 내용은 다음과 같다.
    var req = new CurlHttpRequest();
    params = JSON.parse(value);
    req.AddHeader('Content-Type: application/x-www-form-urlencoded');
     
    Zabbix.Log(127, 'webhook request value='+value);
     
    req.Post('여기에 복사했던 Slack의 WebHook URL을 넣어주세요',
      'payload='+value
    );
     
    Zabbix.Log(127, 'response code: '+req.Status());
     
    return JSON.stringify({
      'tags': {
        'delivered': 'slack'
      }
    });

    URL을 붙여넣고 Apply

    • 1-4. 알람 테스트

      • 1-4-1. 테스트를 위한 Slack의 Parameters 수정

        • Name : attachments
          • Value : [{"blocks":[{"type":"section","text":{"type":"mrkdwn","text":"{ALERT.MESSAGE}"}}]
        • Name : text
      • 1-4-2. 'Media Type'의 맨 우측의 Test 클릭

        text에 원하는 텍스트 입력

      • 1-4-3. Slack에서 메시지 확인

      • 1-4-4. 'text' Parameters에 Value 입력

        • Name : text
          • Value : {ALERT.SUBJECT}\r\n{ALERT.MESSAGE}
  2. Action 설정

    • 2-1. 기본 Slack Action 활성화 ('Report problems to Zabbix administrators')


      • 기본적으로 Enabled에 체크가 빠져있는데 체크한다.
    • 2-2. Conditions 추가

      • 만약 Trigger의 레벨이 평균(Average)보다 같거나 높게 발생하면 Action을 발생시킨다.

이제 Zabbix에서 Average 이상의 Problem이 발생하면 Trigger가 Action을 발생시키고 Action에 연결되어있는 Slack Web Hook이 작동되어서 Slack으로 메시지를 보내게 된다. 바로 아래처럼 말이다.

위의 메시지는 Severity가 Information인데 메시지가 발송되었다. 잠시 테스트 목적으로 어떠한 Problem이 발생해도 Action을 발생시키게끔 설정한것이다.

0개의 댓글