docs: fix observability.md - add missing 4th log fan-out (auditd)
A real log source was added the day after this doc's last verify (2026-09-07): auditd logs now ship to Loki too, on the 6 hosts carrying the auditd_hardening role, after a real incident where one host's /var/log/audit filled to 100% with zero external visibility. Updated the diagram to add the 4th branch (rebuilt via Nextcloud Diagramming, re-exported) and added prose describing it. Also corrected the diagram's DNS branch label (job=dns -> job=technitium-dns, matching the doc's own already-correct evidence-screenshot caption). Journald sizing config (1G rocky-docker override, 500M fleet default) confirmed byte-for-byte accurate live on both.
This commit is contained in:
2 files changed
+6
-4
No files matched your search
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Do not edit this file with editors other than draw.io -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent; color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="872px" height="273px" viewBox="0 0 872 273" content="<mxfile host="embed.diagrams.net" scale="1" border="0"> <diagram name="Log Fanout" id="obs-logfanout-1"> <mxGraphModel dx="1414" dy="791" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1000" pageHeight="320" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="a1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="journald&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;system logs&lt;/font&gt;" vertex="1"> <mxGeometry height="60" width="200" x="40" y="30" as="geometry" /> </mxCell> <mxCell id="b1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="Loki&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;job=system&lt;/font&gt;" vertex="1"> <mxGeometry height="60" width="200" x="700" y="30" as="geometry" /> </mxCell> <mxCell id="e1" edge="1" parent="1" source="a1" style="html=1;endArrow=block;strokeColor=#6c8ebf;strokeWidth=2;rounded=1;" target="b1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="a2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="Docker API&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;container logs, survives recreation&lt;/font&gt;" vertex="1"> <mxGeometry height="60" width="200" x="40" y="130" as="geometry" /> </mxCell> <mxCell id="b2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="Loki&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;job=docker&lt;/font&gt;" vertex="1"> <mxGeometry height="60" width="200" x="700" y="130" as="geometry" /> </mxCell> <mxCell id="e2" edge="1" parent="1" source="a2" style="html=1;endArrow=block;strokeColor=#6c8ebf;strokeWidth=2;rounded=1;" target="b2"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="a3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="DNS query log&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;daily rotation&lt;/font&gt;" vertex="1"> <mxGeometry height="60" width="200" x="40" y="230" as="geometry" /> </mxCell> <mxCell id="b3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="Loki&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;job=dns, real event time&lt;/font&gt;" vertex="1"> <mxGeometry height="60" width="200" x="700" y="230" as="geometry" /> </mxCell> <mxCell id="e3" edge="1" parent="1" source="a3" style="html=1;endArrow=block;strokeColor=#6c8ebf;strokeWidth=2;rounded=1;" target="b3Line truncated
|
||||
<svg xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent; color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="872px" height="373px" viewBox="0 0 872 373" content="<mxfile host="embed.diagrams.net" scale="1" border="0">
 <diagram name="Log Fanout" id="obs-logfanout-1">
 <mxGraphModel dx="1398" dy="830" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1000" pageHeight="420" math="0" shadow="0">
 <root>
 <mxCell id="0" />
 <mxCell id="1" parent="0" />
 <mxCell id="a1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="journald&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;system logs&lt;/font&gt;" vertex="1">
 <mxGeometry height="60" width="200" x="40" y="30" as="geometry" />
 </mxCell>
 <mxCell id="b1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="Loki&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;job=system&lt;/font&gt;" vertex="1">
 <mxGeometry height="60" width="200" x="700" y="30" as="geometry" />
 </mxCell>
 <mxCell id="e1" edge="1" parent="1" source="a1" style="html=1;endArrow=block;strokeColor=#6c8ebf;strokeWidth=2;rounded=1;" target="b1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="a2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="Docker API&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;container logs, survives recreation&lt;/font&gt;" vertex="1">
 <mxGeometry height="60" width="200" x="40" y="130" as="geometry" />
 </mxCell>
 <mxCell id="b2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="Loki&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;job=docker&lt;/font&gt;" vertex="1">
 <mxGeometry height="60" width="200" x="700" y="130" as="geometry" />
 </mxCell>
 <mxCell id="e2" edge="1" parent="1" source="a2" style="html=1;endArrow=block;strokeColor=#6c8ebf;strokeWidth=2;rounded=1;" target="b2">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="a3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="DNS query log&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;daily rotation&lt;/font&gt;" vertex="1">
 <mxGeometry height="60" width="200" x="40" y="230" as="geometry" />
 </mxCell>
 <mxCell id="b3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333;fontSize=12;fontStyle=1;shadow=1;" value="Loki&lt;br&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;job=technitium-dns, real event time&lt;/font&gt;" vertex="1">
 <mxGeometry height="60" width="200" x="700" y="230" as="geometry" />
 </mxCell>
 <mxCell id="e3" edge="1" parent="1" source="a3" style="html=1;endArrow=block;strokeColor=#6c8ebf;strokeWidth=2;rounded=1;" targLine truncated
|
||||
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 136 KiB |
@@ -1,5 +1,5 @@
|
||||
<!-- verified: 2026-09-06
|
||||
iac@49ff427 : ansible/roles/monitoring/observability_agent
|
||||
<!-- verified: 2026-09-19
|
||||
iac@f770e1c : ansible/roles/monitoring/observability_agent
|
||||
trilium : eeiUz4iTEgPL, zquji4XOpw5M, s5tWZshDEpQb, oWr1jJhvqitv
|
||||
-->
|
||||
|
||||
@@ -48,7 +48,9 @@ SystemKeepFree=1G
|
||||
MaxRetentionSec=14day
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
A fourth, newer branch ships raw auditd logs to Loki too, on the 6 hosts that carry the `auditd_hardening` compliance role (automation, caddy, monitoring, technitium, vault, wazuh) — a real gap-fill after one host's own `/var/log/audit` once filled to 100% with zero external visibility to catch it. It doesn't replace the local cleanup timer that actually bounds that disk usage; it just means the data isn't only ever local anymore.
|
||||
|
||||
This is real log data flowing through that pipeline, not a mockup — `job=technitium-dns` entries showing real DNS query/answer content, `job=docker` entries from real containers, and `job=system` from journald itself, all landing in the same Loki instance:
|
||||
|
||||
|
||||
Reference in new issue
Block a user