'AIX'"; } if (!empty($conditions)) { // On ajoute les conditions à la requête de base $sql = $base_sql . " AND (" . implode(' OR ', $conditions) . ")"; } else { // Si rien n'est coché, on ne retourne aucun résultat $sql = $base_sql . " AND 1=0"; } // DATA $servers = Invoke_Infra($sql); // On utilise la nouvelle requête $UTDS1 = (Invoke_Infra("select max(Ver) as utd from X_cmdb_Product where Name = 's1'"))[0]['utd']; $UTDNessus = (Invoke_Infra("select max(Ver) as utd from X_cmdb_Product where Name = 'nessus'"))[0]['utd']; $UTDZabbix = (Invoke_Infra("select max(Ver) as utd from X_cmdb_Product where Name = 'zabbix'"))[0]['utd']; $rows = Invoke_Infra("SELECT DISTINCT(Ver) FROM X_cmdb_Product WHERE Name='bes'"); $versions = array_map(fn ($r) => $r['Ver'] ?? null, $rows); $versions = array_values(array_filter($versions)); usort($versions, 'version_compare'); $UTDBES = end($versions); $UTDFI = (Invoke_Infra("select max(Ver) as utd from X_cmdb_Product where Name = 'fi'"))[0]['utd']; ?>

>
>
"; //name $name = $s['hostname']; $heartbeat = $s['Heartbeat']; $statusClass = ''; $heartbeatDate = new DateTime($heartbeat); $now = new DateTime(); $interval = $now->diff($heartbeatDate); $diffInMinutes = ($interval->days * 24 * 60) + ($interval->h * 60) + $interval->i; if ($diffInMinutes < 10) { $statusClass = 'table-success'; } elseif ($diffInMinutes <= 30) { $statusClass = 'table-warning'; } else { $statusClass = 'table-danger'; } echo ""; //heartbeat echo ""; //Host echo ""; //OS Type $typ = match ($s['type'] ?? null) { 'AIX' => 'AIX', null, '' => '', default => 'LINUX', }; echo ""; //Distrib $Distrib = ""; if ($typ == "AIX") { $Distrib = $s['osversion']; } if ($typ == "LINUX") { $Distrib = $s['osversion'] . " (" . str_replace(".x86_64", "", $s['kernel']) . ")"; } echo ""; //LastReboot $lr = $s['lastboot'] ?? ""; $lrDate = ""; try { $lrDate = new DateTime($lr); } catch (DateMalformedStringException $e) { } $interval = (new DateTime())->diff($lrDate); if ($interval->days > 60) { echo ""; } else { if ($interval->days > 1) { echo ""; } else { echo ""; } } //LastBackup $lr = explode(".", $s['backuplast'] ?? "")[0]; if(str_contains(strtolower($s['backuplog'] ?? ''), 'progress')){ $size = "In Progress"; }elseif (str_contains(strtolower($s['backuplog'] ?? ''), 'waiting')){ $size = "
".$s['backuplog']."
"; }elseif (str_contains(strtolower($s['backuplog'] ?? ''), 'error')){ $size = " ERROR !!!"; }else { $size = 0; if ($s['backuplog'] != "") { if (str_contains($s['backuplog'], "Length")) { $size = explode(" ", $s['backuplog'])[1]; } else { $size = explode(" ", $s['backuplog'])[3]; } $size = floor($size / 1024 / 1024 / 1024); } if ($size >= 15) { $size = "$size GB"; } else { $size = "$size GB"; } } try { $lrDate = new DateTime($lr); } catch (DateMalformedStringException $e) { } $interval = (new DateTime())->diff($lrDate); if ($interval->days > 7 || $s['backuplast'] == "") { echo ""; } else { if ($interval->days > 1) { echo ""; } else { echo ""; } } //Auth echo ""; //SentinelOne $s1s = $s['S1State']; $s1v = $s['S1Version']; if ($typ == "LINUX") { if ($s1s == "YY") { if ($s1v == $UTDS1) { echo ""; } else { echo ""; } } else { if ($s1v == "") { echo ""; } else { echo ""; } } } else { echo ""; } //Nessus $s1s = $s['NessusState']; $s1v = $s['NessusVersion']; if ($typ == "LINUX") { if ($s1s == "YYY_YYY") { if ($s1v == $UTDNessus) { echo ""; } else { echo ""; } } else { if ($s1v == "") { echo ""; } else { echo ""; } } } else { echo ""; } //Zabbix $s1s = $s['ZabbixState']; $s1v = $s['ZabbixVersion']; if ($typ == "AIX" && str_starts_with($s['osversion'], '6')) { echo ""; } else { if ($s1s == "Y") { if ($s1v == $UTDZabbix) { echo ""; } else { echo ""; } } else { if ($s1v == "") { echo ""; } else { echo ""; } } } //BES $s1s = $s['BESState']; $s1v = $s['BESVersion']; if ($s1s == "Y") { if ($s1v == $UTDBES) { echo ""; } else { echo ""; } } else { if ($s1v == "") { echo ""; } else { echo ""; } } //FI $s1s = $s['FIState']; $s1v = $s['FIVersion']; if ($typ == "LINUX") { if ($s1s == "Y") { if ($s1v == $UTDFI) { echo ""; } else { echo ""; } } else { if ($s1v == "") { echo ""; } else { echo ""; } } } else { echo ""; } echo ""; } ?>
Distrib Auth SentinelOne Nessus Zabbix BES Fusion Inv.
"; echo " {$name}"; echo "" . $s["Heartbeat"] . "" . $s['Owner'] . "" . $s['type'] . "$Distrib$lr$lr$lr$lr" . " " . $size . "" . date_format($lrDate, "Y-m-d H:i:s") . " - " . $size . "$lr" . " - " . $size . "" . $s['auth'] . "$s1v $s1s$s1v $s1sMISSING$s1v $s1s$s1v $s1s$s1v $s1sMISSING$s1v $s1s$s1v $s1s$s1v $s1sMISSING$s1v $s1s$s1v $s1s$s1v $s1sMISSING$s1v $s1s$s1v $s1s$s1v $s1sMISSING$s1v $s1s