Collectd es un demonio (i.e. que se ejecuta en segundo plano en equipos y dispositivos) que recopila periódicamente métricas desde diversas fuentes como sistemas operativos, aplicaciones, archivos de registro y dispositivos externos, proporcionando mecanismos para almacenar los valores de diversas formas (ej. archivos RRD) o la pone a disposición a través de la red. Con estos datos y sus estadísticas se puede monitorizar sistemas, hallar cuellos de botella en el rendimiento (por análisis de rendimiento) y predecir la carga del sistema (planificación de capacidad).

Lenguaje de programación y compatibilidad con sistemas operativos

Collectd está escrito en C para sistemas operativos *nix; es decir, basados en Unix, como BSD, macOS y Linux, para su portabilidad y desempeño, ya que su diseño permite ejecutarse en sistemas sin lenguaje de secuencias de comandos (scripting language) o demonio cron, como sistemas integrados. Para Windows puede conectarse mediante Cygwin (herramientas GNU y de código abierto que brindan una funcionalidad similar a una distribución de Linux en Windows).
También, Collectd se ha optimizado para consumir la menor cantidad de recursos del sistema, lo que lo cualifica como una gran herramienta para monitorizar el rendimiento con un bajo costo.

Plug-ins de collectd

Collectd como un Demonio Modular

El sistema collectd es modular. En su core tiene funcionalidades limitadas y para usarlo, es necesario saber cómo compilar un programa en C. También se necesita saber cómo iniciar el ejecutable de la manera correcta para que los datos se envíen a donde se necesitan. Sin embargo, a través de los plug-ins, se obtiene valor de los datos recolectados y enviados, extendiendo su funcionalidad para varios casos de uso. Esto hace que el demonio sea modular y flexible y que las estadísticas obtenidas (y su formato) se pueden definir por plug-ins.

Tipos de plug-ins

Actualmente, existen 171 plug-ins disponibles para collectd. No todos los plug-ins definen temas de recopilación de datos, ya que algunos extienden las capacidades con interfaces para tecnologías específicas (ej. lenguaje de programación como Python).

  • Los plug-ins de lectura obtienen datos y se clasifican generalmente en tres categorías:
    • Plug-ins del sistema operativo, que recopilan información como el uso de CPU, la memoria o la cantidad de usuarios que iniciaron sesión en un sistema. Por lo general, estos plug-ins deben trasladarse a cada sistema operativo.
    • Plug-ins de aplicaciones, que recopilan datos de rendimiento sobre una aplicación que se ejecuta en la misma computadora o en un sitio remoto. Estos plug-ins suelen utilizar bibliotecas de software, pero por lo demás suelen ser independientes del sistema operativo.
    • Plug-ins genéricos, que ofrecen funciones básicas que el usuario puede emplear para tareas específicas. Algunos ejemplos son la consulta para monitorización de redes (desde SNMP) o la ejecución de programas o scripts personalizados.
  • Los plug-ins de escritura ofrecen la posibilidad de almacenar los datos recopilados en el disco utilizando archivos RRD o CSV; o bien, enviar datos a través de la red a una instancia remota del demonio.
  • Los plug-ins unixsock permiten abrir un socket para conectarnos con el demonio de collectd. Gracias a la utilidad collectd podemos obtener directamente los monitores en nuestra terminal con los parámetros getval o listval, donde podemos indicar el parámetro que queremos obtener en concreto u obtener una lista con todos los parámetros que ha recolectado collectd.
  • También tenemos el plug-in de red, que se usa para enviar y recibir datos hacia y desde otras instancias del demonio. En una configuración de red típica, el demonio se ejecutaría en cada host monitoreado (llamado “clientes”) con el plug-in de red configurado para enviar los datos recopilados a una o más direcciones de red. En uno o más de los llamados “servidores”, se ejecutaría el mismo demonio, pero con una configuración diferente, de modo que el plug-in de red reciba datos en lugar de enviarlos. A menudo, el complemento RRDtool se utiliza en servidores para almacenar los datos de rendimiento (ej. ancho de banda, temperatura, carga de trabajo en el CPU, etc.)

TIP de collectd en Pandora FMS: Se pueden activar y desactivar los plug-ins que se tienen desde el fichero de configuración “collectd.conf”, además de configurarlos o añadir plugins personalizados.

Beneficios de collectd

  • Naturaleza de código abierto
    Collectd es un software de código abierto, al igual que sus plug-ins, aunque, algunos plug-ins no tienen la misma licencia de código abierto.
  • Extensibilidad y modularidad
    Collectd tiene 171 plug-ins, es compatible con una diversidad de sistemas operativos y es muy fácil de configurar. También permite la personalización según la necesidad de la empresa y su funcionalidad puede extenderse fácilmente agregando algunos plug-ins confiables, además de poder escribirse en varios lenguajes como Perl y Python.
  • Escalabilidad
    Collectd recopila datos de muchas fuentes y los envía a un grupo o servidor de multidifusión. Ya sean uno o mil hosts, collectd puede recopilar estadísticas y métricas de rendimiento. También collectd permite fusionar múltiples actualizaciones en una sola operación o valores grandes en un solo paquete de red.
  • Soporte SNMP
    Collectd admite el protocolo simple de administración de red (Simple Network Management Protocol, SNMP), lo que permite a los usuarios recopilar métricas de una amplia gama de recursos y dispositivos de red.
  • Flexibilidad
    Brinda flexibilidad y la oportunidad de decidir qué estadísticas se desea recopilar y con qué frecuencia.

Integración de collectd con Pandora FMS

Monitorización de entornos de TI

Collectd proporciona estadísticas a un paquete de interpretación, por lo que en herramienta de terceros debe configurarse para generar gráficos y análisis a partir de los datos obtenidos, con el fin de visualizar y optimizar la monitorización de entornos de TI. Hoy, Collectd cuenta con una gran comunidad que contribuye con mejoras, nuevos plug-ins y correcciones de errores.

Ejecución efectiva en Pandora FMS.

El plugin pandora_collectd permite recolectar información generada por el propio collectd y mandarla a nuestro servidor de Pandora FMS para su posterior tratamiento y almacenamiento.
La ejecución de nuestro plugin genera un agente con toda la información de collectd transformada en los módulos de Pandora FMS; con ello, podremos tener cualquier dispositivo monitorizado con collectd y obtener un histórico de datos, crear informes, dashboards, consolas visuales, disparar alertas y un largo etcétera.

Una característica importante de “pandora_collectd” es que es un plug-in muy versátil, ya que nos permite tratar los datos recolectados de collectd antes de mandarlos a nuestro servidor de Pandora FMS. Mediante expresiones regulares, nos permite decidir, según las características que tengamos, qué métricas queremos recolectar y cuáles queremos descartar para enviar las métricas deseadas a nuestro servidor de Pandora FMS de una manera óptima. Además, nos permite modificar parámetros como el puerto o la dirección IP del servidor que queremos usar.
También, es posible personalizar cómo queremos que se llame nuestro agente, donde se crearán los módulos, y modificar su descripción.
Otro aspecto importante de este plug-in es que se puede ejecutar tanto como plug-in de agente como en calidad de plug-in de servidor. Al poder modificar los agentes resultantes de la monitorización, podremos diferenciar fácilmente unos de otros y monitorizar gran cantidad de dispositivos en nuestro entorno de Pandora FMS,
Además, nuestro plugin es compatible con la inmensa mayoría de dispositivos Linux y Unix por lo que no habrá problemas con su implementación con collectd.
Para saber cómo configurar collectd en Pandora FMS, visita Pandora FMS Guides para más detalles.

Collectd vs StatsD: Una Comparación

Diferencias Clave

Como hemos visto, collectd es adecuado para monitorizar CPU, red, uso de memoria y varios complementos para servicios específicos como NGinx. Por sus características, recopila métricas listas para usar y debe instalarse en máquinas que necesitan monitorización.

Mientras que StatsD (escrito en Node.js) se utiliza generalmente para aplicaciones que requieren agregar datos de forma precisa y envía datos a los servidores en intervalos regulares. También, StatsD proporciona bibliotecas en varios lenguajes de programación para facilitar el seguimiento de datos.


 

Con esto entendido, collectd es un demonio de recopilación de estadísticas, mientras que StatsD es un servicio de agregación o contador de eventos. La razón de explicar sus diferencias es que collectd y StatsD pueden utilizarse juntos (y es una práctica común) dependiendo de las necesidades de monitorización en la organización.

Casos de uso y enfoques

  • Casos de uso de StatsD:
    • Monitorización de aplicaciones web: Rastreo del número de solicitudes, errores, tiempos de respuesta, etc.
    • Análisis de rendimiento: Identificación de cuellos de botella y optimización del rendimiento de la aplicación.
  • Casos de uso de collectd:
    • Monitoreo de recursos de hardware como uso de CPU, memoria utilizada, uso del disco duro, etc.
    • Monitorización sobre métricas específicas de servicios de TI disponibles.

Importancia de collectd en la integración con Pandora FMS

    • Ligero y eficiente
      Collectd en Pandora FMS es ligero y eficiente, con la capacidad de escribir métricas a través de la red, por su misma una arquitectura modular y porque se ejecuta principalmente en la memoria.
    • Versatilidad y flexibilidad
      Este plug-in permite decidir qué métricas queremos recolectar y cuáles descartar para enviar sólo las métricas que queramos a nuestro servidor de Pandora FMS. También permite ajustar los datos recolectados cada determinado tiempo, según las necesidades de la organización.
    • Soporte comunitario y mejoras continuas
      Además de que collectd es un plug-in popular, cuenta con el soporte comunitario quienes constantemente realizan mejoras, incluyendo documentación especializada y guías de instalación.
      Todo esto nos hace comprender por qué collectd ha sido ampliamente adoptado para la monitorización de los recursos y servicios de TI.

Conclusión

Collectd es un demonio bastante popular para medir métricas desde diversas fuentes como sistemas operativos, aplicaciones, archivos de registro y dispositivos externos, pudiendo aprovechar la información para la monitorización de sistemas. Dentro de sus características clave podemos mencionar que, al estar escrito en C, en código abierto, puede ejecutarse en los sistemas sin necesidad de un lenguaje de secuencias de comandos. Al ser modular, es bastante portable a través de plug-ins y se obtiene el valor de los datos recolectados y enviados, la funcionalidad de collectd se extiende para dar un mejor uso en la monitorización de los recursos de TI. También es escalable, ya sean uno o mil hosts, para recopilar estadísticas y métricas de rendimiento. Esto es de sumo valor en los ecosistemas de TI que siguen extendiéndose para cualquier empresa en cualquier industria.

El plugin pandora_collectd recolecta información generada por el propio collectd y la envía al servidor de Pandora FMS, desde el cual se puede potenciar la monitorización de cualquier dispositivo monitorizado y obtener datos desde los cuales generar reportes o dashboards de productividad, programar alertas y obtener información histórica para la planeación de la capacidad, entre otras funciones de alto valor en la gestión de TI.

Para un mejor aprovechamiento de collectd, con la capacidad de ser tan granular en la recopilación de datos, también es bueno consolidar estadísticas para hacerlos más comprensibles para el ojo humano y simplificar las cosas para el administrador del sistema que analiza los datos. También, se recomienda apoyarse en expertos en monitorización de TI como Pandora FMS, con mejores prácticas de monitorización y observabilidad. Contacta a nuestros expertos en Professional services | Pandora FMS

Shares