# Collectd

# Introducción

El plugin `pandora_collectd` se encarga de integrar la recolección de **collectd** con el servidor y los agentes de Pandora FMS.  
Nos encontramos ante un *plugin* de Servidor y EndPoint.

# Matriz de compatibilidad

<table border="1" id="bkmrk-sistemas-donde-se-ha" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50.0618%;"></col><col style="width: 50.0618%;"></col></colgroup><tbody><tr><td style="width: 45.3131%;">**Sistemas donde se ha probado**</td><td style="width: 54.6869%;">CentOS 7, Rocky Linux 8 y Ubuntu 22.04  
</td></tr><tr><td style="width: 45.3131%;">**Sistemas donde funciona**</td><td style="width: 54.6869%;">Cualquier sistema Linux x86\_64  
</td></tr></tbody></table>

<p class="callout danger">Este plugin no es compatible con sistemas ARM</p>

# Pre requisitos

- Tener instalado y configurado Collectd.
- En los sistemas operativos Linux más recientes (como Rocky Linux 8 o Ubuntu 22.04) es necesario instalar la dependencia `collectd-utils`. Esta dependencia no es necesaria, por ejemplo, en CentOS 7.
- Permisos de ejecución del plugin `pandora_collectd`.

# Parámetros

<table border="1" id="bkmrk--h%2C---help-informaci" style="border-collapse: collapse; width: 100%; height: 382.5px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">-h, --help  
</td><td style="height: 29.8px;">**Información de ayuda de los argumentos del plugin**.  
</td></tr><tr style="height: 29.9667px;"><td style="height: 29.9667px;">-c, --collectdctl  
</td><td style="height: 29.9667px;">**Ruta de** `collectdctl`.  
</td></tr><tr style="height: 46.7667px;"><td style="height: 46.7667px;">-r, --add\_regexp</td><td style="height: 46.7667px;">**Expresión regular (regexp) para añadir métricas** (por defecto `.*`).  
</td></tr><tr style="height: 46.6px;"><td style="height: 46.6px;">-R, --ignore\_regexp</td><td style="height: 46.6px;">**Expresión regular (regexp) para eliminar métricas** (por defecto ninguna).  
</td></tr><tr style="height: 46.6px;"><td style="height: 46.6px;">-d, --agent\_description</td><td style="height: 46.6px;">**Descripción del agente creado por el plugin** (por defecto "Agent from pandora\_collectd").  
</td></tr><tr style="height: 46.7667px;"><td style="height: 46.7667px;">-a, --agent\_alias</td><td style="height: 46.7667px;">**Nombre del agente creado por el plugin** (por defecto `pandora_collectd`).  
</td></tr><tr style="height: 46.6px;"><td style="height: 46.6px;">-i, --tentacle\_ip</td><td style="height: 46.6px;">**Dirección IP del servidor de Tentacle** (por defecto 127.0.0.1).  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">-p, --tentacle\_port</td><td style="height: 29.8px;">**Puerto de Tentacle** (por defecto 41121).  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">-O, --tentacle\_extra\_opts</td><td style="height: 29.8px;">**Opciones extra de Tentacle** (por defecto ninguna)  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">-v, --verbose</td><td style="height: 29.8px;">**Muestra todos los valores obtenidos por pantalla.**  
</td></tr></tbody></table>

<p class="callout info">Expresiones regulares de Python [https://docs.python.org/3/library/re.html#regular-expression-syntax](https://docs.python.org/3/library/re.html#regular-expression-syntax)</p>

# Ejecución manual

#### Ejecución por defecto

```bash
./pandora_collectd
```

#### Ejecución con expresiones regulares

```bash
./pandora_collectd -r ".*cpu.*" -R ".*memory.*"
```

#### Ejecución con nombre de agente, descripción y dirección de Tentacle

```bash
./pandora_collectd -a Monitores_Servidor -d "Monitores del Servior Web" -i 127.0.0.1
```

# Configuración en PandoraFMS

Este plugin podemos configurarlo tanto como plugin de servidor como plugin de agente.

#### Plugin de Servidor

**1. Podemos subir el plugin a nuestro servidor en la ruta por defecto:**

```bash
/usr/share/pandora_server/util/plugin
```

**2. Nos dirigimos al apartado de plugins y añadimos uno nuevo:**

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/imagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/imagen.png)

**3. Añadimos el nombre, la descripción y el timeout del plugin:**

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/CUXimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/CUXimagen.png)

**4. Introducimos la ruta de ejecución del plugin y todos los parámetros que vayamos a usar:**

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/m1timagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/m1timagen.png)

<p class="callout info">Al ejecturase el plugin en el servidor de Pandora FMS en este caso, podemos introducir los parametros en el apartado "Plugin Command" directamente.  
Si pese a esto, vamos a querer modificar los parametros del plugin, los introduciremos con macros en el apartado "Plugin Parameters" para posteriormente indicarlos en la creación del módulo.</p>

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/mQ0imagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/mQ0imagen.png)

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/r5Pimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/r5Pimagen.png)

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/sfXimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/sfXimagen.png)

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/4Bvimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/4Bvimagen.png)

**5. Creamos el módulo de plugin en alguno de nuestros agentes de Pandora FMS:**

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/vkWimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/vkWimagen.png)

**6. Indicamos el plugin y los datos que queramos modificar y creamos el módulo:**[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/QZdimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/QZdimagen.png)

#### Plugin de Agente

**1. Podemos subir el plugin a nuestro agente en la ruta por defecto:**

```bash
/usr/share/pandora_agent/plugins
```

**2. Accedemos a la configuración de Plugins de nuestro agente y añadimos el plugin con los parametros que queramos:**

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/qslimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/qslimagen.png)

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/ILbimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/ILbimagen.png)

# Agente y módulos generados por el plugin

La ejecución del plugin (en agente o servidor) dará como resultado la creación de un Agente de Pandora FMS, con los módulos correspondientes a la recolección de monitores de collectd:

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/1L8imagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/1L8imagen.png)[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/M0Uimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/M0Uimagen.png)

[![imagen.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/RCOimagen.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/RCOimagen.png)