Accédez à l'API New Relic en Python pour obtenir l'état du serveur

Contexte

Nouvelle relique · Surveillance des performances des applications Web ・ Suivi des performances de l'infrastructure Web ・ Surveillance / alerte de vie et de mort C'est un outil de surveillance de serveur pratique ** qui vous permet de le faire, et vous pouvez voir leurs statistiques sur le site New Relic. http://qiita.com/y_uuki/items/dd4fce78b1bc32b64600 Cependant, je devais constamment regarder le site pour connaître l'état du serveur en temps réel, j'ai donc décidé d'utiliser l'API de NewRelic pour obtenir l'état du serveur. Il semble que l'API de NewRelic est préparée dans des langages tels que Python, Ruby et NodeJS, donc pour le moment, j'ai essayé d'utiliser newrelic-api de Python.

Installez newrelic-api

Il peut être installé avec pip ou easy_install.

easy_install newrelic-api

Obtenir la clé API

Obtention de la clé API en tant qu'utilisateur administrateur. ・ Article de référence http://qiita.com/CkReal/items/23a08cd8088876761911

Obtenez l'état de chaque serveur avec newrelic-api

J'ai obtenu le statut du serveur en me référant au document officiel de l'API NewRelic. http://new-relic-api.readthedocs.org/en/develop/ref/servers.html

Lorsque vous accédez à l'API, vous pouvez obtenir l'id, le nom, l'état, etc. de chaque serveur dans un tableau, donc cette fois j'ai obtenu la valeur de ** "health_status" qui indique l'état du serveur par la couleur ** qu'il contient.

health_status
vert: normal
jaune: Avertissement
rouge: Danger
gris: aucun rapport

Obtenir un tableau

{u'links': {u'server.alert_policy': u'/v2/alert_policies/{alert_policy_id}'},
 u'servers': [{u'account_id': #{newrelic_account_id},
   u'health_status': u'green',
   u'host': #{newrelic_host},
   u'id': #{server_id},
   u'last_reported_at': u'2016-01-28T07:22:06+00:00',
   u'links': {u'alert_policy': 205236},
   u'name': #{server_name},
   u'reporting': True,
   u'summary': {u'cpu': 0.06,
    u'cpu_stolen': 0.0,
    u'disk_io': 0.0,
    u'fullest_disk': 63.2,
    u'fullest_disk_free': 7547000000,
    u'memory': 63.7,
    u'memory_total': 1043333120,
    u'memory_used': 664797184}},
...
}]}

Exemple de code

Python


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

from newrelic_api import servers

health_statuses = []
states = servers.Servers(#{API-key}).list()["servers"]
    for state in states:
        if state.has_key("health_status"):
            health_statuses.append(state["health_status"])

    print health_statues

Résultat de sortie

J'ai pu obtenir le statut de chacun des 9 serveurs

[u'green', u'green', u'green', u'green', u'green', u'green', u'green', u'green', u'orange']

newrelic.png

Résumé

J'ai pu obtenir l'état du serveur en accédant à l'API de New Relic Sur cette base, je voudrais l'appliquer, par exemple en acquérant l'état du serveur à intervalles réguliers et en émettant une alerte localement lorsqu'un état dangereux se produit.

Recommended Posts

Accédez à l'API New Relic en Python pour obtenir l'état du serveur
Appuyez sur REST en Python pour obtenir des données de New Relic
Frappez l'API Sesami en Python
Accédez à l'API Web en Python
Comment obtenir les fichiers dans le dossier [Python]
Accédez à l'API Firebase Dynamic Links en Python
Exemple de code pour obtenir oauth_token et oauth_token_secret de l'API Twitter en Python 2.7
Hit API de Mastodon en Python
Comment obtenir le nom de la variable lui-même en python
Comment obtenir le nombre de chiffres en Python
Obtenez votre fréquence cardiaque à partir de l'API fitbit en Python!
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Appelez l'API github en python pour obtenir des informations sur la demande d'extraction
Obtenir l'API arXiv en Python
[Python] Accédez à l'API Google Translation
Obtenez le chemin du bureau en Python
Obtenez le chemin du script en Python
Dans la commande python, python pointe vers python3.8
Comment obtenir la version Python
Accédez à l'API Etherpad-lite avec Python
Obtenez le chemin du bureau en Python
Obtenez le nom d'hôte en Python
Accéder à l'API Twitter avec Python
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
Les débutants en Python utilisent l'API non officielle de Google Play Music pour jouer de la musique
Essayez d'utiliser l'API Wunderlist en Python
Essayez d'utiliser l'API Kraken avec Python
Tweet à l'aide de l'API Twitter en Python
Obtenez les données de l'API Google Fit en Python
Comment obtenir stacktrace en python
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Obtenir la liste de codes EDINET en Python
Comment obtenir la différence de date et d'heure en secondes avec Python
Accédez à l'API de classement Rakuten pour enregistrer le classement de n'importe quelle catégorie au format CSV
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Comment utiliser la bibliothèque C en Python
Connectez-vous à un serveur distant avec SSH
[Python] Récupérez les fichiers dans le dossier avec Python
Obtenez la météo à Osaka via l'API Web (python)
Obtenons les informations Wiki en utilisant l'API MediaWiki
Récupérer l'appelant d'une fonction en Python
Essayez d'utiliser l'API BitFlyer Ligntning en Python
Obtenir l'URL de l'image à l'aide de l'API Flickr en Python
Pour remplacer dynamiquement la méthode suivante en python
Conseils pour accéder à l'API ATND avec Python
Obtenez le titre de la fenêtre du système X Window en Python
Conseils pour rédiger un aplatissement concis en python
Obtenir des pointeurs vers des membres de structure dans les ctypes Python
Exemple de serveur d'API qui reçoit JSON dans Golang
Que faire pour obtenir une feuille de calcul Google en Python
[Python] Je vais télécharger FTP sur le serveur FTP.
Connectez-vous avec json en utilisant pygogo.
Je veux afficher la progression en Python!
Essayez d'utiliser l'API DropBox Core avec Python
Utilisez os.getenv pour obtenir des variables d'environnement en Python
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
Pour envoyer automatiquement des e-mails avec des pièces jointes à l'aide de l'API Gmail en Python
Continuez à récupérer des tweets contenant des mots-clés spécifiques à l'aide de l'API Streaming en Python