Monitoritzant el SLA dels Hosts a Centreon

Aquest document el farem servir per conèixer el % de disponibilitat de les màquines monitoritzades a Centreon. Si disposem d'algun SLA (Acord de Nivell de Servei) complir, podrem mesurar-ho des de Centreon així com alertar-nos. Ah i si fas servir Grafana també ho veurem des d'aquí!

El que s'ha dit, Al final d'aquest post sabràs com mesurar el SLA que ofereix cada màquina que tinguis monitoritzada, hi associarem un Servei a cada Host de Centreon per conèixer la disponibilitat que ofereix aquesta màquina. Així tindràs també el seu històric i si t'interessés podries rebre alertes quan el % sigui menor del valor que t'interessi. I al final això, si utilitzeu Grafana per visualitzar la vostra monitorització de Centreon, us diré com visualitzo aquest dada, per si us aporta alguna cosa 🙂

Per cert, igual t'interessa, en aquest post vam veure alguna cosa similar, vam veure com obtenir el SLA dels Serveis de Centreon. Avui toca als Hosts.

Per poder mesurar el SLA necessitarem fer una consulta a la pròpia base de dades de Centreon, que està basada en MariaDB (o MySQL), así que si no lo tienes, antes necesitas revisar este post para poder hacer queries a cualquier BD de MySQL.

De tota manera, recordar que en Centreon el SLA se puede ver por GUI desde “Reporting” > “Availability” > “Hosts”. Nosotros obtendremos esos mismos valores, pero los monitorizaremos, eso es lo importante!

Comencem! Como siempre empezaremos por el Comando, una vez definamos este primer Comando, lo podremos usar tantas veces como necesitemos. En concreto este comando nos dará el % que ha estado una máquina en estado OK, el % de tiempo que ha estado bien. Como argumentos lleva (i) los días que quieres mirar atrás para calcular el SLA, 1 día, 7 dies, 30 dies, 365 dies… (ii) el nombre de la máquina, que realmente lo podría haber cogido con una variable de Centreon y no preguntarlo, (iii) el valor que quieres de Warning y (iv) el de Critical, para que te alerte, menos de esos valores serán considerados alerta. os dejo el Comando:

$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT ROUND((SUM(UPTimeScheduled)/($ARG1$ * 86400))*100,2) as porcentaje FROM hosts, log_archive_host  WHERE log_archive_host.host_id = hosts.host_id AND  hosts.name = '$ARG2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG1$ day)  order BY date_end DESC" -H DIRECCION_IP_CENTREON_CENTRAL -d centreon_storage -u 'USUARIO_MYSQL' -p 'CONTRASEÑA_MYSQL' -t 60 --no-querytime -g -l 'SLA' -U % -w $ARG3$: -c $ARG4$: -m 'El SLA es del' -n

Si en vez de % queréis ver el tiempo que ha estado levantada, podremos cambiar la query por algo como esto:

$CENTREONPLUGINS$/Nagios-Plugins/check_mysql_query.pl -q "SELECT CONCAT(FLOOR(HOUR(sec_to_time(SUM(UPTimeScheduled))) / 24), 'd_', MOD(HOUR(sec_to_time(SUM(UPTimeScheduled))), 24), 'h_', MINUTE(sec_to_time(SUM(UPTimeScheduled))), 'm') AS Tiempo FROM hosts, log_archive_host  WHERE log_archive_host.host_id = hosts.host_id AND  hosts.name = '$ARG2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG1$ day)  order BY date_end DESC" -H DIRECCION_IP_CENTREON_CENTRAL -d centreon_storage -u 'USUARIO_MYSQL' -p 'CONTRASEÑA_MYSQL' -t 60 --no-querytime -T -g -l 'SLA'

Un cop creat el Comando, ya podríamos crear tantos Servicios como necesitemos y asociarlos a nuestros Hosts, aquest exemple ens mostrarà el SLA de l'últim mes d'aquesta màquina, ens donarà un Warning quan el SLA sigui menor que 99% i llençarà un missatge de Critical quan sigui menor que 95%.

Després de gravar i exportar la configuració de Centreon, ja podrem veure els resultats. En un momentet podem arribar a controlar el SLA de cada equip, mesurar-ho i millorar-ho, o utilitzar-ho quan ens ho sol·licitin. Tingueu en compte que aquest script no s'ha d'executar abans de les 6 del matí ja que Centreon internament a la BBDD no ha generat les dades d'aquell dia i ens pot donar la informació una mica falsejada, així que el millor és establir-li una programació particular.

I si teniu Grafana i veieu dades de monitorització, podem calcular el SLA en funció del període de temps del gràfic, per a això, si us fixeu, hi ha un panell on es veu el SLA.

Si editem el panell de tipus 'estadística',, calculo el SLA obtenint-ho de 2 consultes, la primera obtindrà els dies de la query (en funció del que es seleccioni a Grafana, 24h, 1 mes…); i la segona obté en segons quant temps ha estat l'equip en estat OK. Si us fixeu ambdues consultes estan ocultes, i hi ha una tercera consulta que és de tipus matemàtic i obté el % en funció d'aquests dos valors. us deixo les 2 consultes utilitzades:

SELECT COUNT(*) AS NUMERITO DE log_archive_host, hosts  ON log_archive_host.host_id = hosts.host_id I nom = 'NOM_DE_HOST'  I  $__unixEpochFilter(date_end)

SELECT SUM(UPTimeScheduled) com TIEMPO_TOTAL DE log_archive_host, hosts  ON log_archive_host.host_id = hosts.host_id I nom = 'NOM_DE_HOST'  I $__unixEpochFilter(date_end)

($B / ($A * 86400)) * 100

Així podrem veure i demostrar el SLA que complim per a cada màquina que ofereix serveis a la nostra organització, us recordo que abans vaig posar un enllaç per mesurar el SLA dels serveis, que depenent del que necessitem seria l'altra opció.

Espero com sempre que vagi molt bé, que us cuideu i us envio una abraçada!

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Remarkable 2: Hacks & servidor propi

30 de January de 2024