# Ротація журналів NetPulse. Ставиться в /etc/logrotate.d/netpulse.
#
# Без цього файла попередній стає нескінченним: rsyslog пише й пише, а
# диск закінчується мовчки. Саме так уже було з json-file докера —
# драйвер стояв без max-size і не крутив нічого.

/var/log/netpulse/*.log {
    # Щодня, і 14 копій — два тижні історії.
    #
    # Не «за розміром»: розмір ротації відповідає на питання «скільки
    # місця», а на питання «що було в ніч на вівторок» відповідає дата.
    # Друге питання ставлять частіше.
    daily
    rotate 14

    # Стеля на випадок шторму. Два тижні звичайних журналів — десятки
    # мегабайтів, але трап-шторм або цикл перезапусків дає гігабайти за
    # години, і тоді ротація за датою не встигає.
    maxsize 50M

    compress
    # Найсвіжіший стиснутий файл лишається як є: `zgrep` по вчорашньому
    # потрібен частіше за економію кількох мегабайтів.
    delaycompress

    missingok
    notifempty
    # Файл створює rsyslog; без create після ротації він писав би у
    # видалений inode, і журнал зникав би до перезапуску демона.
    create 0640 root adm

    sharedscripts
    postrotate
        # HUP, а не restart: перезапуск демона губить рядки, які
        # надійшли в мить перезапуску, — тобто рівно під час події, яка
        # найімовірніше й спричинила ріст журналу.
        /usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || systemctl kill -s HUP rsyslog.service 2>/dev/null || true
    endscript
}
