[object Object]

← back to Cncp Failure Collector

Apply benign-noise filter in scanLinuxLogs so nginx TLS-probe noise (bad key share) stops creating ledger rows

0d7a271ed3413dcb910b62fc6722f07cad23be48 · 2026-05-30 11:34:45 -0700 · SteveStudio2

Files touched

Diff

commit 0d7a271ed3413dcb910b62fc6722f07cad23be48
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date:   Sat May 30 11:34:45 2026 -0700

    Apply benign-noise filter in scanLinuxLogs so nginx TLS-probe noise (bad key share) stops creating ledger rows
---
 index.js | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/index.js b/index.js
index 388da8d..3af83e4 100644
--- a/index.js
+++ b/index.js
@@ -350,6 +350,14 @@ async function scanLinuxLogs(state) {
     const meaningful = /\b(error|fatal|crit|emerg|alert|panic|segfault|core dumped)\b/i.test(chunk);
     if (!meaningful) { state.logOffsets[errPath] = cur; continue; }
     const processName = path.basename(errPath).replace(/\.log$/, '');
+    // Per-process known-benign-noise filter (same as the launchd path). nginx
+    // error.log (processName === 'error') is mostly TLS-probe noise from bots —
+    // SSL_do_handshake bad key share / unsupported protocol / etc. If EVERY line
+    // in the new chunk is that noise, advance the offset without posting. A chunk
+    // mixing real errors with TLS noise still posts (isBenignNoise requires ALL
+    // lines match). Without this, a single inbound bad-key-share crit became a
+    // high-severity ledger row (2026-05-30).
+    if (isBenignNoise(processName, chunk)) { state.logOffsets[errPath] = cur; continue; }
     const posted = await postTask({
       source: 'linux',
       processName,

← bba7324 fix(collector): bump execSync maxBuffer to prevent pm2 jlist  ·  back to Cncp Failure Collector  ·  (newest)