Explorar el Código

movi el prtg a su propio proyecto

EmilianoOrtiz hace 1 mes
padre
commit
4abbe6408f
Se han modificado 1 ficheros con 0 adiciones y 219 borrados
  1. 0 219
      sistema-mantenimiento-back/test_prtg_api.php

+ 0 - 219
sistema-mantenimiento-back/test_prtg_api.php

@@ -1,219 +0,0 @@
-<?php
-
-
-
-
-// Configuración PRTG
-$prtgUrl = 'http://192.168.2.3';
-$username = 'prtgadmin';
-$password = 'Ittec2025!';
-
-// Configuración BD 
-$host = 'localhost';
-$port = 3306;
-$database = 'samqa';
-$dbUsername = 'root';
-$dbPassword = 'root';
-
-// Función para hacer peticiones HTTP
-function makeRequest($url, $params) {
-    $queryString = http_build_query($params);
-    $fullUrl = $url . '?' . $queryString;
-    
-    echo "[REQUEST] " . date('Y-m-d H:i:s') . " - $fullUrl\n";
-    
-    $context = stream_context_create([
-        'http' => [
-            'timeout' => 30,
-            'method' => 'GET'
-        ]
-    ]);
-    
-    $response = @file_get_contents($fullUrl, false, $context);
-    
-    if ($response === false) {
-        $error = error_get_last();
-        echo "[ERROR] " . date('Y-m-d H:i:s') . " - Error: " . $error['message'] . "\n";
-        return false;
-    }
-    
-    echo "[SUCCESS] " . date('Y-m-d H:i:s') . " - Respuesta recibida\n";
-    return $response;
-}
-
-// Función para obtener sensores del grupo SAM
-function getSAMSensors($prtgUrl, $username, $password) {
-    echo "\n=== CONSULTANDO SENSORES DEL GRUPO SAM ===\n";
-    
-    $params = [
-        'content' => 'sensors',
-        'output' => 'json',
-        'columns' => 'objid,lastvalue,parentid',
-        'filter_group' => 'SAM',
-        'username' => $username,
-        'password' => $password
-    ];
-    
-    $response = makeRequest($prtgUrl . '/api/table.json', $params);
-    
-    if ($response) {
-        echo "\n=== RESPUESTA SENSORES SAM ===\n";
-        echo $response . "\n";
-        echo "=== FIN RESPUESTA SENSORES ===\n\n";
-        return $response;
-    }
-    
-    return false;
-}
-
-
-
-// Función para conectar a BD
-function connectDB($host, $port, $database, $username, $password) {
-    try {
-        $pdo = new PDO("mysql:host=$host;port=$port;dbname=$database;charset=utf8", $username, $password);
-        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-        echo "[DB] Conexión establecida\n";
-        return $pdo;
-    } catch (PDOException $e) {
-        echo "[ERROR DB] " . $e->getMessage() . "\n";
-        return false;
-    }
-}
-
-// Matriz de relación sensor -> contador (hardcodeada)
-$sensorCounterMap = [
-    //2098 => 1,
-    2099 => 13,
-    2123 => 14
-    
-];
-
-// Función para buscar EQUI_COEQ por parentid
-function getEquiCoeq($pdo, $parentid) {
-    $stmt = $pdo->prepare("SELECT EQUI_COEQ FROM s002v01tequi WHERE JSON_CONTAINS(EQUI_OTCO, JSON_QUOTE(?))");
-    $stmt->execute([$parentid]);
-    $result = $stmt->fetchColumn();
-    return $result ?: null;
-}
-
-// Función para buscar lista de CONA_IDCO por EQUI_COEQ
-function getConaIdcoList($pdo, $equipCoeq) {
-    $stmt = $pdo->prepare("SELECT CONA_IDCO FROM S002V01TCONA WHERE CONA_COEQ = ?");
-    $stmt->execute([$equipCoeq]);
-    $results = $stmt->fetchAll(PDO::FETCH_COLUMN);
-    return $results ?: [];
-}
-
-// Función para registrar medición
-function registerMeasurement($pdo, $mediCore, $lastValue) {
-    $stmt = $pdo->prepare("
-        INSERT INTO s002v01tmedi 
-        (MEDI_NULI, MEDI_CORE, MEDI_VALO, MEDI_WSRE, MEDI_HORE) 
-        VALUES (1, ?, ?, 1, NOW())
-    ");
-    
-    return $stmt->execute([$mediCore, $lastValue]);
-}
-
-// Ejecutar recolección
-echo "=== RECOLECTOR DE MEDICIONES PRTG ===\n";
-echo "Fecha: " . date('Y-m-d H:i:s') . "\n";
-echo "Servidor PRTG: $prtgUrl\n";
-echo "Grupo: SAM\n";
-
-try {
-    // Conectar BD
-    $pdo = connectDB($host, $port, $database, $dbUsername, $dbPassword);
-    if (!$pdo) {
-        throw new Exception("No se pudo conectar a la base de datos");
-    }
-    
-    // Consultar sensores del grupo SAM
-    $sensorsResponse = getSAMSensors($prtgUrl, $username, $password);
-    if (!$sensorsResponse) {
-        throw new Exception("No se obtuvieron sensores de PRTG");
-    }
-    
-    $sensors = json_decode($sensorsResponse, true);
-    if (!$sensors || !isset($sensors['sensors'])) {
-        throw new Exception("No se pudo decodificar respuesta de sensores");
-    }
-    
-    echo "\n=== PROCESANDO SENSORES ===\n";
-    $processed = 0;
-    $registered = 0;
-    
-    foreach ($sensors['sensors'] as $sensor) {
-        $objid = $sensor['objid'];
-        $parentid = $sensor['parentid'];
-        $lastValueRaw = $sensor['lastvalue_raw'] ?? '';
-        
-        // Validar lastvalue_raw - si está vacío, usar 0
-        $lastValue = (empty($lastValueRaw) || trim($lastValueRaw) === '') ? 0 : $lastValueRaw;
-        
-        echo "[SENSOR] Procesando objid: $objid, parentid: $parentid, valor: $lastValue\n";
-        
-        // 1. Verificar si el sensor está en la matriz
-        if (!isset($sensorCounterMap[$objid])) {
-            echo "[SKIP] Sensor $objid no está en la matriz de relación\n";
-            $processed++;
-            continue;
-        }
-        
-        $expectedCounter = $sensorCounterMap[$objid];
-        echo "[MATRIX] Sensor $objid -> Contador esperado: $expectedCounter\n";
-        
-        // 2. Buscar EQUI_COEQ usando parentid
-        $equipCoeq = getEquiCoeq($pdo, $parentid);
-        if (!$equipCoeq) {
-            echo "[SKIP] No se encontró EQUI_COEQ para parentid: $parentid\n";
-            $processed++;
-            continue;
-        }
-        
-        echo "[FOUND] EQUI_COEQ: $equipCoeq\n";
-        
-        // 3. Buscar lista de CONA_IDCO
-        $conaIdcoList = getConaIdcoList($pdo, $equipCoeq);
-        if (empty($conaIdcoList)) {
-            echo "[SKIP] No se encontraron contadores para EQUI_COEQ: $equipCoeq\n";
-            $processed++;
-            continue;
-        }
-        
-        echo "[FOUND] Contadores disponibles: " . implode(', ', $conaIdcoList) . "\n";
-        
-        // 4. Verificar si el contador esperado está en la lista
-        if (!in_array($expectedCounter, $conaIdcoList)) {
-            echo "[SKIP] Contador esperado $expectedCounter no está en la lista de contadores del dispositivo\n";
-            $processed++;
-            continue;
-        }
-        
-        echo "[MATCH] Contador $expectedCounter encontrado en dispositivo\n";
-        
-        // 5. Registrar medición
-        if (registerMeasurement($pdo, $expectedCounter, $lastValue)) {
-            echo "[SUCCESS] Medición registrada con contador: $expectedCounter\n";
-            $registered++;
-        } else {
-            echo "[ERROR] No se pudo registrar medición\n";
-        }
-        
-        $processed++;
-        echo "\n";
-    }
-    
-    echo "=== RESUMEN ===\n";
-    echo "Sensores procesados: $processed\n";
-    echo "Mediciones registradas: $registered\n";
-    echo "[INFO] Recolección completada\n";
-    
-} catch (Exception $e) {
-    echo "[ERROR FATAL] " . date('Y-m-d H:i:s') . " - " . $e->getMessage() . "\n";
-}
-
-echo "\n=== FIN RECOLECTOR ===\n";
-
-?>