Si vous recevez les messages suivants de votre serveur cPanel, un bogue rsyslog en cours a mis à jour la configuration de telle manière qu'il a désactivé la journalisation locale:
lfd sur host.domain.tld: échec de la vérification SYSLOG Time: Sun Nov 1 03:25:28 2020 +0100
Error: Failed to detect code [9UfpULpI9n6kZOKhWLmJqRZDk7] in SYSLOG_LOG [/var/log/messages]
SYSLOG may not be running correctly on host.domain.tld
Tout d'abord, vous devez aller de l'avant et vérifier le journal actuel et les journaux tournés pour voir si le journal a peut-être tourné en même temps que la vérification:
grep $code /var/log/messages zgrep $code /var/log/messages-*
L'exemple suivant montre que le code n'a pas du tout été enregistré:
[root@host ~]# grep 9UfpULpI9n6kZOKhWLmJqRZDk7 /var/log/messages [root@host ~]# grep 9UfpULpI9n6kZOKhWLmJqRZDk7 /var/log/messages-20201 messages-20201101 messages-20201031 [root@host ~]# grep 9UfpULpI9n6kZOKhWLmJqRZDk7 /var/log/messages-2020* [root@host ~]#
Si le code avait été enregistré, vous voudriez vérifier l'iowait et le charger sur le serveur pour déterminer si le serveur fonctionne trop lentement pour avoir terminé la vérification dans les 5 minutes.
Ensuite, nous devons vérifier que le service rsyslog est en cours d'exécution car il n'écrit pas dans le fichier:
[root@host ~]# /scripts/restartsrv_rsyslogd --check The 'rsyslog' service passed the check: rsyslog (/usr/sbin/rsyslogd -n) is running as root with PID 594 (systemd+/proc check method). [root@host ~]# ps auxf | grep rsyslog root 31446 0.0 0.0 9040 820 pts/0 S+ 04:35 0:00 \_ grep --color=auto rsyslog root 594 0.0 0.0 356936 2464 ? Ssl Jun11 0:05 /usr/sbin/rsyslogd -n [root@host ~]#
Il fonctionne selon les vérifications effectuées. Ensuite, nous devons vérifier si le PID du processus en cours correspond réellement au PID dans le fichier PID (cela se produit parfois lorsque cela est la cause de tels échecs, par exemple lorsque deux instances du même service sont en cours d'exécution):
[root@host ~]# cat /var/run/syslogd.pid 594[root@host ~]#
Le PID correspond. Maintenant, vérifions si nous pouvons forcer rsyslog à enregistrer un message pour nous:
[root@host ~]# logger -p auth.notice "test123" [root@host ~]# grep "test123" /var/log/messages [root@host ~]#
Il n'a pas réussi à écrire le message dans le journal pour nous. Vous devriez voir ceci à la place:
[root@host support]# logger -p auth.notice "test123" [root@host support]# grep "test123" /var/log/messages Nov 01 10:40:30 host root: test123
Cela semble être le bogue qui provoque la désactivation / la mauvaise configuration de la journalisation locale. Vérifions la configuration pour confirmer:
[root@host ~]# grep -i "OmitLocalLogging\|ModLoad imjournal\|IMJournalStateFile" /etc/rsyslog.conf $ModLoad imjournal # provides access to the systemd journal $OmitLocalLogging on $IMJournalStateFile imjournal.state [root@host ~]#
La sortie le confirme. Maintenant, nous allons faire une sauvegarde du fichier de configuration, corriger les fichiers de configuration, puis redémarrer le service pour corriger ce problème:
[root@host ~]# cp /etc/rsyslog.conf /etc/rsyslog.conf.bak [root@host ~]# sed -i 's/OmitLocalLogging on/OmitLocalLogging off/' /etc/rsyslog.conf [root@host ~]# sed -i 's/$IMJournalStateFile imjournal.state/#$IMJournalStateFile imjournal.state/' /etc/rsyslog.conf [root@host ~]# sed -i 's/$ModLoad imjournal/#$ModLoad imjournal/' /etc/rsyslog.conf [root@host ~]# /scripts/restartsrv_rsyslog Waiting for “rsyslog” to restart ………waiting for “rsyslog” to initialize ………finished. Service Status rsyslog (/usr/sbin/rsyslogd -n) is running as root with PID 31621 (systemd+/proc check method). Startup Log Nov 01 10:40:30 host systemd[1]: Starting System Logging Service... Nov 01 10:40:30 host rsyslogd[31621]: [origin software="rsyslogd" swVersion="8.24.0-52.el7_8.2" x-pid="32183" x- info="http://www.rsyslog.com"] start Nov 01 10:40:30 host systemd[1]: Started System Logging Service. rsyslog restarted successfully. [root@host ~]# systemctl restart systemd-journald [root@host ~]#
Maintenant, recommencez le test. Vous devriez maintenant voir votre message de journalisation de test:
[root@host ~]# logger -p auth.notice "testing123" && grep testing /var/log/messages Nov 01 10:40:30 host root: testing123 [root@host ~]#
Vous pouvez voir maintenant que le code a bien été détecté correctement. :)