Freeze one node, action and first contradiction
Record node, Asterisk build, process start time, manager identity and permissions, unique ActionID, raw request and response, local and UTC timestamps, expected channel and path, effective logger.conf owner, rotation strategy and external rotation owner. Classify unknown or denied action, manager error, expected file not renamed, new file absent, old file still growing, post-rotate work missing, collector stale or disk space unchanged.
Do not combine clustered nodes or observations from before and after an unrecorded reload or restart. Logger runtime state, files and descriptors are process- and host-local.
Prove the manager boundary before blaming storage
Confirm the action is present for the deployed release and that the authenticated manager identity has the required write authorization. Retain the response that matches the request ActionID; distinguish an AMI parser timeout or connection drop from an explicit Asterisk error.
If acceptance is proven, report only that the logger action was accepted. Do not close the incident at that boundary or invent an AMI list-completion event for this single-response action.
Resolve effective channels and rotation ownership
Inspect the effective logger policy and runtime channels with supported read-only commands or APIs. Determine whether the destination is an Asterisk file channel, a runtime ARI channel, syslog, console, queue log, CDR/CEL backend or an externally managed file. Then read the exact rotatestrategy.
With none, absence of an Asterisk-created rotated filename can be expected and the external rotation owner becomes the next boundary. For sequential, rotate or timestamp, compare the observed names with that strategy rather than one assumed suffix.
Follow rename, reopen and write as separate observations
Capture directory and file metadata before and after: path, owner, group, mode, security label, mount, free space, inode, size and modification time. Where authorized, inspect the Asterisk process descriptor target. Generate one bounded non-sensitive logger event only after preserving the pre-action state.
A renamed old file does not prove the active process reopened the desired path. A new zero-length file can mean no qualifying event was emitted. The old inode continuing to grow points to descriptor or external-rotation coordination, while permission, label, read-only mount, quota or space failures belong to the filesystem boundary.
Trace post-rotate commands and collectors independently
If exec_after_rotate is configured, expand ${filename} according to the active strategy and preserve command identity, execution user, exit status and resulting artifacts. Do not rerun an unreviewed command merely because its output is missing.
For syslog, shippers and collectors, record service state, configured path, cursor or inode identity, read offset, parser result, destination index and timestamps. Compression, retention and deletion can change apparent disk use later; an AMI response cannot prove any of them.
Repair the first owner and verify one bounded event
Assign one owner: AMI availability or permission, logger configuration generation, runtime channel, rotation strategy, external logrotate coordination, directory or file access, security policy, post-rotate command, syslog, shipper, parser, index, compression or retention. Correct only the first demonstrated divergence and preserve rollback.
Repeat one approved rotation and one redacted event, confirming the intended active file and downstream destination while an unaffected control remains observable. Preserve in-use logs, avoid broad permission changes and do not restart the PBX solely to make filenames look familiar. No PBX, file, descriptor, collector, packet, call or media stream was tested for this diagnostic.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Asterisk current LoggerRotate AMI action ↗
- Asterisk 22 LoggerRotate AMI action ↗
- Asterisk current AMI actions index ↗
- Asterisk Manager TCP/IP API ↗
- Asterisk AMI v2 specification ↗
- Asterisk basic logging commands ↗
- Asterisk logging configuration ↗
- Asterisk bounded debug collection ↗
- Asterisk current ARI logging API ↗
- Asterisk current logger implementation ↗
- Asterisk current logger.conf sample ↗
- Asterisk initialization and logrotate installation ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.