mail/deploy/rsyslog/49-mail-stack.conf
deeily 5024bf9a8d init: full mail stack — phases 0..8 (web client, admin, IMAP/SMTP,
sieve, search, sessions, dramatiq, deploy/install, ELK, monitoring)
2026-04-29 16:30:43 +03:00

67 lines
2.6 KiB
Plaintext

# Ship mail-stack logs to a remote ELK collector via syslog.
#
# Drop into /etc/rsyslog.d/ and restart rsyslog.
# Override REMOTE / PORT / PROTO via env or by editing this file.
#
# - mail-flask, mail-dramatiq уже идут в systemd journal (StandardOutput=append:
# пишет в файл, journal — параллельно). Можно читать file-tail или journal.
# - mail-backup — отдельный лог-файл от cron.
# - DMS пишет mail.log/mail.err в bind-mounted volume.
# ── Inputs (file-tail) ───────────────────────────────────────────────────
module(load="imfile" PollingInterval="2")
input(type="imfile"
File="/var/log/mail-flask.log"
Tag="mail-flask"
Severity="info"
Facility="local6"
addMetadata="on"
reopenOnTruncate="on"
stateFile="rsyslog-mail-flask"
readMode="2") # 2 = paragraph, склеивает многострочные tracebacks
input(type="imfile"
File="/var/log/mail-dramatiq.log"
Tag="mail-dramatiq"
Severity="info"
Facility="local6"
stateFile="rsyslog-mail-dramatiq"
readMode="2")
input(type="imfile"
File="/var/log/mail-backup.log"
Tag="mail-backup"
Severity="info"
Facility="local6"
stateFile="rsyslog-mail-backup"
readMode="0")
input(type="imfile"
File="/home/deeily/mail/docker/dms-data/logs/mail.log"
Tag="dms"
Severity="info"
Facility="local6"
stateFile="rsyslog-dms"
readMode="0")
# ── Output to ELK ────────────────────────────────────────────────────────
# Очередь на диск — переживает падения сети, не теряет логи.
$WorkDirectory /var/spool/rsyslog
$ActionQueueType LinkedList
$ActionQueueFileName mail_elk_q
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionResumeRetryCount -1
# Шлём всё что Facility=local6 на удалённый ELK.
# Для UDP замените `@@` на `@`. Порт по вкусу: 514 классика, 5140/5044 для Logstash.
local6.* action(type="omfwd"
target="logstash.internal"
port="5140"
protocol="tcp"
template="RSYSLOG_SyslogProtocol23Format")
# Опционально: в локальный файл для отладки.
# local6.* /var/log/mail-stack-shipped.log