Hola.
Estamos detectando un problema a la hora de monitorizar SQL Servers con la plantilla https://github.com/MantasTumenas/Zab...oft-SQL-Server
No sabemos si es un problema de PowerShell o es una mala configuración del agente de Zabbix.
La plantilla hace LLD para bases de datos, trabajos, etc. El tema es que, por cada item descubierto (por ejemplo, base de datos), se lanza un PowerShell que interroga por el estado de la base de datos descubierta. Esto está genial, pero lo que vemos es que si tenemos 20 bases de datos, el check de comprobación del estado de la base de datos, el agente lanza un PowerShell interrogando por el estado de la base de datos A, y cuando SQL Server le retorna el estado de la base de datos A, lanza otro PowerShell interrogando por el estado de la base de datos B, y así por todas las bases de datos, pero lo hace uno a uno, no lanza, en el ejemplo, 20 PowerShells interrogando por el estado de todas las bases de datos. Y eso se traduce a n mensajes en la cola pendiente de datos:

Y luego para las gráficas, se ven puntos en lugar de lineas porque no está recibiendo datos (se esperan cada 30 s):

En UserParameters:
# User parameter to get a MS SQL database status
UserParameter=database.mssql.status[*],powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix Agent\scripts\Microsoft_SQL_Server\Discovery.mssql .databasestatus.ps1" -instName "$1" -dbName "$2"
y el script que se ejecuta sería este:
https://github.com/MantasTumenas/Zab...basestatus.ps1
Alguien se ha encontrado con este problema similar que lo haya podido resolver?
Gracias!
Estamos detectando un problema a la hora de monitorizar SQL Servers con la plantilla https://github.com/MantasTumenas/Zab...oft-SQL-Server
No sabemos si es un problema de PowerShell o es una mala configuración del agente de Zabbix.
La plantilla hace LLD para bases de datos, trabajos, etc. El tema es que, por cada item descubierto (por ejemplo, base de datos), se lanza un PowerShell que interroga por el estado de la base de datos descubierta. Esto está genial, pero lo que vemos es que si tenemos 20 bases de datos, el check de comprobación del estado de la base de datos, el agente lanza un PowerShell interrogando por el estado de la base de datos A, y cuando SQL Server le retorna el estado de la base de datos A, lanza otro PowerShell interrogando por el estado de la base de datos B, y así por todas las bases de datos, pero lo hace uno a uno, no lanza, en el ejemplo, 20 PowerShells interrogando por el estado de todas las bases de datos. Y eso se traduce a n mensajes en la cola pendiente de datos:
Y luego para las gráficas, se ven puntos en lugar de lineas porque no está recibiendo datos (se esperan cada 30 s):
En UserParameters:
# User parameter to get a MS SQL database status
UserParameter=database.mssql.status[*],powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix Agent\scripts\Microsoft_SQL_Server\Discovery.mssql .databasestatus.ps1" -instName "$1" -dbName "$2"
y el script que se ejecuta sería este:
https://github.com/MantasTumenas/Zab...basestatus.ps1
Alguien se ha encontrado con este problema similar que lo haya podido resolver?
Gracias!
Comment