Azure Status의 RSS를 닫고 Hipchat에 투고한 Python 스크립트

개요


Azure 감시 서비스를 위해 Azure status로부터 Azure 자체의 건강 상태를 확인하고 싶습니다.
다만, 푸시 알림에서 알려주지 않기 때문에 RSS를 닫고 Hipchat에 알리려고 만들었습니다.

해봤어요.


python으로 RSS를 읽으면 feedparser가 좋다고 하니 한번 써보세요.
힙합은 룸의 토큰으로restapi를 두드리는 것뿐입니다.
여러 가지 상황, 프록시를 사이에 둔 방문이기 때문에 살짝 설정해 주세요.
azure_status_notificator.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import requests
import json
import urllib2
import feedparser

proxies = {
        "http": "hoge:8080",
        "https": "hoge:8080",
}

def hipchat_post_to_room(room_id, auth_token, msg):
        global proxies
        data = {
                "color": "red",
                "message_format": "text",
                "message": msg,
        }
        headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
        request_url = "https://api.hipchat.com/v2/room/" + room_id + "/notification?auth_token=" + auth_token
        return requests.post(request_url, proxies=proxies, data=json.dumps(data), headers=headers)

def get_azure_status():
        global proxies
        proxy = urllib2.ProxyHandler(proxies)
        data = feedparser.parse("http://azure.microsoft.com/ja-jp/status/feed/", handlers = [proxy])
        res = ""
        for e in data["entries"]:
                if e:
                        res += e.summary_detail.value
        return res

if __name__ == "__main__":
        status = get_azure_status()

        room_id = "XXXXXX"
        auth_token="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

        if status:
                msg = "@all %s" % status
                hipchat_post_to_room(room_id, auth_token, msg)

만약 아무것도 없다면, 통지하지 않기 위해 사전에 if문장을 쓰세요.
참고로 힙합도 html 형식으로 투고할 수 있지만 이렇게 하면 @all과 메이크업 워터는 효과가 없기 때문에 주의해야 한다.
만약 Hipchat에 통지했다면 그중Azure status에서 링크가 있으면 바로 열기가 편리합니까?그렇게 생각하지만 이렇게 하면 형식이 다르기 때문에 두 번 투고할 필요가 있다.
이후 매 시간 정도 만들어진 스크립트를cron에 넣는다.

00 * * * * python /home/hoge/azure_status_notificator.py

완성했습니다.

총결산


RSS는 평소에feedly나 지도자에게만 보이기 때문에 실체로서feedly가 어떤 데이터 n구조로 흐르는지 알 수 있는 좋은 기회이다.
RSS 아키텍처?이런 물건은 실제로 원료를 보내지 않았다면 검증하기 어려웠다.
그리고 구름을 사용하면 자신의 이 실례만 실수로 떨어졌나
또는 Azure 자체의 장애는 구분하여 고려할 필요가 있다.
그나저나 Azure 지원 프로그램 그럴 것 같아서 돈 낸다는 말도 있어요.
충실한 지원을 기대하면 가격이 많이 떨어지지 않는다.
자신이 사용하는 서비스와 AZ에만 한정하는 것이 좋습니까?이렇게 생각하다.

좋은 웹페이지 즐겨찾기