BastionGuard/webui/logs.php
specialworld83 f0f913a209 Release 2.0
2026-07-15 10:52:22 +02:00

28 lines
2.4 KiB
PHP

<?php
include 'auth.php';
$page_title = 'Log - BastionGuard WebUI';
$active_page = 'logs.php';
$lines = max(20, min(2000, (int)($_GET['lines'] ?? 200)));
$log_groups = [
'Antivirus realtime' => ['services'=>['clamav-clamonacc.service','clamonacc.service'], 'user'=>false],
'Freshclam' => ['services'=>['clamav-freshclam.service','freshclam.service'], 'user'=>false],
'Anti-Ransomware system' => ['services'=>['BastionGuard-ransomware-realtime.service','bastionguard-ransomware-realtime.service'], 'user'=>false],
'Anti-Ransomware user' => ['services'=>['BastionGuard-ransomware-alert.service','BastionGuard-ransomware-realtime-alert.service','BastionGuard-ransomware-scanner.service'], 'user'=>true],
'Anti-Phishing' => ['services'=>['BastionGuard-phishing-scanner.service','BastionGuard-phishing.service','bastionguard-phishing.service'], 'user'=>false],
'Mail proxy' => ['services'=>['BastionGuard-mailproxy.service','bastionguard-mailproxy.service'], 'user'=>true]
];
include 'includes/header.php'; include 'includes/sidebar.php';
?>
<div class="page-title"><div><h1>Logs</h1><p>journalctl collection for BastionGuard and ClamAV services. System and user logs are read through the WebUI helper when available.</p></div><form class="d-flex gap-2"><input class="form-control" name="lines" value="<?= bg_e($lines) ?>" style="width:110px"><button class="btn btn-outline-primary">Refresh</button></form></div>
<?php if (!is_executable('/usr/local/sbin/bastionguard-webui-admin')): ?>
<div class="alert alert-warning">Log helper not installed. Run: <code>sudo bash scripts/install-webui-helpers.sh &quot;$USER&quot;</code></div>
<?php endif; ?>
<div class="accordion" id="logsAccordion">
<?php $i=0; foreach($log_groups as $title=>$group): $i++;
$svc = isset($group['services']) && is_array($group['services']) ? $group['services'] : [];
try { $text = bg_journal($svc, $lines, !empty($group['user'])); }
catch (Throwable $e) { $text = 'Log page error: ' . $e->getMessage(); } ?>
<div class="accordion-item"><h2 class="accordion-header"><button class="accordion-button <?= $i>1?'collapsed':'' ?>" type="button" data-bs-toggle="collapse" data-bs-target="#log<?= $i ?>"><?= bg_e($title) ?></button></h2><div id="log<?= $i ?>" class="accordion-collapse collapse <?= $i===1?'show':'' ?>" data-bs-parent="#logsAccordion"><div class="accordion-body"><?php bg_render_log($text); ?></div></div></div>
<?php endforeach; ?>
</div>
<?php include 'includes/footer.php'; ?>