Profundizando nagios.pdf


Vista previa del archivo PDF profundizando-nagios.pdf


Página 1...60 61 626364111

Vista previa de texto


November
UNKNOWN
20
Trigger para guardar el último estado de los objetos
Nagios no guarda en ninguna tabla de MySQL el último estado de los objetos,
pero guarda los cambios de estado en la tabla nagios_statehistory. Para
mantener el último estado se puede usar un trigger:
create table last_state (object_id int(11), state int(6));
create trigger last_state after insert on nagios_statehistory
for each row
begin
if new.state_change = 1 then
update last_state set state = new.state where object_id new.object_id;
end if;
end;//

Ese trigger hace un update así que hay que cronear esto para mantener al día
con los objetos la tabla.
insert into last_state
select obj.object_id, 0
from nagios.nagios_objects as obj
where obj.object_id not in
(select object_id from last_state);

Luego estas consultas podemos integrarlas en PHP o Perl, y obtener resultados
que necesitemos para reflejarlos en un visor web, o en los resultados de un
plugin.
NOTA: Importante el modulo mysql de PHP no soporta la consulta a los
PROCEDURE de MySQL, para ello deberemos utilizar el modulo mysqli de PHP,
otra cosa tambien importante es que mysqli soporta conecciones persistentes,
asi que para evitarse tiempo de implementacion a veces es necesario o
implementar un script en Perl, o hacer que el resultado del PROCEDURE se
almacene en una tabla temporal y realizar una consulta simple desde ahi.

Correlación de eventos
Si bien Nagios provee de monitoreo en vivo para saber el estado de nuestros
servicios, a veces necesitamos un proceso para analizar los datos de eventos e
identificar patrones, que nos ayudaran a entender causas comunes y causas
iniciales, por medios de reglas para estados predefinidos.
Para poder determinar estos casos deberemos implementar una Bitácora
centralizada de eventos del sistema (SYSLOG).

Sistema de loggueo centralizado
Se tiene la necesidad de un sistema que reciba y almacenes archivos de