zabbix 경고 발생시 Backlog 과제 자동 기표

소개



Backlog를 사용하고 있습니까?
보기 쉽고 팀에서의 과제 관리/티켓 관리에 편리하네요.
무료 테두리라도 1 프로젝트, 100MB, 10명까지 이용할 수 있으므로 어느 정도 사용할 수 있습니다.

가타야 zabbix만으로는 경고에 코멘트를 붙일 정도.
통상은 경고 발생시의 담당자 결정, 대응 상황의 쉐어, 클로징을 하고 싶을까 생각하기 때문에, 이것으로는 부족인가.
이에 대해서는 zabbix 경보 발생시 Backlog 과제를 기표하여 늘어뜨리지 않는 상황을 만듭니다.
원래 대응 불필요한 경고는 통지하지 않도록, 제대로 설정해야 합니다.

※동작 확인 환경
CentOS Linux release 7.4.1708
파이썬 2.7.5
zabbix-server 3.0.12

설치/설정



Backlog 준비



이미 Backlog 공간, 프로젝트가 있다고 가정합니다.

프로젝트 ID 확인



프로젝트 소유자 권한으로 프로젝트 설정을 엽니다.
URL 끝에 ?project.id=XXXX 라는 표시가 있어야 합니다. 이것이 프로젝트 ID입니다.

알람용 타입 생성



이어서 프로젝트 설정 → 종별에서 경보용 종별을 작성합니다.

생성 후 경고 유형을 엽니다. URL에 issueType.id=XXXXX이어야 합니다. 이것은 유형 ID입니다.

게시용 사용자, APIKey 게시



zabbix 게시물을 위한 사용자를 추가합니다. 알림 메일을 받고 싶은 휴대 주소 등이 좋습니다.
사용자 이름을 zabbix, 아이콘도 등록하면 그럴듯해집니다.

휴대 주소로의 메일 통지는 과제의 「추가・갱신」시, 「자신이 등록한 것만」, 라고 해 두면 불필요한 메일을 억제할 수 있을 것입니다. 통지를 받고 싶은 분은 「모든 과제를 수신」으로.

마지막으로 투고용 유저로 APIKey를 발행해 삼가해 둡니다.

서버 설정



모듈 준비



Python의 Requests 모듈을 사용합니다.
# pip install requests

파이썬 스크립트



다음과 같은 스크립트를/usr/lib/zabbix/alertscripts/아래에 둡니다.
zabbix 사용자를 소유하고 실행 권한을 부여하십시오.

alermpost.py
#!/bin/python
# coding: utf-8
import requests
import sys

def addissue(summary,description,serverity):
    url = "https://(space).backlog.com/api/v2/issues"
    payload={
        'apiKey'      : '(APIKey)',
        'projectId'   : '(プロジェクトID)',
        'issueTypeId' : '(種別ID)',
        'priorityId'  : serverity,
        'summary'     : summary,
        'description' : description,
    }
    r = requests.post(url, params=payload)
    print(r.text)

args = sys.argv
summary     = '【' + args[1] + '】' + args[2]
description = args[4]

if args[3] == 'Information':
    severity = 4
elif args[3] == 'Warning':
    severity = 4
elif args[3] == 'Average':
    severity = 3
else:
    severity = 2

addissue(summary, description, severity)

스크립트에도 쓰여 있습니다만 Backlog 과제의 중요도에 대해서, 만일 이하로 했습니다.
이 근처는 좋아합니다.


zabbix Severity(심각도)
Backlog 문제 심각도


(정보) Information
낮음 (4)

(경고) Warning
낮음 (4)

(가벼운 장애) Average
중간 (3)

(기타)
높음 (2)


zabbix 설정



새롭게 액션을 작성합니다.
  • 실행 내용 유형 : 원격 명령
  • 대상 목록 : 현재 호스트
  • 다음으로 실행 : Zabbix 서버
  • 명령 : 다음과 같이
  • /usr/lib/zabbix/alertscripts/alermpost.py "{TRIGGER.STATUS}" "{TRIGGER.NAME}" "{TRIGGER.SEVERITY}" "{HOST.NAME1} {ITEM.NAME1} {ITEM.KEY1} {ITEM.VALUE1}"
    



    동작



    경고 발생 시 과제가 기표되었으며 프로젝트 멤버에게 이메일이 통보되었습니다.
    필요에 따라 담당자를 결정하여 장애 복구에 해당하거나 "대응하지 않음"으로 "완료"가 되어 운용을 결정하십시오.



    무사히 동작하면 zabbix 메일 통지를 중지해도 좋을지도 모릅니다.

    미래



    꽤 거칠기 때문에 앞으로 다음과 같은 일을하고 싶네요.
  • 본문의 내용을 인간에게 알기 쉬운 문장으로 한다
  • 대량 경보의 스로틀 링
  • 경고 내용에 따라 카테고리를 자동으로 설정합니다

  • 경고의 운용 관리 이러한 방향에는 Slack등이 자주(잘) 사용됩니다만, Backlog도 좋습니다.

    좋은 웹페이지 즐겨찾기