{ pkgs, lib }: let inherit (import ./helpers.nix { inherit pkgs lib; }) mkRow loki mkDashboard; mkLogs = { title, expr, w ? 24, h ? 10, }: { inherit title; type = "logs"; datasource = loki; gridPos = { inherit w h; }; options = { showTime = true; showLabels = true; sortOrder = "Descending"; wrapLogMessage = true; enableLogDetails = true; }; targets = [ { datasource = loki; inherit expr; } ]; }; in mkDashboard { name = "access-logs.json"; title = "Access Logs"; uid = "access-logs"; from = "now-6h"; panels = [ (mkRow "HTTP") (mkLogs { title = "nginx (access + error)"; expr = ''{syslog_id="nginx"}''; }) (mkRow "SSH") (mkLogs { title = "sshpiper (all connections)"; expr = ''{container="sshpiper"}''; }) (mkLogs { title = "Failed / invalid auth attempts (all backends, incl. host)"; expr = ''{syslog_id=~"sshd.*"} |~ "Failed|Invalid|error:"''; }) (mkLogs { title = "sshd auth events (all backends, incl. host)"; expr = ''{syslog_id=~"sshd.*"}''; }) (mkLogs { title = "Host sshd (port 5952)"; expr = ''{syslog_id=~"sshd.*", container=""}''; }) ]; }