Script Python qui explore le flux RSS du statut Azure et le publie sur Hipchat

Aperçu

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 essayé de le faire

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.

azure.png

Résumé

É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.

Recommended Posts

Script Python qui explore le flux RSS du statut Azure et le publie sur Hipchat
Un mémorandum pour exécuter un script python dans un fichier bat
Que contient cette variable (lorsque le script Python est en cours d'exécution)
Fileinput, un module qui facilite l'écriture de programmes de filtrage de type Perl en Python
Un script qui compte jusqu'à 5 secondes et s'arrête dans le Python de Blender
Essayez de le faire avec GUI, PyQt en Python
Un script Python qui enregistre une image de presse-papiers (GTK) dans un fichier.
Créons un script qui s'enregistre avec Ideone.com en Python.
Un moyen standard de développer et de distribuer des packages en Python
Créez le code qui renvoie "A et prétendant B" en python
Orienté objet en langage C: "○ ✕ game" a été refacturé et porté en Python
Comment écrire une classe méta qui prend en charge à la fois python2 et python3
Un ensemble de fichiers de script qui font wordcloud avec Python3
Essayez simplement de recevoir un webhook avec ngrok et Python
Un script python qui convertit les données Oracle Database en csv
[C / C ++] Passez la valeur calculée en C / C ++ à une fonction python pour exécuter le processus et utilisez cette valeur en C / C ++.
Une histoire qui facilite l'estimation de la surface habitable à l'aide d'Elasticsearch et de Python
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
Script Python qui peut vérifier l'état du serveur à partir du navigateur
Un moyen simple de visualiser le temps pris en Python et un moyen plus intelligent de l'améliorer
traitement pour utiliser les données notMNIST en Python (et essayé de les classer)
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Écrivez un script dans Shell et Python pour vous avertir dans Slack lorsque le processus est terminé
Comment passer des arguments à un script Python dans SPSS Modeler Batch
Expressions régulières faciles et solides à apprendre en Python
Lisez le binaire big endian en Python et convertissez-le en ndarray
J'ai écrit une fonction pour charger le script d'extension Git en Python
J'ai écrit un script pour extraire les liens de pages Web en Python
Je veux créer un fichier pip et le refléter dans le menu fixe
[Python] Le rôle de l'astérisque devant la variable. Divisez la valeur d'entrée et affectez-la à une variable
Un script qui renvoie 0, 1 attaché au premier Python prime
Un guide rapide de PyFlink qui combine Apache Flink et Python
Un script python qui supprime les fichiers ._DS_Store et ._ * créés sur Mac
[Python / Jupyter] Traduisez le commentaire du programme copié dans le presse-papiers et insérez-le dans une nouvelle cellule.
J'ai créé un script POST pour créer un problème sur Github et l'enregistrer dans le projet
Un script qui récupère les tweets avec Python, les enregistre dans un fichier externe et effectue une analyse morphologique.
Comment saisir une chaîne de caractères en Python et la sortir telle quelle ou dans la direction opposée.
J'ai créé une application Web en Python qui convertit Markdown en HTML
J'ai créé un bot Discord en Python qui se traduit quand il réagit
Comment mettre un espace demi-largeur avant les lettres et les chiffres en Python.
Connectez-vous à postgreSQL depuis Python et utilisez des procédures stockées dans une boucle.
Comment rendre le nom du conteneur accessible dans Docker en tant que sous-domaine
J'ai essayé de développer un formateur qui génère des journaux Python en JSON
Un programme python qui redimensionne une vidéo et la transforme en image
J'ai créé un script en python pour convertir des fichiers .md au format Scrapbox
Comment arrêter le programme jusqu'à une date et une heure spécifiques en python
Épingler le répertoire actuel au répertoire de script en Python
Exemple de script pour piéger les signaux en Python
Exécuter l'interpréteur Python dans le script
Comment obtenir stacktrace en python
Comment utiliser is et == en Python
Comment exécuter des scripts Maya Python
Comment générer un code QR et un code à barres en Python et le lire normalement ou en temps réel avec OpenCV
Un programme Python qui vérifie si un contenu a été mis à jour et git valide et pousse vers GitLab s'il a été mis à jour.
Notez que cibuildwheel construit python bwheel (y compris le module C ++) en masse avec CI et le télécharge sur PyPI
J'ai créé un système qui décide automatiquement de s'exécuter demain avec Python et l'ajoute à Google Agenda.
[Python] J'ai créé un script qui coupe et colle automatiquement les fichiers du PC local sur un SSD externe.
Apprentissage amélioré 35 python Développement local, attachez un lien vers myModule et importez-le.