/** * 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; }