Monitorizando el SLA de los Hosts en Centreon
Este documento lo usaremos para conocer el % de disponibilidad de las máquinas monitorizadas en Centreon. Si disponemos de algún SLA (Acuerdo de Nivel de Servicio) que cumplir, podremos medirlo desde Centreon así como alertarnos. Ah y si usas Grafana también lo veremos desde ahí!
Esan dut, al final de este post sabrás cómo medir el SLA que ofrece cada máquina que tengas monitorizada, le asociaremos un Servicio a cada Host de Centreon para conocer la disponibilidad que ofrece dicha máquina. Así tendrás también su histórico y si te interesase podrías recibir alertas cuando el % sea menor del valor que te interese. Y al final eso, Grafana Centreon-eko monitorizazioa ikusteko erabiltzen baduzue, datu hori nola ikusten dudan esango dizuet, balio dezakeelako 🙂
Bestela, baliteke interesatzea, en post hau antzeko zerbait ikusi genuen, Centreon Zerbitzuen SLA nola lortzen den ikusi genuen. Gaur Hosts-ari dagokio.
SLA neurtu ahal izateko, Centreon-eko datu-basera kontsulta bat egin beharko dugu, MariaDB-n oinarrituta dago (edo MySQL-en), beraz, bazenuen ez baduzu, lehenik behar duzu post hau berrikusi edozein MySQL DB-ri query-ak egiteko gai izan ahal izateko.
Dena dela, gogoratu Centreon-en SLA GUI bidez ikus daitekeela “Txostenak” > “Availability-n” > “Hosts”. Guk balio berdinak lortuko ditugu, baina monitorizatuko ditugu, horixe da garrantzitsuena!
Empezamos! Betiko bezala, Komandoarekin hasiko gara, lehen Komando hau definitu bezain laster, nahikoa den aldiz erabil dezakegu. 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 días, 30 días, 365 días… (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 = '$ARG 2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ 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 'SLA-a hau da' -n
Horren ordez % denbora zenbat egon den ikusi nahi baduzue, kontsulta hau alda dezakegu honelaxe:
$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 Denbora FROM hosts, log_archive_host WHERE log_archive_host.host_id = hosts.host_id AND hosts.name = '$ARG 2$' AND from_unixtime(date_end) > date_sub(now(), INTERVAL $ARG 1$ 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'
Komandoa sortu ondoren, behar ditugun bezalako Zerbitzuak sortu eta gure Hosts-ei lotu ahal izango diegu, adibide honek makina honen azken hileko SLA erakutsiko digu, Abisua emango digu SLA honek honetatik gutxiago denean 99% Critical mezua bidaliko du SLA honek honetatik gutxiago denean 95%.
Centreon-en konfigurazioa gorde eta esportatu ondoren, ya podremos ver los resultados. En un momentito podemos llegar a controlar el SLA de cada equipo, medirlo y mejorarlo, o usarlo cuando se nos solicite. Tener en cuenta que este script no debe ejecutarse antes de las 6am ya que Centreon internamente en la BBDD no ha generado los datos de dicho día y nos puede dar algo falseada la info, así que lo mejor es ponerle una programación particular.
Y si tenéis Grafana y veis datos de monitorización, podemos calcular el SLA en base al periodo del tiempo de la gráfica, horretarako, si os fijáis, hay un panel donde se ve el SLA.
Si editamos el panel de tipo 'estadística', calculo el SLA obteniéndolo de 2 consultas, la primera obtendrá los días de la query (en base a lo que se seleccione en Grafana, 24h, 1 mes…); eta bigarrenak segundotan lortzen du zenbat denbora egon den taldea OK egoeran. Begiratzen baduzue bi queriesak ezkutatuta daude, eta hirugarren query bat dago, mota matematikoa duena eta honako hau lortzen du % balio hauen biaren arabera. uzten dizkizuet 2 erabilitako queries:
SELECT COUNT(*) AS NUMERITO FROM log_archive_host, hosts WHERE log_archive_host.host_id = hosts.host_id AND name = 'NOMBRE_DE_HOST' AND $__unixEpochFilter(date_end)
SELECT SUM(UPTimeScheduled) as TIEMPO_TOTAL FROM log_archive_host, hosts WHERE log_archive_host.host_id = hosts.host_id AND name = 'NOMBRE_DE_HOST' AND $__unixEpochFilter(date_end)
($B / ($A * 86400)) * 100
Horrela ikusi eta frogatu ahal izango dugu gure SLA, gure erakundean zerbitzuak eskaintzen dituen makinaren bakoitzerako, Gogorarazten dizuet lehenago SLA neurtzeko esteka bat jarri nuela zerbitzuentzat, zein behar dugunaren arabera izango litzatekeen beste aukera.
Betiko bezala espero dut oso ondo joan dadila, zaindu zaitezte eta besarkada bat bidaltzen dizuet!














































