Шаги ==== 1. # sed -e 's/#ForwardToSyslog=no/ForwardToSyslog=yes/' -i /etc/systemd/journald.conf && \ reboot 2. # apt-get install -y rsyslog-hiredis rsyslog rsyslog-classic redis && \ systemctl enable --now rsyslog redis && \ systemctl status rsyslog redis --no-pager -l && \ cat > /etc/rsyslog.d/00_redis.conf << 'EOF' && systemctl restart rsyslog && systemctl status rsyslog --no-pager -l module(load="omhiredis") template( name="program_count_tmpl" type="string" string="HINCRBY progcount %programname% 1") action( name="count_programs" server="localhost" serverport="6379" type="omhiredis" mode="template" template="program_count_tmpl") EOF 3. Проверить, что логи попали в базу: # echo "HGETALL progcount" | redis-cli 4. # reboot 5. # systemctl status rsyslog redis --no-pager -l Фактический результат ===================== rsyslog.service не сразу удаётся подключится к redis.service: > systemd[1]: Starting rsyslog.service - System Logging Service... > rsyslogd[1032]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2502.0] > rsyslogd[1032]: [origin software="rsyslogd" swVersion="8.2502.0" x-pid="1032" x-info="https://www.rsyslog.com"] start > rsyslogd[1032]: can not initialize redis handle [v8.2502.0 try https://www.rsyslog.com/e/2007 ] > rsyslogd[1032]: action 'count_programs' suspended (module 'omhiredis'), retry 0. There should be messages before this one giving the reason for suspension. [v8.2502.0 try https://www.rsyslog.com/e/2007 ] > systemd[1]: Started rsyslog.service - System Logging Service. > rsyslogd[1032]: action 'count_programs' resumed (module 'omhiredis') [v8.2502.0 try https://www.rsyslog.com/e/2359 ] Ожидаемый результат =================== Сервисы стартуют в правильном порядке. Ошибок нет. Дополнительно ============= Ситуация, судя по логам, в целом штатная, но появляющаяся ошибка нежелательна, и её можно исправить с помощью workaround: # cat > /etc/systemd/system/rsyslog.service.d/override.conf << EOF && reboot [Unit] After=redis.service EOF Не исключено, что в других пакетах rsyslog-* может быть аналогичная ситуация с другими БД/сервисами. Воспроизводимость ================= Воспроизводится с 1 раза на виртуальных машинах: [sisyphus] ALT Server 11.0 x86_64 rsyslog-8.2502.0-alt3.x86_64 [p11] ALT Server 11.0 x86_64 rsyslog-8.2502.0-alt3.x86_64 [p10+388178.1] ALT Server 10.4 x86_64 rsyslog-8.2502.0-alt3.x86_64 Не воспроизводится на виртуальной машине (проверено > 3 раз): [p10] ALT Server 10.4 x86_64 rsyslog-8.2408.0-alt2.x86_64
Версии redis: [sisyphus] redis-7.2.7-alt1.x86_64 [p11] redis-7.2.6-alt1.x86_64 [p10+388178.1] redis-6.2.17-alt1.x86_64 [p10] redis-6.2.17-alt1.x86_64
Больше не воспроизводится в Sisyphus версии пакетов: rsyslog-8.2502.0-alt4.1 redis-7.2.11-alt1