2 Autorregistro de agente activo
Resumen
Es posible permitir el autoregistro del Zabbix agent activo, tras lo cual el server puede empezar a monitorizarlos. De esta forma, se pueden añadir nuevos hosts para su monitorización sin configurarlos manualmente en el server.
El autoregistro puede producirse cuando un agent activo previamente desconocido solicita checks.
Esta funcionalidad puede ser muy útil para la monitorización automática de nuevos nodos en la nube. En cuanto tenga un nuevo nodo en la nube, Zabbix iniciará automáticamente la recopilación de datos de rendimiento y disponibilidad del host.
El autoregistro del agent activo también admite la monitorización de hosts añadidos con checks pasivos.
Cuando el agent activo solicita checks, siempre que tenga definidos en el archivo de configuración los parámetros de configuración ListenIP o ListenPort, estos se envían al server.
Si se especifican varias direcciones IP, la primera se envía al server.
Al añadir el nuevo host autoregistrado, el server utiliza la dirección IP y el puerto recibidos para configurar el agent. Si no se recibe ningún valor de dirección IP, se utiliza el empleado para la conexión entrante. Si no se recibe ningún valor de puerto, se utiliza 10050.
Es posible especificar que el host debe autoregistrarse con un nombre DNS como interfaz agent predeterminada.
El autoregistro se vuelve a ejecutar:
- si cambia la información de metadatos del host:
- porque HostMetadata ha cambiado y el agent se ha reiniciado
- porque ha cambiado el valor devuelto por HostMetadataItem
- para hosts creados manualmente a los que les faltan metadatos
- si un host se cambia manualmente para que sea monitorizado por otro Zabbix proxy
- si el autoregistro para el mismo host proviene de un nuevo Zabbix proxy
El heartbeat de autoregistro del agent activo para Zabbix server y Zabbix proxy es de 120 segundos. Por lo tanto, si se elimina un host descubierto, el autoregistro se volverá a ejecutar en 120 segundos.
Configuración
Especificar el servidor
Asegúrese de que el servidor Zabbix esté identificado en el archivo de configuración del agent - zabbix_agentd.conf:
ServerActive=10.0.0.1
A menos que defina específicamente un Hostname en zabbix_agentd.conf, el servidor utilizará el nombre de host del sistema donde se encuentra el agent para nombrar el host.
El nombre de host del sistema en Linux se puede obtener ejecutando el comando hostname.
Si Hostname se define en la configuración del agent Zabbix como una lista de hosts separada por comas, se crearán hosts para todos los nombres de host listados.
Reinicie el agent después de realizar cualquier cambio en el archivo de configuración.
Acción para el autoregistro de agent activos
Cuando el server recibe una solicitud de autoregistro de un agent, llama a una acción. Debe configurarse una acción con la fuente de eventos "Autoregistration" para el autoregistro de agent.
No es necesario configurar el descubrimiento de red para que los agent activos se autorregistren.
En el frontend de Zabbix, vaya a Alertas → Acciones, seleccione Acciones de autoregistro y haga clic en Crear acción:
- En la pestaña Acción, asigne un nombre a la acción
- Opcionalmente, especifique condiciones. Puede realizar una coincidencia de subcadena o una coincidencia por expresión regular en las condiciones para el nombre del host/los metadatos del host. Si va a utilizar la condición "Host metadata", consulte la siguiente sección.
- En la pestaña Operaciones, agregue las operaciones pertinentes, como: 'Add host', 'Add to host group' (por ejemplo, Discovered hosts), 'Link templates*, etc.
Si es probable que los hosts que se autorregistrarán solo sean compatibles con monitorización activa (como los hosts protegidos por firewall frente a su Zabbix server), puede que desee crear un template específico como Template_Linux-active para vincularlo.
Los hosts creados se agregan al grupo Discovered hosts (de forma predeterminada, configurable en Administración > General > Other). Si desea que los hosts se agreguen a otro grupo, añada una operación Remove from host group (especificando "Discovered hosts") y añada también una operación Add to host group (especificando otro grupo de hosts), porque un host debe pertenecer a un grupo de hosts.
Autoregistro seguro
Es posible un método seguro de autoregistro configurando la autenticación basada en PSK con conexiones cifradas.
El nivel de cifrado se configura globalmente en Administración > General > Autoregistro. Es posible seleccionar sin cifrado, cifrado TLS con autenticación PSK o ambos (de modo que algunos hosts puedan registrarse sin cifrado mientras que otros lo hagan mediante cifrado).
La autenticación por PSK es verificada por el servidor Zabbix antes de añadir un host. Si tiene éxito, el host se añade y las Conexiones desde/hacia el host se establecen sólo en 'PSK' con la identidad/clave precompartida igual que en la configuración global de autoregistro.
Para garantizar la seguridad del autoregistro en instalaciones que utilizan proxies, debe habilitarse el cifrado entre el servidor Zabbix y el proxy.
Usar DNS como interfaz predeterminada
Los parámetros de configuración HostInterface y HostInterfaceItem parámetros de configuración permiten especificar un valor personalizado para la interfaz del host durante la autorregistro.
Más específicamente, son útiles si el host debe ser autorregistrado con un nombre DNS como la interfaz de agent predeterminada en lugar de su dirección IP. En ese caso, el nombre DNS debe especificarse o devolverse como el valor de los parámetros HostInterface o HostInterfaceItem. Si el valor de uno de estos parámetros cambia, por ejemplo, de una dirección IP a un nombre DNS o viceversa, la interfaz predeterminada del host autorregistrado se actualizará en consecuencia. Esta actualización se aplica al host existente, no creando uno nuevo. Para enviar el nuevo valor, el agent debe reiniciarse para que reinicie el proceso de autorregistro.
Si los parámetros HostInterface o HostInterfaceItem no están configurados, se utiliza el parámetro listen_dns en su lugar. Este valor se determina realizando una búsqueda DNS inversa de la dirección IP del agent. Si la búsqueda DNS inversa no está configurada correctamente o devuelve un nombre no válido, puede resultar en un autorregistro incorrecto o fallido debido a un valor de interfaz no válido.
Uso de metadatos de host
Cuando el agent envía una solicitud de autorregistro al server, envía su nombre de host. En algunos casos (por ejemplo, nodos en la nube de Amazon) un nombre de host no es suficiente para que el server de Zabbix diferencie los hosts descubiertos. Los metadatos de host pueden usarse opcionalmente para enviar otra información desde un agent al server.
Los metadatos de host se configuran en el archivo de configuración del agent - zabbix_agentd.conf.
Hay 2 formas de especificar los metadatos de host en el archivo de configuración:
HostMetadata
HostMetadataItem
Consulte la descripción de las opciones en el enlace anterior.
El parámetro HostMetadataItem puede devolver hasta 65535 puntos de código UTF-8. Un valor más largo será truncado.
Tenga en cuenta que en MySQL, la longitud máxima efectiva en caracteres será menor si el valor devuelto contiene caracteres multibyte. Por ejemplo, un valor que contenga solo caracteres de 3 bytes se limitará a 21844 caracteres en total, mientras que un valor que contenga solo caracteres de 4 bytes se limitará a 16383 símbolos.
Se produce un intento de autorregistro cada vez que un agent activo envía una solicitud para actualizar las comprobaciones activas al server. El retraso entre solicitudes se especifica en el parámetro RefreshActiveChecks del agent. La primera solicitud se envía inmediatamente después de reiniciar el agent.
Ejemplos
Autoregistro por SO usando HostMetadata
Supongamos que desea que los hosts se autoregistren en el servidor Zabbix. Tiene agentes Zabbix activos (ver la sección "Configuración" arriba) en su red. Hay hosts Windows y Linux en su red y tiene disponibles las plantillas "Linux by Zabbix agent" y "Windows by Zabbix agent" en su frontend de Zabbix. Por lo tanto, al registrar el host, le gustaría que se aplicara la plantilla de Linux/Windows correspondiente al host que se está registrando. Por defecto, solo el nombre del host se envía al servidor durante el autoregistro, lo que podría no ser suficiente. Para asegurarse de que se aplique la plantilla adecuada al host, debe usar metadatos del host.
Configuración del frontend
Lo primero que hay que hacer es configurar el frontend. Cree 2 acciones. La primera acción:
- Nombre: Autoregistro de host Linux
- Condiciones: Los metadatos del host contienen Linux
- Operaciones: Vincular templates: Linux por Zabbix agent
En este caso puede omitir la operación "Añadir host". Vincular un template a un host requiere añadir primero el host, por lo que el server lo hará automáticamente.
La segunda acción:
- Nombre: Autoregistro de host Windows
- Condiciones: Los metadatos del host contienen Windows
- Operaciones: Vincular templates: Windows por Zabbix agent
Configuración del agent
Ahora necesita configurar los agents. Agregue la siguiente línea a los archivos de configuración del agent:
HostMetadataItem=system.uname
De esta manera, se asegura de que los metadatos del host contengan "Linux" o "Windows" dependiendo del host en el que se esté ejecutando el agent. Un ejemplo de metadatos del host en este caso:
Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32
No olvide reiniciar el agent después de realizar cualquier cambio en el archivo de configuración.
Uso de HostMetadata para controlar el registro automático y las plantillas
Paso 1 - Proteger el registro con HostMetadata
Utilizar metadatos de host para permitir cierta protección básica contra el registro de hosts no deseados.
Configuración del frontend
Cree una acción en el frontend, utilizando algún código secreto difícil de adivinar para evitar hosts no deseados:
- Nombre: Acción de autorregistro Linux
- Condiciones:
- Tipo de cálculo: AND
- Condición (A): Los metadatos del host contienen //Linux//
- Condición (B): Los metadatos del host contienen //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
- Operaciones:
- Enviar mensaje a los usuarios: Admin por todos los medios
- Añadir a los grupos de hosts: Servidores Linux
- Vincular templates: Linux por Zabbix agent
Tenga en cuenta que este método por sí solo no proporciona una protección sólida porque los datos se transmiten en texto plano. Se requiere recargar la caché de configuración para que los cambios tengan efecto inmediato.
Configuración del agent
Agregue la siguiente línea al archivo de configuración del agent:
HostMetadata=Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
donde "Linux" es una plataforma, y el resto de la cadena es el texto secreto difícil de adivinar.
No olvide reiniciar el agent después de realizar cualquier cambio en el archivo de configuración.
Paso 2 - Añadir template al host registrado
Es posible añadir templates adicionales a un host ya registrado.
En este caso, el template MySQL by Zabbix agent se vinculará sólo a los hosts cuyo HostMetadata contenga el token MySQL.
Configuración del frontend
Actualice la acción en el frontend:
- Nombre: Autoregistration action Linux
- Condiciones:
- Tipo de cálculo: AND
- Condición (A): Host metadata contiene Linux
- Condición (B): Host metadata contiene 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
- Condición (C): Host metadata contiene MySQL
- Operaciones:
- Enviar mensaje a los usuarios: Admin a través de todos los medios
- Añadir a los grupos de hosts: Linux servers
- Vincular templates: Linux by Zabbix agent
- Vincular templates: MySQL by Zabbix Agent
Configuración del agent
Actualice la siguiente línea en el archivo de configuración del agent:
HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
No olvide reiniciar el agent después de realizar cualquier cambio en el archivo de configuración.