Supported OS

Versión de la integración4.0.0

Información general

Obtén métricas de Cacti en tiempo real para:

  • Visualizar y monitorizar estados de Cacti.
  • Recibir notificaciones sobre fallos y eventos de Cacti.

Configuración

Instalación

El check de Cacti está incluido en el paquete del Datadog Agent. Para empezar a recopilar métricas, primero debes:

  1. Instalar los encabezados librrd y las bibliotecas.
  2. Instalar los enlaces a rrdtool de Python.

Encabezados y bibliotecas

En Debian/Ubuntu:

sudo apt-get install librrd-dev

En RHEL/CentOS:

sudo yum install rrdtool-devel

Enlaces de Python

Añade el paquete Python rrdtool al Agent con el siguiente comando:

sudo -u dd-agent /opt/datadog-agent/embedded/bin/pip install rrdtool

Configuración

Crear un usuario de Datadog

  1. Crea un usuario de Datadog con derechos de solo lectura para la base de datos Cacti.

    sudo mysql -e "create user 'datadog'@'localhost' identified by '<MYSQL_PASSWORD>';"
    sudo mysql -e "grant select on cacti.* to 'datadog'@'localhost';"
    
  2. Verifica el usuario y los derechos:

    mysql -u datadog --password=<MYSQL_PASSWORD> -e "show status" | \
    grep Uptime && echo -e "\033[0;32mMySQL user - OK\033[0m" || \
    echo -e "\033[0;31mCannot connect to MySQL\033[0m"
    
    mysql -u datadog --password=<MYSQL_PASSWORD> -D cacti -e "select * from data_template_data limit 1" && \
    echo -e "\033[0;32mMySQL grant - OK\033[0m" || \
    echo -e "\033[0;31mMissing SELECT grant\033[0m"
    
  3. Otorga al usuario datadog-agent acceso a los archivos RRD:

    sudo gpasswd -a dd-agent www-data
    sudo chmod -R g+rx /var/lib/cacti/rra/
    sudo su - datadog-agent -c 'if [ -r /var/lib/cacti/rra/ ];
    then echo -e "\033[0;31mdatadog-agent can read the RRD files\033[0m";
    else echo -e "\033[0;31mdatadog-agent can not read the RRD files\033[0m";
    fi'
    

Configuración del Agent

  1. Configurar el Agent para conectarse a MySQL, editar tu archivo cacti.d/conf.yaml. Consulta el ejemplo de cacti.d/conf.yaml para ver todas las opciones de configuración disponibles:

    init_config:
    
    instances:
      ## @param mysql_host - string - required
      ## url of your MySQL database
      #
      - mysql_host: "localhost"
    
        ## @param mysql_port - integer - optional - default: 3306
        ## port of your MySQL database
        #
        # mysql_port: 3306
    
        ## @param mysql_user - string - required
        ## User to use to connect to MySQL in order to gather metrics
        #
        mysql_user: "datadog"
    
        ## @param mysql_password - string - required
        ## Password to use to connect to MySQL in order to gather metrics
        #
        mysql_password: "<MYSQL_PASSWORD>"
    
        ## @param rrd_path - string - required
        ## The Cacti checks requires access to the Cacti DB in MySQL and to the RRD
        ## files that contain the metrics tracked in Cacti.
        ## In almost all cases, you'll only need one instance pointing to the Cacti
        ## database.
        ## The `rrd_path` will probably be `/var/lib/cacti/rra` on Ubuntu
        ## or `/var/www/html/cacti/rra` on any other machines.
        #
        rrd_path: "<CACTI_RRA_PATH>"
    
  2. Reinicia el Agent.

Validación

[Ejecuta el subcomando de estado del Agent(https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information) y busca cacti en la sección Checks.

Datos recopilados

Métricas

cacti.hosts.count
(gauge)
Número de hosts monitorizados por Cacti
Se muestra como host
cacti.metrics.count
(gauge)
Número de métricas recopiladas de Cacti
cacti.rrd.count
(gauge)
Número de archivos RRD de Cacti
Se muestra como archivo
system.disk.free.last
(gauge)
Cantidad de espacio libre en disco, último valor de sondeo
Se muestra en bytes
system.disk.free.max
(gauge)
Cantidad de espacio libre en disco, máximo valor de sondeo
Se muestra en bytes
system.disk.free.min
(gauge)
Cantidad de espacio libre en disco, mínimo valor de sondeo
Se muestra en bytes
system.disk.used.last
(gauge)
Cantidad de espacio utilizado en disco, último valor de sondeo
Se muestra en bytes
system.disk.used.max
(gauge)
Cantidad de espacio utilizado en disco, máximo valor de sondeo
Se muestra en bytes
system.disk.used.min
(gauge)
Cantidad de espacio utilizado en disco, mínimo valor de sondeo
Se muestra en bytes
system.load.1.last
(gauge)
Carga media del sistema durante un minuto, último valor de sondeo
system.load.1.max
(gauge)
Carga media del sistema durante un minuto, máximo valor de sondeo
system.load.1.min
(gauge)
Carga media del sistema durante un minuto, mínimo valor de sondeo
system.load.15.last
(gauge)
Carga media del sistema durante 15 minutos, último valor de sondeo
system.load.15.max
(gauge)
Carga media del sistema durante 15 minutos, máximo valor de sondeo
system.load.15.min
(gauge)
Carga media del sistema durante 15 minutos, mínimo valor de sondeo
system.load.5.last
(gauge)
Carga media del sistema durante 5 minutos, último valor de sondeo
system.load.5.max
(gauge)
Carga media del sistema durante 5 minutos, máximo valor de sondeo
system.load.5.min
(gauge)
Carga media del sistema durante 5 minutos, mínimo valor de sondeo
system.mem.buffered.last
(gauge)
Cantidad de RAM física utilizada para buffers de archivos, último valor de sondeo
Se muestra en bytes
system.mem.buffered.max
(gauge)
Cantidad de RAM física utilizada para buffers de archivos, máximo valor de sondeo
Se muestra en bytes
system.mem.buffered.min
(gauge)
Cantidad de RAM física utilizada para buffers de archivos, mínimo valor de sondeo
Se muestra en bytes
system.ping.latency
(gauge)
Latencia de ping del sistema, valor medio de sondeo
Se muestra en milisegundos
system.ping.latency.max
(gauge)
Latencia de ping del sistema, valor máximo de sondeo
Se muestra en milisegundos
system.proc.running.last
(gauge)
Número de procesos en ejecución, último valor de sondeo
Se muestra como proceso
system.proc.running.max
(gauge)
Número de procesos en ejecución, máximo valor de sondeo
Se muestra como proceso
system.proc.running.min
(gauge)
Número de procesos en ejecución, mínimo valor de sondeo
Se muestra como proceso
system.swap.free.max
(gauge)
Cantidad de espacio de intercambio libre, valor máximo de sondeo
Se muestra en bytes
system.users.current.last
(gauge)
Número de usuarios conectados, último valor de sondeo
system.users.current.max
(gauge)
Número de usuarios conectados, máximo valor de sondeo
system.users.current.min
(gauge)
Número de usuarios conectados, mínimo valor de sondeo

Recopilación de logs

  1. La recopilación de logs está desactivada en forma predeterminada en el Datadog Agent, actívala en tu archivo datadog.yaml:

    logs_enabled: true
    
  2. Añade este bloque de configuración a tu archivo cacti.d/conf.yaml para empezar a recopilar logs de Cacti:

    logs:
      - type: file
        path: /opt/cacti/log/cacti.log
        source: cacti
    

    Cambia el valor del parámetro path en función de tu entorno. Consulta el ejemplo cacti.d/conf.yaml para ver todas las opciones de configuración disponibles.

  3. Reinicia el Agent.

Eventos

El check de Cacti no incluye eventos.

Checks de servicio

El check de Cacti no incluye checks de servicio.

Solucionar problemas

Problemas conocidos

La biblioteca Python que utiliza esta integración presenta fugas de memoria en determinadas circunstancias. Si esto te sucede, una solución alternativa es instalar el paquete python-rrdtool en lugar de rrdtool. Este paquete más antiguo no recibe mantenimiento y esta integración no lo admite oficialmente, pero ha ayudado a otras personas a resolver problemas de memoria.

Se ha abierto un incidente en Github para rastrear esta fuga de memoria.

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.