Überwachung des SLA der geprüften Services von Centreon
Etwas Kurioses, das sich je nach den Umständen als nützlich erweisen kann, ist die Kenntnis des SLA eines Dienstes, den wir derzeit in unseren Centreons überwachen. Es kann auch für die Überwachung auf Geschäftsebene konzipiert werden, um Einblick in Ihre Verfügbarkeit zu geben.
Wie wir wissen, Centreon speichert seine Metriken und Zustände in einer MariaDB-Datenbank, wir können ganz einfach mittels MySQL-Abfragen in Echtzeit oder im % Zustand eines in Centreon überwachten Dienstes nachsehen. Wir können wissen, wie lange (oder welchen Prozentsatz) er im Zustand OK, Warnung, Kritisch, Unknown oder in Wartung. Wozu? Brunnen, war, allgemein bekannt ist, dass wir den SLA jedes Hosts oder Dienstes in Centreon kennen können, aber eine andere Sache ist, ihn zu überwachen, um uns zu benachrichtigen, wenn er nicht eingehalten wird, oder zum Beispiel, um sie in unserem Business-Service über NagVis anzuzeigen.
Nicht schlecht, Um zu beginnen, wäre es interessant, wenn du MySQL-Abfragen nicht überwacht hast,, einen Blick darauf zu werfen Dieser Beitrag. Wenn du bereits das Skript hast, das Abfragen an MySQL-Datenbanken erlaubt, können wir die Befehle erstellen, die wir benötigen, und jeden mit seinem Abfragetyp. Da uns einige Befehle dienen werden, um das SLA von Hosts zu überwachen, andere von Diensten, andere werden uns das Ergebnis in Zeit liefern und andere in %, also je nachdem, was du brauchst, lasse ich dir hier bestimmte Möglichkeiten:
- SLA von Diensten OK in %:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT ROUND((SUMME(OKTimeScheduled)/($ARG1$ * 86400))*100,2) als Prozentsatz FROM log_archive_service, services WHERE log_archive_service.service_id = services.service_id AND Beschreibung = '$ARG2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY log_id DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA' -U %
- SLA von Diensten OK in Zeit:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT CONCAT(FLOOR(HOUR(sec_to_time(SUMME(OKTimeScheduled))) / 24), 'd_', MOD(HOUR(sec_to_time(SUMME(OKTimeScheduled))), 24), 'h_', MINUTE(sec_to_time(SUMME(OKTimeScheduled))), 'm') AS Zeit FROM log_archive_service, services WHERE log_archive_service.service_id = services.service_id AND Beschreibung = '$ARG2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY log_id DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA'
- SLA von Diensten Warnung in %:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT ROUND((SUMME(WARNINGTimeScheduled)/($ARG1$ * 86400))*100,2) als Prozentsatz FROM log_archive_service, services WHERE log_archive_service.service_id = services.service_id AND Beschreibung = '$ARG2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY log_id DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA' -U %
- SLA von Diensten Warnung in Zeit:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT CONCAT(FLOOR(HOUR(sec_to_time(SUMME(WARNINGTimeScheduled))) / 24), 'd_', MOD(HOUR(sec_to_time(SUMME(WARNINGTimeScheduled))), 24), 'h_', MINUTE(sec_to_time(SUMME(WARNINGTimeScheduled))), 'm') AS Zeit FROM log_archive_service, services WHERE log_archive_service.service_id = services.service_id AND Beschreibung = '$ARG2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY log_id DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA'
- SLA von Diensten Kritisch in %:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT ROUND((SUMME(CRITICALTimeScheduled)/($ARG1$ * 86400))*100,2) als Prozentsatz FROM log_archive_service, services WHERE log_archive_service.service_id = services.service_id AND Beschreibung = '$ARG2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY log_id DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA' -U %
- SLA von Diensten Kritisch in Zeit:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT CONCAT(FLOOR(HOUR(sec_to_time(SUMME(CRITICALTimeScheduled))) / 24), 'd_', MOD(HOUR(sec_to_time(SUMME(CRITICALTimeScheduled))), 24), 'h_', MINUTE(sec_to_time(SUMME(CRITICALTimeScheduled))), 'm') AS Zeit FROM log_archive_service, services WHERE log_archive_service.service_id = services.service_id AND Beschreibung = '$ARG2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY log_id DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA'
- SLA von Hosts Uptime in %:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT ROUND((SUMME(UPTimeScheduled)/($ARG1$ * 86400))*100,2) as porcentaje FROM hosts, log_archive_host WOBEI log_archive_host.host_id = hosts.host_id UND hosts.name = '$ARG 2$' UND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY date_end DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA' -U %
- SLA von Hosts Uptime in Zeit:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT CONCAT(FLOOR(HOUR(sec_to_time(SUMME(UPTimeScheduled))) / 24), 'd_', MOD(HOUR(sec_to_time(SUMME(UPTimeScheduled))), 24), 'h_', MINUTE(sec_to_time(SUMME(UPTimeScheduled))), 'm') AS Tiempo FROM hosts, log_archive_host WOBEI log_archive_host.host_id = hosts.host_id UND hosts.name = '$ARG 2$' UND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY date_end DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA'
- SLA der Hosts-Ausfallzeiten in %:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT ROUND((SUMME(GEPLANTE Ausfallzeit)/($ARG1$ * 86400))*100,2) as porcentaje FROM hosts, log_archive_host WOBEI log_archive_host.host_id = hosts.host_id UND hosts.name = '$ARG 2$' UND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY date_end DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA' -U %
- SLA der Hosts-Ausfallzeiten in Zeit:
$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT CONCAT(FLOOR(HOUR(sec_to_time(SUMME(GEPLANTE Ausfallzeit))) / 24), 'd_', MOD(HOUR(sec_to_time(SUMME(GEPLANTE Ausfallzeit))), 24), 'h_', MINUTE(sec_to_time(SUMME(GEPLANTE Ausfallzeit))), 'm') AS Tiempo FROM hosts, log_archive_host WOBEI log_archive_host.host_id = hosts.host_id UND hosts.name = '$ARG 2$' UND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ day) order BY date_end DESC" -H 127.0.0.1 -d centreon_storage -u centreon -p CENTREON_BENUTZER_PASSWORT -t 60 --no-querytime -T -g -l 'SLA'
Und jetzt fehlt nur noch, so viele Services zu erstellen, um das SLA zu überwachen, wie wir wollen, in diesem praktischen Beispiel, ich benutze sie nur, um das SLA der Dienstleistungen für Unternehmen, und daher, um sie in NagVis anzuzeigen. Als Argumente geben wir die Tage des SLA an, die wir sehen möchten, und im Service-Namen, den eindeutigen Namen eines zu überprüfenden Service.
Und wie immer, nach dem Speichern und Exportieren der Konfiguration, werden unsere SLA-Services bereit sein, um mit einer Abfrage in der Centreon-Datenbank die Zeit oder den Prozentsatz des Status eines Service zu überprüfen.
Und in NagVis, con el Gadget de RawNumbers podremos añadir los ítems SLA monitorizados y quedará más atractivo a la hora de movernos entre mapas y conocer el SLA que ofrece cualquier servicio, ideal para perfiles no 100% técnicos y quieran conocer el estado de su infraestructura en tiempo real.













































