{% extends "base.html" %} {% load static tz %} {% block title %}Audit • {{ server.display_name }} • Keywarden{% endblock %} {% block extra_head %} {% endblock %} {% block content %}
{% include "servers/_header.html" %}

Audit workspace

Open multiple filtered panels side by side for service/file comparisons.

Total: {{ audit_summary.total_count }} 24h: {{ audit_summary.recent_24h_count }}
Last event
{{ audit_summary.last_event_at|utc|date:"M j, Y H:i:s"|default:"—" }}{% if audit_summary.last_event_at %} UTC{% endif %}
Last ingest
{{ audit_summary.last_ingest_at|utc|date:"M j, Y H:i:s"|default:"—" }}{% if audit_summary.last_ingest_at %} UTC{% endif %}
Top categories
{% if audit_summary.top_categories %} {% for item in audit_summary.top_categories %} {{ item.category }}: {{ item.total }} {% endfor %} {% else %} — {% endif %}
{% with login=audit_charts.login_attempts %}

Login Attempts vs Failures

Click a bar to open logs with matching filters.

Failure rate: {{ login.failure_rate_pct }}%

No login events detected yet.

{% endwith %}
{% with http_codes=audit_charts.http_status_codes %}

HTTP Status Codes (Nginx)

Excludes implicit `1xx` and `200`; click a bar to filter logs.

Visible HTTP events: {{ http_codes.total }}
{% if http_codes.chart.labels %} {% elif http_codes.implicit_total %}

Only implicit `1xx`/`200` responses were observed ({{ http_codes.implicit_total }} entries), so this chart is intentionally empty.

{% else %}

No HTTP access events with status codes yet.

{% endif %}
{% endwith %} {% with event_types=audit_charts.security_event_types %}

Security Event Types

Click a bar to open logs filtered to that event type.

Events: {{ event_types.total }}

No security event-type distribution available yet.

{% endwith %}
{% with failed_ips=audit_charts.failed_source_ips %}

Failed Login Source IPs

Click a bar to inspect failed logins from that source IP.

Failed events: {{ failed_ips.total }}

No failed-login IP activity detected.

{% endwith %}

Panel 1

{% include "servers/_audit_panel.html" with panel=initial_panel server=server %}
{{ audit_charts.login_attempts.chart|json_script:"js-login-chart-data" }} {{ audit_charts.http_status_codes.chart|json_script:"js-http-status-chart-data" }} {{ audit_charts.security_event_types.chart|json_script:"js-security-events-chart-data" }} {{ audit_charts.failed_source_ips.chart|json_script:"js-failed-ips-chart-data" }} {% endblock %}