first commit
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* Zabbix JavaScript para consulta de datos MAC por puerto
|
||||
* Compatible con versiones antiguas - Funciona con Zabbix 4.x, 5.x y 6.x
|
||||
* Formato de respuesta estructurado por puertos
|
||||
*/
|
||||
|
||||
// Configuración mediante macros
|
||||
var serviceUrl = "{$CISCO_SERVICE_URL}";
|
||||
var ciscoHost = "{$CISCO_HOST}";
|
||||
var ciscoUsername = "{$CISCO_USERNAME}";
|
||||
var ciscoPassword = "{$CISCO_PASSWORD}";
|
||||
|
||||
// Validar parámetros requeridos
|
||||
if (!serviceUrl || !ciscoHost || !ciscoUsername || !ciscoPassword) {
|
||||
throw "Faltan parámetros: CISCO_SERVICE_URL, CISCO_HOST, CISCO_USERNAME, CISCO_PASSWORD";
|
||||
}
|
||||
|
||||
// Log de inicio
|
||||
Zabbix.Log(4, "[Cisco MAC] Host: " + ciscoHost);
|
||||
|
||||
// Preparar datos para POST
|
||||
var postData = JSON.stringify({
|
||||
"host": ciscoHost,
|
||||
"username": ciscoUsername,
|
||||
"password": ciscoPassword,
|
||||
"port": 22,
|
||||
"timeout": 30
|
||||
});
|
||||
|
||||
// Crear request HTTP (método básico compatible)
|
||||
var req = new HttpRequest();
|
||||
req.addHeader('Content-Type: application/json');
|
||||
|
||||
try {
|
||||
// Hacer consulta POST
|
||||
var response = req.post(serviceUrl , postData);
|
||||
|
||||
// Verificar status
|
||||
if (req.getStatus() !== 200) {
|
||||
throw "HTTP Error " + req.getStatus();
|
||||
}
|
||||
|
||||
// Parsear respuesta
|
||||
var jsonData = JSON.parse(response);
|
||||
|
||||
// Validar estructura
|
||||
if (!jsonData.data) {
|
||||
throw "Invalid response structure";
|
||||
}
|
||||
|
||||
// Log de éxito
|
||||
Zabbix.Log(4, "[Cisco MAC] Success: " + jsonData.data.length + " ports");
|
||||
|
||||
// Retornar datos estructurados por puertos
|
||||
return JSON.stringify(jsonData);
|
||||
|
||||
} catch (error) {
|
||||
Zabbix.Log(2, "[Cisco MAC] ERROR: " + error);
|
||||
throw "Cisco MAC query failed: " + error;
|
||||
}
|
||||
Reference in New Issue
Block a user