IT Blog

En nuestro IT blog, ofrecemos información sobre Monitoring & Management. La filosofía de Custos Monitoring es "Aprender y compartir"

Zabbix Agent avanzado. Configuración avanzada.

Ahora que ya conocemos las configuraciones básicas y necesarias del Zabbix Agent, podemos descubrir otras configuraciones. Con esto definiremos nuevas funcionalidades y tendremos mayor control sobre nuestros equipos.

Autoregister en Zabbix

El Autoregister es una opción la cual permite que se registre automáticamente en el equipo quede monitoreado. Siempre y cuando esté bien instalado y funcionando el Zabbix Agent en un equipo

Esto ahorra tiempo si tenemos que hacer una instalación masiva en muchos equipos. De esta manera no tenemos que ir agregando cada equipo manualmente.

Tener en cuenta que ésta funcionalidad está implementada desde Zabbix 2.0, pero a partir de las versiones 4.0. La acción de Autoregister se realiza cada vez que el Zabbix Agent intenta hacer un chequeo de tipo Active Check.

En estas versiones esto ocurre cada 60s, lo cual favorece la rapidez para detectar nuevos equipos.

Crear un Action

Para configurar dicha funcionalidad, debemos ir a la sección «Configuration». Luego a «Action» en nuestro Zabbix Frontend y seleccionar el tipo de Acción. Debemos elegir en el menú desplegable «Event source: Autoregister» y finalmente hacer clic en el botón «Create Action».

Allí, estableceremos condiciones para que la Acción de Autoregister ocurra cuando dichas condiciones se cumplan; o por el contrario, no se cumplan. Es decir, hacer que dicha Acción se ejecute con una negación referente al contenido del Metadata.

Zabbix Agent avanzado.  Autoregister.

De esta manera podemos, por ejemplo, establecer que la Acción sea ejecutada si el Metadata contiene una palabra que definiremos. O bien, si es exactamente dicha palabra o sentencia.

En este caso, definimos que, si el Metadata es equivalente a la frase «oficina-central», se va a ejecutar dicha Acción.

Definir Operaciones en Action

Ahora bien, si vamos a agregar a Zabbix los nuevos Zabbix Agent que se detecten, entonces necesitamos definir una Operación y definir más datos. Es posible configurar el HostGroup a donde irá este nuevo Host y que Templates se les asignarán.

Esto lo hacemos al cambiar a la pestaña «Operations» y clic en «New».

Zabbix Agent avanzado.  Action

Se desplegarán opciones para que podamos crear una nueva Operación. En este caso, queremos que el nuevo Host que se reporte sea agregado, en el HostGroup «Equipos Oficina Central».

Para eso debemos configurar las Operaciones de la Acción definiendo una Operación para cada característica que queramos especificar.

Primero, debemos especificar que cuando se ejecute la Acción, se agregue el Host en cuestión (que cumpla las condiciones que establecimos al principio). Elegiremos entonces, «Operation type: Add Host», y haremos clic en Add para añadir la Operación a la Acción.

Zabbix Agent avanzado.  Add Host

En segundo lugar, añadiremos otra Operación haciendo clic en el botón «New» y luego elegiremos «Operation type: Add to host group»

Zabbix Agent avanzado.  Add to host group

Finalmente daremos clic en el botón azul «Add» que está abajo, para crear la Acción. Recordemos que se puede deshabilitar la Acción y también editar o eliminar tanto la Acción como sus Operaciones.

Como mencionamos anteriormente, también es posible determinar condiciones más complejas. Con el uso de Regular Expressions podemos indicar que la condición se cumpla si el Metadata equivale a «nada». Es decir, no se define o está vacío.

Zabbix Agent avanzado. Add

Configuración del Metadata y ServerActive en Zabbix Agent

Ahora bien, ¿cómo configuramos el Metadata en el Zabbix Agent? Para acceder a esta configuración, tenemos que modificar el parámetro «Metadata». El mismo está en el archivo de configuración del Zabbix Agent, donde podemos descomentar el parámetro. Esto sería quitar el # que está delante de «Metadata» y modificar el valor para hacerlo coincidir con lo establecido en la condición del Action.

Zabbix Agent avanzado.  Metadata

También es necesario especificar el parámetro ServerActive en el archivo de configuración del Zabbix Agent. Esto lo hacemos para definir que los chequeos de tipo Active Checks sean dirigidos a la IP que definimos en el parámetro.

En este punto iniciamos o reiniciamos el Zabbix Agent, y podemos echar un vistazo al Log de Zabbix Server. Podemos ver que el equipo en cuestión intentó hacer un chequeo de tipo Active Check y dio error (ya que el mismo no esta agregado en Zabbix).

Sin embargo, al tener el Action de Autoregister, dicho error solo ocurre esa vez, ya que es el momento en cuando se toman los datos para poder darse de alta él mismo.

Tener en cuenta que, añadir equipos mediante la función Autoregister, se rige bajo las mismas reglas que añadir un equipo manualmente. Es decir, esto solamente podrá funcionar si no existe un Host con el mismo Hostname.

Por tanto es necesario cambiar siempre el Hostname en el archivo de configuración del Zabbix Agent. O bien asegurarse que el nombre de Host del equipo sea diferente y único a los que ya existen.

Asignación de nuevas Keys en Zabbix

Para asignar nuevas Keys en Zabbix, tenemos que comprender primero qué son las Keys y que es el archivo Userparameters. El uso de este archivo, permite una funcionalidad extendida para mejorar el desempeño de Zabbix. Puedes ver más información en el artículo Zabbix Agent: Uso de Módulos

  • Key
    • Es un atributo del Item el cual se refiere a una solicitud, comando o query para obtener determinados datos recolectados por Zabbix. Recordemos que un Item es un elemento que podemos agregar en Zabbix para configurar un nuevo chequeo, y la query es una solicitud o consulta al Zabbix Database, una vez ya se recolectó dicho dato (gracias a un comando).
  • Userparameters
    • Dicho archivo sirve para especificar nuevas Keys en él. Es muy útil cuando queremos consultar por algún chequeo que no está comprendido por las Keys que tiene por defecto el Zabbix Agent. De esta manera, podemos agregar un nuevo Item a Zabbix, con esta nueva Key que creamos, y tener monitoreo en el Zabbix Frontend, ver el histórico, verlo en Grafana, etc.

Editar el archivo Userparameters en Zabbix Agent

Es necesario que dicho archivo este configurado en todos los equipos en los que necesitamos que funcionen las Keys que queremos establecer. Por ejemplo, si queremos configurar un archivo Userparameters donde se definan las Keys que utilizaremos para realizar consultas a la Zabbix Database, deberíamos crearlo en el Zabbix Agent del Zabbix Database.

Para que funcione el archivo Userparamenters, también es necesario indicarle dónde está éste archivo al Zabbix Agent.

Esto se puede hacer editando el archivo de configuración del Zabbix Agent, y agregar la siguiente línea. Podemos realizar la búsqueda del término «include» en el archivo de configuración de Zabbix Agent para ubicarnos rápidamente y encontrar el lugar donde debemos configurar que, Zabbix Agent incluya también las Keys que se encuentran en dicho directorio y que terminen con .conf.

Include=/etc/zabbix/zabbix_agentd.d/*.conf
Zabbix Agent avanzado. .conf

Vamos a crear el archivo userparameters.mysql en la ruta que especificamos y lo editaremos para continuar con las Keys.

Ahora, se debe seguir determinada sintaxis para que las nuevas Keys sean reconocidas y funcionen como tal.

Userparameters=<key>,<command>

La <key> será de nuestra elección, que sea referente al propósito de dicha consulta. Debe ser única dentro del Host, es decir que en el Host, no puede existir otra Key con el mismo nombre. Ésta, será la misma Key que vamos a introducir cuando creemos el Item y debamos especificar la Key del mismo.

*insertar captura de pantalla al cr4ar un item

El <command> es el script o la función mediante la cual recolectaremos esos datos que serán guardados en el Zabbix Database. Puede ser la ejecución de un archivo con un script mucho más complejo que hayamos definido.

Mysql.ping como ejemplo para Key

En el siguiente ejemplo tenemos un Userparameter con <key> = mysql.ping y un <command> = mysqladmin -uroot ping | grep -c alive

UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

La <key> mysql.ping es simplemente el nombre de la Key para poder hacer referencia a la misma y la que vamos a utilizar al crear el Item.

El <comand> mysqladmin -uroot ping | grep -c alive, intenta conectarse y hacer un ping con el usuario root. Existe una separación con «|», esto hace que lo que está después del pipeline se ejecute luego de haber ejecutado lo que está antes del mismo.

Entonces, la ejecución de mysqladmin -uroot ping dará un resultado donde veremos la información del ping que realizamos, en definitiva si se puede o no conectar a la Base de Datos.

Esto imprimirá un resultado en pantalla, en el cual buscamos y contamos con un grep, si existe el término «alive». De esta manera, si la ejecución de este UserParameter da como resultado «1», significa que encontró una vez el término «alive» y por tanto, la conexión a mysql está disponible.

Tener en cuenta que, si queremos utilizar comandos más complejos, y realizar consultas al Zabbix Database, lo más probable es que debamos utilizar un usuario con una contraseña que tenga los permisos suficientes para acceder a la Database en cuestión. Tendremos que definir un archivo y especificar en el mismo, los datos para conectarnos a MySQL.

Este mismo archivo será el que Userparameters tomará como referencia para hacer la conexión y la consulta. Para que lo encuentre, es necesario especificar que el directorio donde se encuentra este archivo .my.cnf, sea el HOME.

/var/lib/zabbix/.my.cnf

[client]
user=usuario
password=contraseña

🔗 Lee más en Zabbix


¿Tienes alguna consulta o quieres conocer más sobre Zabbix? ¡Hablemos! Whatsapp | Telegram | info@custos.uy

Custos MonitoringZabbix Agent avanzado. Configuración avanzada.
Share this post

Join the conversation

Related Posts