Nagios + nagiosgraph plugin instalado.
Todo surge de un supuesto bug del nagiosgrapah, que borraba el archivo de perfdata de nagios cada vez que lo leía. Lo que pasaba es que el script de perl de nagiosgraph renombraba el fichero /var/nagios/perfdata.log a /var/nagios/perfdata.log.nagiosgraph. Después de hacer todo el proceso pertinente, este mismo plugin borraba el archivo recién renombrado, con lo que dejaba de existir el perfdata.log, y por algún motivo nagios no era capaz de volverlo a crear automáticamente, ni poniendo el modo «append» para el perfadata en el nagios.cfg. Modifiqué el script de perl del plugin para que no lo renombrara, sino que lo copiara. Y fué todo bien hasta que al cabo de unos días me empecé a encontrar estas líneas en el fichero de log de nagiosgraph /var/log/nagiosgraph.log:

Ni idea de lo que pasaba. Di mil vueltas por internet, cambié configuración del nagios, del plugin; y nada. Se ve que se hacía un lío cuando el plugin leía el archivo de perfdata.

Al final lo que hice fue modificar el script perl de nagiosgraph para que copiara el archivo de perfdata en vez de moverlo, y que truncara el original (perfdata.log) para que nagios lo encontrara cuando intentase escribir en él:

illegal attempt to update using time xxx when last update time is xxx
Etiquetado en:    

Un pensamiento en “illegal attempt to update using time xxx when last update time is xxx

  • 14/06/2016 a las 16:44
    Enlace permanente

    Hay un race-condition ahí que puede provocar perdida de datos. Entre que insert.pl copia el archivo y lo trunca nagios puede agregar mas datos.

     

    Lo que hice yo fue usar service_perfdata_command para escribir el perfdata.log en lugar de service_perfdata_file.

     

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada.