5 Configuración del demonio

5.1 Línea de comandos#

databbix [opciones]
Opción Descripción
-h, --help Muestra la ayuda y termina.
-d, --daemon Pasa a segundo plano (modo demonio). Sin esta opción, el log también se muestra por la consola.
-n, --no-send-data No envía datos al servidor Zabbix. Útil para pruebas.
-c, --config-file f Fichero de configuración global. Por defecto: /etc/databbix/databbix.conf.
-p, --config-path d Directorio con los ficheros .conf de los monitores. Por defecto: /etc/databbix/dbs.
-m, --module-path d Directorios adicionales donde buscar módulos.

Para probar una configuración nueva sin instalar el servicio, lo más práctico es arrancar el demonio en primer plano, sin enviar datos y con un nivel de log alto (véase el capítulo 15):

/opt/trustserver/sbin/databbix -n -c /etc/databbix/databbix.conf

5.2 El fichero databbix.conf#

Es un fichero de tipo INI con dos secciones: [General] y [Log]. Los valores de la sección [Log] y los de QueryFile y Environment son los valores por defecto de todos los monitores, y cada monitor puede redefinirlos en su propio fichero.

5.2.1 Sección [General]#

Parámetro Descripción
DaemonUser Usuario (nombre o UID) al que cambia el proceso al arrancar con -d. El proceso toma también los grupos suplementarios de ese usuario.
DaemonGroup Grupo (nombre o GID) al que cambia el proceso al arrancar con -d. Si no se indica, se usa el grupo principal de DaemonUser.
ConfigPath Directorio de los ficheros de monitores. Si está presente, tiene prioridad sobre la opción -p.
QueryFile Fichero XML de consultas. Se puede repetir la línea para cargar varios ficheros. Por defecto: /etc/databbix/query.xml.
ModulePath Directorios adicionales de módulos. Se puede repetir.
Environment Variable de entorno para las consultas, con la forma Nombre=Valor. Se puede repetir (véase la sección 7.4).

5.2.2 Sección [Log]#

Parámetro Defecto Descripción
LogPath /var/log/databbix Directorio de los logs.
LogFile databbix.log Log del proceso principal.
LogLevel 3 Nivel de detalle (véase la tabla 15.1).
LogMaxSize 0 Tamaño máximo en bytes antes de rotar. 0 desactiva la rotación interna.
LogMaxBackupCopies 4 Número de copias que se conservan al rotar.
MaxQueryExecTimeLog 10 Si una consulta tarda más de estos segundos, se registra un aviso en el log.

5.2.3 Ejemplo#

[General]
DaemonUser = databbix
DaemonGroup = databbix
QueryFile = /etc/databbix/query.xml

[Log]
LogPath = /var/log/databbix
LogLevel = 4
MaxQueryExecTimeLog = 10

Atención.  Si DaemonUser es un UID numérico que no existe en /etc/passwd y no se indica DaemonGroup, no hay grupo principal que usar: el proceso conserva el grupo con el que arrancó, que es root si se lanza como root. En ese caso indique siempre DaemonGroup.

5.3 Servicio systemd#

La unidad incluida (databbix.service) arranca el demonio en modo forking con el usuario databbix:

[Unit]
Description=Databbix Agent
After=network-online.target
Wants=network-online.target

[Service]
EnvironmentFile=-/etc/sysconfig/databbix
Environment="LD_LIBRARY_PATH=/opt/trustserver/lib64"
PassEnvironment=TNS_ADMIN ODBCINI LD_LIBRARY_PATH
Type=forking
Restart=on-failure
KillMode=process
ExecStart=/opt/trustserver/sbin/databbix -c /etc/databbix/databbix.conf -d
RestartSec=10s
User=databbix
Group=databbix

[Install]
WantedBy=multi-user.target

Operaciones habituales:

systemctl enable --now databbix   # activar y arrancar
systemctl restart databbix        # aplicar cambios de configuración o XML
systemctl status databbix

Atención.  Databbix lee los ficheros .conf y XML solo al arrancar. Para aplicar cualquier cambio en ellos hay que reiniciar el servicio.

5.4 Señales#

Señal Efecto
SIGTERM, SIGINT Parada ordenada. Espera hasta unos 4 segundos a que terminen los monitores.
SIGHUP Reabre los ficheros de log. La usa logrotate.

El fichero databbix.logrotate incluido envía SIGHUP después de rotar:

/var/log/databbix/*.log
{
    sharedscripts
    postrotate
        /usr/bin/killall -HUP databbix 2> /dev/null || true
    endscript
}

Si se usa logrotate, conviene dejar LogMaxSize = 0 para que no roten a la vez logrotate y Databbix.