Je souhaite vérifier l'état de santé d'Azure lui-même à partir de Azure status pour surveiller les services dans Azure. Cependant, les notifications push ne me le disent pas, j'ai donc fait une demande pour explorer RSS et notifier Hipchat.
J'ai entendu dire que l'analyseur de flux est bon pour lire RSS avec python, donc je vais l'utiliser. hipchat frappe juste l'api de repos en utilisant un jeton dans la salle. Pour diverses raisons, l'accès se fait via un proxy, je l'ai donc configuré un peu.
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)
S'il n'y a rien, faites une instruction if afin qu'il ne soit pas notifié.
Soit dit en passant, hipchat peut également être publié au format html, mais sachez que @all et les mentions ne fonctionneront pas si tel est le cas.
Quand j'ai notifié Hipchat, j'ai pensé qu'il serait pratique de l'ouvrir dès qu'il y aurait un lien dans état Azure, mais si je faisais cela, le format serait différent. Je dois donc le poster deux fois.
Après cela, cron le script créé toutes les heures.
00 * * * * python /home/hoge/azure_status_notificator.py
l'a fait.
Étant donné que le RSS n'est généralement visualisé que depuis des flux ou des lecteurs, c'était une bonne occasion de savoir quel type de données n structure le flux circule réellement. Il est difficile de vérifier si le flux ne circule pas réellement, car c'est comme un schéma RSS.
De plus, lors de l'utilisation du cloud, ai-je accidentellement déposé uniquement la mienne et cette instance? Ou c'est un échec d'Azure lui-même, il faut l'isoler et le considérer.
À propos, plan de support Azure est approprié, il est donc question de «payer de l'argent». En attendant un support complet, le prix est raisonnable.
Je me suis demandé si je devais le limiter aux services que j'utilise ou AZ.