Directorio de artículos
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:
- 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.
- 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.
- 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.
- Configurar artículo. Dado que el valor de retorno es un número, seleccione Numérico.
- Consulte los datos más recientes.
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:
- 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.
- 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.
-
Configuración de interfaz gráfica.
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}"]. -
Consulte los datos más recientes.
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.