User Tools

Site Tools


es:pnp-0.6:npcd

NPCD

NPCD (Nagios-Perfdata-C-Daemon) ha sido escrito para facilitar un método asíncrono para el manejo de los datos de rendimiento con nagios.

Introducción

En grandes instalaciones con nagios, la latencia media de los chequeos puede incrementarse hasta valores no aceptables. Esto quiere decir que Nagios deberá realizar un chequeo en un momento x pero realmente lo hace y segundos más tarde.

Si le decimos al core de Nagios que queremos procesar los datos de rendimiento después de cada chequeo, se soportará una cierta cantidad, pero más allá de estos límites empezaremos a tener problemas de latencia.

Para reducir el número de acciones por cada chequeo, podemos usar el Modo Masivo que obtiene datos durante algún tiempo y entonces le dice a Nagios que ejecute el <host|service>_perfdata_file_processing_command o podemos decirle a Nagios que mueva los perfdata_files a un directorio de spool.

Esta última acción es muy rápida, por lo que el tiempo de bloqueo de Nagios es mínimo, por lo que puede seguir haciendo lo que debería: ejecutar otros chequeos, envío de notificaciones, etc.

Cómo funciona

Como hemos mencionado anteriormente, el proceso de Nagios termina su trabajo al mover los ficheros de datos de rendimiento, pero con esto no hemos convertido estos datos en ficheros RRD.

Para esta tarea podemos ejecutar npcd que busca en el directorio de spool y ejecuta una acción por cada fichero que haya encontrado.

Después de que NPCD se ejecuta crea una lista de ficheros encontrados en perfdata_spool_dir y lanza nuevos hilos de ejecución por cada fichero, ejecutando el comando perfdata_file_run_cmd con el argumento opcional perfdata_file_run_cmd_arg.

Ya que los ficheros de perfdata que están en el directorio de spool están en el mismo formato que para el modo masivo, NPCD ejecutará process_perfdata.pl en Modo Masivo.

Ventajas / Desventajas

Ventajas:

  • Mejora del rendimiento de Nagios
    • debido al desacoplamiento del core de Nagios respecto del procesado de datos de rendimiento.
  • No se pierden datos de rendimiento
    • en el momento en que Nagios escribe los ficheros de perfdata en el spool, los datos no se pierden incluso en caso de fallo de NPCD, o si hemos “olvidado” arrancar NPCD después de un reinicio del sistema. NPCD arrancará la próxima vez con el primer fichero que encuentre (están ordenados por la macro $TIME_T$ en orden cronológico) y actualizará los ficheros RRD.

Desventajas:

  • no se hace un procesado en tiempo real de los datos de rendimiento
    • debido al retraso existente en la escritura de los datos por Nagios (service_perfdata_file_processing_interval)
    • existe otro retraso debido a que NPCD espera hasta 10 seconds para re-escanar el directorio de spool

Configuración de NPCD

Para controlar NPCD, tiene un fichero de configuración propio del que se suministra un ejemplo, npcd.cfg-sample.

Renómbrelo a npcd.cfg para arrancar NPCD de esta forma:

<code_bash>/usr/local/pnp4nagios/bin/npcd -f /usr/local/pnp4nagios/etc/npcd.cfg</code> o <code_bash>/usr/local/pnp4nagios/bin/npcd -d -f /usr/local/pnp4nagios/etc/npcd.cfg</code> para ejecutarlo como demonio (background).

Truco: Si no renombra el fichero de configuración, éste puede ser sobreescrito por futuras actualizaciones de PNP.

npcd.cfg-sample

Estas son las directivas de configuración esenciales para NPCD:

# Privilege Options
user = nagios
group = nagios

# Logging Options
log_type = syslog
log_file = /usr/local/pnp4nagios/var/npcd.log
max_logfile_size = 10485760
log_level=0

# Processing Options
perfdata_spool_dir = /usr/local/pnp4nagios/var/spool/
perfdata_file_run_cmd = /usr/local/pnp4nagios/libexec/process_perfdata.pl
perfdata_file_run_cmd_args = -b

# Thread Options
npcd_max_threads=5

# greedy options
use_load_threshold = 0
load_threshold = 10.0

# Process Options
pid_file=/var/run/npcd.pid

Directivas

  • Opciones de Privilegios
    • user <username>
      • NPCD tries to drop 'root' privileges to switch to this user.
      • default: nagios
    • group <groupname>
      • NPCD tries to drop 'root' privileges to switch to this group.
      • Default: nagios
  • Opciones de Log
    • log_type <syslog> or <file>
      • Log type that is uses by NPCD
      • Default: syslog
    • log_file </path/to/filename>
      • if log_type = file this will be the logfile used
      • Default: /usr/local/pnp4nagios/var/npcd.log
    • max_logfile_size <bytes>
      • NPCD will rotate the logfile if the filesize of the current log is above this limit
      • Default: 10485760 = 10 MByte
    • log_level <integer>
      • how much to log, possible values:
        • 0 = No Log - except errors
        • 1 = small Log - some more output
        • 2 = more Log (actual ALL log messages)
        • -1 = DEBUG Mode - ALL Logs and slower processing for debugging purposes
      • Default: 0
  • Opciones de procesado
    • perfdata_spool_dir </path/to/spool/dir/>
      • The directory where the perfdata file should be found
      • Default: /usr/local/pnp4nagios/var/spool/
    • perfdata_file_run_cmd </path/to/bin/filename>
      • This is the script/binary that NPCD will execute
      • Default: /usr/local/pnp4nagios/libexec/process_perfdata.pl
    • perfdata_file_run_cmd_args <option>
      • El argumento que se añade a perfdata_file_run_cmd
      • Defecto: “-b”
      • :!: La linea de comando será como ésta:
        <perfdata_file_run_cmd> <perfdata_file_run_cmd_args> <filename_from_perfdata_spool_dir>
  • Opciones de hilos de ejecución
    • npcd_max_threads <integer value>
      • Define cuántos hilos paralelos deberían ejecutarse
      • Defecto: 5
  • Opciones de Greedy
    • use_load_threshold <0 or 1>
      • define si NPCD no debería arrancar nuevos hilos de ejecución si la carga del sistema es muy alta
        • 0 = disable
        • 1 = enable
      • Defecto: 0
    • load_threshold <float value>
      • si use_load_threshold se establece a 1 este límite de carga no será excedido
      • Defecto: 10.0
  • Opciones de procesado
    • pid_file </path/to/pid.file>
      • la ruta al fichero PID
      • Defecto: /var/run/npcd.pid

volver a contenidos | wrapper script

es/pnp-0.6/npcd.txt · Last modified: 2022/01/21 14:37 by 127.0.0.1