Linux audit (auditd) source and LogStream internal logs

Audit source (source_type=audit), off until enabled in Settings > Sources:
- follows /var/log/audit/audit.log (path configurable, AUDIT_LOG), with
  rotation (end of audit.log.1 read first) and an offset checkpoint in
  /data/audit-state.json; last AUDIT_BACKFILL (1h) read on first enable
- groups the records of an event by msg=audit(time:serial), closed on EOE,
  after 2 s without a record, or once the log has moved 2 s past it
- fields audit_type, audit_serial, auid, user (enriched name, host
  /etc/passwd or uid), exe, res, key, audit_raw; app = audit_type, host =
  node= / AUDIT_HOST / /host/etc/hostname; summary "who: what [key] →
  result"; warning when res=failed / success=no, info otherwise
- hexadecimal values (proctitle, cmd, exec arguments…) decoded

Internal logs (source_type=logstream, host=logstream, app=component):
- logEvent() for VictoriaLogs unreachable / back, lost batches, spooled
  batches refused, syslog listener errors, Docker API and container
  streams lost, failing sources, start and stop
- on by default from warning; switch and minimum level in Settings >
  Sources (/data/selflog.json)
- bounded queue, never waits for the Store, same event at most once per
  30 s with a count of the repeats: a failing Store cannot loop

UI: violet (audit) and turquoise (LogStream) left edge and tint, AUDIT /
LS badge before the app, raw audit record under the summary (folded in
compact density until the row is opened), Audit and LogStream in the
source filter, FR/EN translations. docker-compose: optional
/var/log/audit, /etc/passwd and /etc/hostname mounts. README (EN/FR):
host prerequisites (log_group, ACL for UID 10001).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
cedricandClaude Opus 5.5 committed 2026-10-04 15:01:58 +02:00
1 parent f3373e1f66
commit 076c01aac4
20 files changed
+1948 -36

No files matched your search

+35
View File
@@ -103,6 +103,8 @@
<option value="docker">Docker</option>
<option value="host" data-i18n="srcHost">Host system</option>
<option value="kernel" data-i18n="srcKernel">Kernel (dmesg)</option>
<option value="audit">Audit</option>
<option value="logstream">LogStream</option>
</select>
<span class="spacer"></span>
<span id="count" class="muted"></span>
@@ -276,6 +278,39 @@
<p class="muted small" data-i18n="dmesgHelp"></p>
</section>
<section class="set-section">
<h3 data-i18n="auditTitle">Linux audit (auditd)</h3>
<p id="auditStatus" class="docker-status"></p>
<label class="switch-row">
<input id="auditEnabled" type="checkbox" class="switch">
<span data-i18n="auditEnabled">Collect the audit events of this machine</span>
</label>
<div class="sl-grid">
<label class="lbl" for="auditPath" data-i18n="auditPath">File</label>
<input id="auditPath" type="text" class="dk-filter" autocomplete="off" spellcheck="false">
</div>
<p class="muted small src-help" data-i18n="auditHelp"></p>
</section>
<section class="set-section">
<h3 data-i18n="selfTitle">LogStream internal logs</h3>
<p id="selfStatus" class="docker-status"></p>
<label class="switch-row">
<input id="selfEnabled" type="checkbox" class="switch">
<span data-i18n="selfEnabled">Record the events of LogStream itself</span>
</label>
<div class="sl-grid">
<label class="lbl" for="selfLevel" data-i18n="selfLevel">Minimum level</label>
<select id="selfLevel" class="field self-level">
<option value="err" data-i18n="sev3">Errors and above</option>
<option value="warning" data-i18n="sev4">Warnings and above</option>
<option value="notice" data-i18n="sev5">Notice and above</option>
<option value="info" data-i18n="sev6">Info and above</option>
</select>
</div>
<p class="muted small src-help" data-i18n="selfHelp"></p>
</section>
<section class="set-section span">
<h3 data-i18n="dockerTitle">Docker containers</h3>
<p id="dockerStatus" class="docker-status"></p>