mirror of
https://github.com/mailscope/kumomta.git
synced 2026-09-04 18:08:16 +00:00
76 lines
3.3 KiB
Markdown
76 lines
3.3 KiB
Markdown
# Viewing Logs
|
|
|
|
An important part of routine opperations is checking logs. KumoMTA compressed
|
|
logs are found in `/var/log/kumomta/` and are named by date stamp. Logs are
|
|
segmented by a combination of size/time and stored in compressed files named
|
|
after the time that the segment was started. To read these, you need to unpack
|
|
them first. You have many options for configuring logging.
|
|
|
|
```
|
|
/var/log/kumomta
|
|
├── 20230311-033705
|
|
├── 20230311-033844
|
|
├── 20230312-182542
|
|
└── 20230314-181435
|
|
```
|
|
|
|
## Using `tailer`
|
|
|
|
The `tailer` utility, found at `/opt/kumomta/sbin/tailer`, is the easiest way to quickly
|
|
review logs. The `--tail` flag will follow the log files in real time:
|
|
|
|
```console
|
|
$ sudo /opt/kumomta/sbin/tailer --tail /var/log/kumomta
|
|
/var/log/kumomta/20230809-153944
|
|
{"type":"Reception","id":"f68462cf36ca11ee99f450ebf67f93bd","sender":"wez@exa
|
|
mple.com","recipient":"wez@example.com.org","queue":"example.com.org","site":
|
|
"","size":518,"response":{"code":250,"enhanced_code":null,"content":"","comma
|
|
nd":null},"peer_address":{"name":"foo.lan","addr":"127.0.0.1"},"timestamp":16
|
|
91595584,"created":1691595584,"num_attempts":0,"bounce_classification":"Uncat
|
|
egorized","egress_pool":null,"egress_source":null,"feedback_report":null,"met
|
|
a":{},"headers":{},"delivery_protocol":null,"reception_protocol":"ESMTP","nod
|
|
eid":"4eb22880-dc03-44dc-a4d1-4d0e68ac7845"}
|
|
waiting for more files
|
|
```
|
|
|
|
The above example is shown artificially wrapped for the purposes of displaying
|
|
nicely in this documentation. The actual log records are not output with wrapping.
|
|
|
|
## Manually
|
|
|
|
We can take a look at a specific log by decompressing it and since these are
|
|
[zstd compressed](https://github.com/facebook/zstd#readme), you can view all
|
|
but the current one with zstdcat. ZSTD is a streaming compression utility so
|
|
the current file cannot be accessed until it is flushed and closed. You can
|
|
force the current log to close by stopping KumoMTA.
|
|
|
|
The default for log segments is to flush them after 1GB of data is written, but
|
|
you can adjust them to flush after a certain amount of time if you find that
|
|
you are regularly wanting to inspect the logs on a live system.
|
|
|
|
[kumo.configure_local_logs](../../reference/kumo/configure_local_logs/index.md)
|
|
has all of the available logging configuration options.
|
|
|
|
Using the example above, we can see the content of the newest file after
|
|
stopping KumoMTA with a `zstdcat /var/log/kumomta/20230314-181435`.
|
|
|
|
If you have not done so already, you will want to install `zstd` with a (`dnf`
|
|
or) `apt install zstd`. Below there is a sample of a decompressed received log:
|
|
|
|
```console
|
|
$ zstdcat /var/log/kumomta/20230428-201424_recv
|
|
{"type":"Reception","id":"44d70f50e60111ed8162000d3afc4acf","sender":"noreply@example.com",
|
|
"recipient":"recipient@example.com","queue":"example.com","site":"","size":27,
|
|
"response":{"code":250,"enhanced_code":null,"content":"","command":null},
|
|
"peer_address":{"name":"","addr":"127.0.0.1"},"timestamp":1682712864,"created":1682712864,
|
|
"num_attempts":0,"bounce_classification":"Uncategorized","egress_pool":null,"egress_source":null,
|
|
"feedback_report":null,"meta":{},"headers":{"Subject":"hello"}}
|
|
```
|
|
|
|
These JSON formatted logs can be programatically consumed or read manually as
|
|
shown above for debugging and maintenance.
|
|
|
|
[Formatting](../configuration/logging.md#customizing-the-log-format)
|
|
can also be applied using the Mini Jinja templating engine.
|
|
|