Supported OS Linux

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 comenzar 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. Configura el Agent para que se conecte a MySQL y edita tu archivo cacti.d/conf.yaml. Consulta el cacti.d/conf.yaml de ejemplo 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 y busca cacti en la sección Checks.

Datos recopilados

Métricas

cacti.hosts.count
(gauge)
The number of hosts monitored by Cacti
Shown as host
cacti.metrics.count
(gauge)
The number of metrics collected from Cacti
cacti.rrd.count
(gauge)
The number of Cacti RRD files
Shown as file
system.disk.free.last
(gauge)
The amount of disk space that is free - last polling value
Shown as byte
system.disk.free.max
(gauge)
The amount of disk space that is free - max polling value
Shown as byte
system.disk.free.min
(gauge)
The amount of disk space that is free - min polling value
Shown as byte
system.disk.used.last
(gauge)
The amount of disk space that is used - last polling value
Shown as byte
system.disk.used.max
(gauge)
The amount of disk space that is used - max polling value
Shown as byte
system.disk.used.min
(gauge)
The amount of disk space that is used - min polling value
Shown as byte
system.load.1.last
(gauge)
The average system load over one minute - last polling value
system.load.1.max
(gauge)
The average system load over one minute - max polling value
system.load.1.min
(gauge)
The average system load over one minute - min polling value
system.load.15.last
(gauge)
The average system load over 15 minute - last polling value
system.load.15.max
(gauge)
The average system load over 15 minute - max polling value
system.load.15.min
(gauge)
The average system load over 15 minute - min polling value
system.load.5.last
(gauge)
The average system load over five minute - last polling value
system.load.5.max
(gauge)
The average system load over five minute - max polling value
system.load.5.min
(gauge)
The average system load over five minute - min polling value
system.mem.buffered.last
(gauge)
The amount of physical RAM used for file buffers - last polling value
Shown as byte
system.mem.buffered.max
(gauge)
The amount of physical RAM used for file buffers - max polling value
Shown as byte
system.mem.buffered.min
(gauge)
The amount of physical RAM used for file buffers - min polling value
Shown as byte
system.ping.latency
(gauge)
The system ping latency - avg polling value
Shown as millisecond
system.ping.latency.max
(gauge)
The system ping latency - max polling value
Shown as millisecond
system.proc.running.last
(gauge)
The number of processes running - last polling value
Shown as process
system.proc.running.max
(gauge)
The number of processes running - max polling value
Shown as process
system.proc.running.min
(gauge)
The number of processes running - min polling value
Shown as process
system.swap.free.max
(gauge)
The amount of free swap space - max polling value
Shown as byte
system.users.current.last
(gauge)
The number of logged in users - last polling value
system.users.current.max
(gauge)
The number of logged in users - max polling value
system.users.current.min
(gauge)
The number of logged in users - min polling value

Recopilación de logs

  1. La recopilación de logs está deshabilitada por defecto en el Datadog Agent; habilítala 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. Para ver todas las opciones de configuración disponibles, consulta el cacti.d/conf.yaml de ejemplo.

  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 pierde memoria en determinadas circunstancias. Si esto te sucede, una solución alternativa es instalar el paquete python-rrdtool en lugar de rrdtool. Este paquete antiguo no recibe mantenimiento y esta integración no lo admite oficialmente, pero ha ayudado a otros a resolver los problemas de memoria.

Se ha abierto un problema de Github para rastrear esta pérdida de memoria.

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