fix(lab): silence Asterisk noise at the source, keep notice logging

Follow-up to 3150f78, which over-corrected. Dropping `notice` from logger.conf
made the log quiet by making the gateway undebuggable: Asterisk reports
rejected SIP requests at notice level via log_failed_request ("No matching
endpoint found", "Failed to authenticate"), and on a box whose entire job is
answering SIP those are the most useful lines it produces. A call was refused
and nothing said so.

`notice` is restored. The noise is dealt with where it originates instead:

- modules.conf, new. The image ships `autoload=yes` and loads every module it
  was built with, including chan_alsa on a container with no sound card:
  ~74 ALSA config errors per restart, plus module-load ERRORs for CDR/CEL
  backends, LDAP/ODBC realtime config, and format_ogg_vorbis — none of which
  can work here. Explicit noload for those; autoload stays on, because an
  allow-list would break quietly the first time a scenario needs a module
  nobody remembered to add.

- The healthcheck reduction from 3150f78 (one CLI connection on a 60s
  interval, rather than the image's ~7 every 30s) does the rest.

Verified on galatea: ALSA lines 74 → 0, all startup ERRORs gone (only one-off
benign WARNINGs remain), steady-state 4 lines per 2 minutes against ~840 per
30 minutes originally — and a refused call still logs 6 diagnostic lines.
Transport bound, both endpoints and dialplan loaded, container healthy.

`verbose` stays excluded: dialplan execution is worth having when tracing a
specific call, not worth shipping to Loki continuously. Raise it at runtime
with `asterisk -rx "core set verbose 3"`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-29 18:16:30 -04:00
parent 3150f78552
commit 9dc766d631
3 changed files with 66 additions and 11 deletions

View File

@@ -9,16 +9,22 @@ dateformat = %F %T
; mounted for the setting to take effect.
[logfiles]
; Warnings and errors only. That covers what matters when a lab call
; misbehaves: failed authentication, no-matching-endpoint, playback failures.
; `notice` is KEPT, deliberately. Asterisk logs rejected SIP requests at
; notice level via log_failed_request ("No matching endpoint found",
; "Failed to authenticate"), and on a box whose whole job is answering SIP
; those are the single most useful diagnostic. Dropping notice made the log
; quieter and the gateway undebuggable — a call was refused and nothing said
; so.
;
; `notice` and `verbose` are both excluded because the "Remote UNIX
; connection" pairs the healthcheck generates arrive on those channels, and
; they swamped everything else (the Loki stream measured 100% healthcheck
; noise before this). The healthcheck itself is also reduced to one CLI call
; on a 60s interval in docker-compose — the two changes work together.
;
; To trace a call's dialplan execution, raise verbosity at runtime rather than
; leaving it on:
; `verbose` is excluded: dialplan execution ("Executing [1001@...]") is
; useful when tracing a specific call, but it is not worth shipping to Loki
; continuously. Raise it at runtime instead:
; asterisk -rx "core set verbose 3"
console => warning,error
;
; The healthcheck's "Remote UNIX connection" pairs also arrive on notice.
; They are dealt with at the source rather than by silencing the channel:
; docker-compose replaces the image's ~7-connections-per-30s healthcheck with
; a single check on a 60s interval, and modules.conf stops the container
; loading hardware and database modules it has no use for (~74 ALSA lines per
; restart). Those two together cut the noise without costing visibility.
console => notice,warning,error