Neues Relikt · Überwachung der Leistung von Webanwendungen ・ Leistungsüberwachung der Webinfrastruktur ・ Überwachung / Alarm von Leben und Tod Es ist ein praktisches Serverüberwachungstool **, mit dem Sie dies tun können und dessen Statistiken auf der New Relic-Site angezeigt werden. http://qiita.com/y_uuki/items/dd4fce78b1bc32b64600 Ich musste mich jedoch ständig auf der Site umsehen, um den Echtzeit-Serverstatus zu ermitteln. Daher entschied ich mich, die NewRelic-API zu verwenden, um den Serverstatus abzurufen. Es scheint, dass die API von NewRelic in jeder Sprache wie Python, Ruby, NodeJS vorbereitet ist. Daher habe ich vorerst versucht, Pythons newrelic-api zu verwenden.
Es kann mit pip oder easy_install installiert werden.
easy_install newrelic-api
Erhaltener API-Schlüssel als Administrator. ・ Referenzartikel http://qiita.com/CkReal/items/23a08cd8088876761911
Ich habe den Status des Servers anhand des offiziellen Dokuments der NewRelic API erhalten. http://new-relic-api.readthedocs.org/en/develop/ref/servers.html
Wenn Sie auf die API klicken, können Sie die ID, den Namen, den Status usw. jedes Servers in einem Array abrufen. Diesmal habe ich also den Wert ** "health_status" erhalten, der den Status des Servers anhand der ** Farbe darin angibt.
{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
Ich konnte den Status jedes der 9 Server abrufen
[u'green', u'green', u'green', u'green', u'green', u'green', u'green', u'green', u'orange']
Ich konnte den Status des Servers abrufen, indem ich auf die API von New Relic traf Auf dieser Grundlage möchte ich es anwenden, z. B. in regelmäßigen Abständen den Status des Servers abrufen und lokal eine Warnung ausgeben, wenn eine gefährliche Situation auftritt.
Recommended Posts