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.
Il peut être installé avec pip ou easy_install.
easy_install newrelic-api
Obtention de la clé API en tant qu'utilisateur administrateur. ・ Article de référence http://qiita.com/CkReal/items/23a08cd8088876761911
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.
{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}},
...
}]}
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
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']
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.