Dos métodos para que zabbix recopile datos usando scripts de shell

    Objetivo: monitorear la cantidad de conexiones abiertas actualmente por mysql (Threads_connected).
    Entorno:
    Zabbix 4.0.29
    servidor zabbix : 192.168.149.149
    agente zabbix : 192.168.149.150

Método 1. Ejecutar el script de shell a través de zabbix-agent

    El resumen simple es que necesita personalizar el par clave-valor, tomar el valor de retorno del script de shell a través de zabbix-agent y luego pasarlo a zabbix-server.
    paso:

  1. Escriba el script monitor_mysql.sh en el lado del agente, el contenido es:
#!/bin/bash
export MYSQL_PWD=123456
/usr/bin/mysql -h 192.168.149.150 -uzabbix -e "show status like '%Threads_connected%';"|grep 'Threads_connected'|awk '{print $2}'

    MYSQL_PWD es la contraseña de la base de datos y puse el script en el directorio / tmp.

  1. Modifique los parámetros del usuario. Porque he configurado en el archivo de configuración zabbix_agentd.conf:
Include=/etc/zabbix/zabbix_agentd.d/*.conf

    Así que agréguelo a userparameter_mysql.conf en este directorio (si no hay userparameter_mysql.conf, simplemente cree uno nuevo):

UserParameter=mysql.Threads_connected,sh /tmp/monitor_mysql.sh

    Este es un par clave-valor, la clave es mysql.Threads_connected, y el valor es el valor de retorno del script, que es el número de conexiones abiertas actualmente por mysql.

  1. Utilice zabbix-get para probar en el lado del servidor. Pueden surgir los siguientes problemas:
# ./zabbix_get -s 192.168.149.150 -k "mysql.Threads_connected"
zabbix_get [9357]: Check access restrictions in Zabbix agent configuration

    Necesito modificar la opción de servidor de zabbix_agentd.conf, para evitar problemas, lo configuré en Server = 0.0.0.0 / 0.

# ./zabbix_get -s 192.168.149.150 -k "mysql.Threads_connected"
sh: /root/test/monitor_mysql.sh: 权限不够

    Verifique los permisos, acabo de mover el script del directorio / root / test al directorio / tmp.

  1. Configurar artículo. Dado que el valor de retorno es un número, seleccione Numérico.
    Inserte la descripción de la imagen aquí
  2. Consulte los datos más recientes.
    Inserte la descripción de la imagen aquí
Método 2. Ejecutar el script de shell a través de zabbix-server

    El resumen simple es ejecutar el script a través de la función de controles externos de zabbix-server y registrar el valor de retorno. La ventaja es la flexibilidad, el cliente no necesita ninguna configuración y no se requiere zabbix-agent; la desventaja es que el uso excesivo reducirá seriamente el rendimiento del sistema zabbix.
    paso:

  1. Consulta zabbix_server.conf, la configuración es la siguiente:
# ExternalScripts=${datadir}/zabbix/externalscripts

    Debido a que el directorio de instalación del servidor zabbix en el experimento es / usr / local / zabbix, la ruta predeterminada del script externo es / usr / local / zabbix / share / zabbix / externalscripts. Coloque monitor_mysql.sh en este directorio.

  1. Prueba en la línea de comandos.
# sh /usr/local/zabbix/share/zabbix/externalscripts/monitor_mysql.sh 
1

    No hay problema, vaya al siguiente paso de la configuración de la interfaz gráfica.

  1. Configuración de interfaz gráfica.
    Inserte la descripción de la imagen aquí
        El tipo es Verificación externa y Clave es el nombre del script. Si el script tiene parámetros, escríbalos entre corchetes, similar a check_oracle.sh ["- h", "{HOST.CONN}"].

  2. Consulte los datos más recientes.
    Inserte la descripción de la imagen aquí

Documentos de referencia

[1] Zabbix SIA.EXTERNAL CHECKS [EB / OL] .https: //www.zabbix.com/documentation/current/manual/config/items/itemtypes/external,2020-01-01.
[2] sfzhang.Zabbix + Servicio en línea de monitoreo de scripts de shell [EB / OL] .https: //blog.51cto.com/sfzhang88/999523,2012-09-20.

Supongo que te gusta

Origin blog.csdn.net/zsx0728/article/details/114527987
Recomendado
Clasificación