Folosim rsyslog prin intermediul boost logging sinks, pentru înregistrarea mesajelor din procesul de aplicare în /var/log/messages pe RHEL 7.
Mesajele de jurnal sunt precedate de „LogMsg”.
rsyslog.conf arată astfel:
# fișier de configurare rsyslog
# Pentru mai multe informații, consultați /usr/share/doc/rsyslog-*/rsyslog_conf.html
# Dacă întâmpinați probleme, consultați http://www.rsyslog.com/doc/troubleshoot.html
#### MODULE ####
mail.none;authpriv.none;cron.none /var/log/messages
local0.debug /var/log/nullarbor.log
local4.info /var/log/local4info.log
# Fișierul authpriv are acces restricționat.
authpriv.* /var/log/secure
# Înregistrați toate mesajele e-mail într-un singur loc.
mail.* -/var/log/maillog
# Înregistrează chestii cron
cron.* /var/log/cron
# Toată lumea primește mesaje de urgență
*.emerg :omusrmsg:*
# Salvați erorile de știri de nivel critic și superior într-un fișier special.
uucp,news.crit /var/log/spooler
# Salvați mesajele de boot și în boot.log
local7.* /var/log/boot.log
#
# Declarația dintre începutul ... sfârșitul definește o SINGURĂ redirecționare
# regulă. Ei aparțin împreună, NU le despărțiți. Dacă creați mai multe
# reguli de redirecționare, duplicați întregul bloc!
# Înregistrare la distanță (folosim TCP pentru livrare fiabilă)
#
# în jos, mesajele sunt spool pe disc și trimise când este din nou activ.
#$ActionQueueFileName fwdRule1
#$ActionQueueMaxDiskSpace 1g
#$ActionQueueSaveOnShutdown on
#$ActionQueueType LinkedList
#$ActionResumeRetryCount -1
# gazdă la distanță este: nume/ip:port, de ex. 192.168.0.1:514, port opțional
#*.* @@host-la distanță:514
#
# Modulul imjurnal de mai jos este acum folosit ca sursă de mesaje în loc de imuxsock.
$ModLoad imuxsock
$ModLoad imjurnal
#$ModLoad imklog
#$ModLoad immark
# Oferă recepție UDP syslog
#$ModLoad imudp
#$UDPServerRun 514
# Oferă recepție syslog TCP
#$ModLoad imtcp
#$InputTCPServerRun 514
#
# Unde să plasați fișierele auxiliare
$WorkDirectory /var/lib/rsyslog
# Utilizați formatul implicit de marcaj de timp
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Capacitatea de sincronizare a fișierelor este dezactivată în mod implicit. Această caracteristică nu este de obicei necesară,
# nu este util și o performanță extremă
#$ActionFileEnableSync activat
# Includeți toate fișierele de configurare în /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
# Opriți recepția mesajelor prin soclul de jurnal local;
# mesaje locale sunt preluate prin imjurnal acum.
$OmitLocalLogging activat
# Fișier pentru a stoca poziția în jurnal
$IMJournalStateFile imjournal.state
#
# Înregistrați toate mesajele kernelului pe consolă.
# Înregistrarea mult mai mult dezordinea ecranul.
#kern.* /dev/console
# Înregistrați orice (cu excepția e-mailului) cu informații de nivel sau mai mare.
# Nu înregistrați mesaje private de autentificare!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
local4.info /var/log/local4info.log
# Fișierul authpriv are acces restricționat.
authpriv.* /var/log/secure
# Înregistrați toate mesajele e-mail într-un singur loc.
mail.* -/var/log/maillog
# Înregistrează chestii cron
cron.* /var/log/cron
# Toată lumea primește mesaje de urgență
*.emerg :omusrmsg:*
# Salvați erorile de știri de nivel critic și superior într-un fișier special.
uucp,news.crit /var/log/spooler
# Salvați mesajele de boot și în boot.log
local7.* /var/log/boot.log
#
# Declarația dintre începutul ... sfârșitul definește o SINGURĂ redirecționare
# regulă. Ei aparțin împreună, NU le despărțiți. Dacă creați mai multe
# reguli de redirecționare, duplicați întregul bloc!
# Înregistrare la distanță (folosim TCP pentru livrare fiabilă)
#
# în jos, mesajele sunt spool pe disc și trimise când este din nou activ.
#$ActionQueueFileName fwdRule1
#$ActionQueueMaxDiskSpace 1g
#$ActionQueueSaveOnShutdown on
#$ActionQueueType LinkedList
#$ActionResumeRetryCount -1
# gazdă la distanță este: nume/ip:port, de ex. 192.168.0.1:514, port opțional
#*.* @@host-la distanță:514
#
Când totul funcționa, mesajele informative din procesul meu de aplicare au fost trimise la /var/log/messages. Acestea au șirul LogMsg în ele și sunt specifice aplicației.
Apoi am adăugat o linie pentru a filtra mesajele local0 după care am repornit serviciul rsyslog.
După aceea, toți au înnebunit. Am repornit și am adus rsyslog.conf înapoi la starea inițială.
Am reîncărcat demonul systemd și am repornit serviciul rsyslog.
De asemenea, am eliminat fișierul de stare imjurnal din /var/lib/rsyslog.
Aceasta a avut urmatorul efect:
- Intrările systemd pentru toate procesele demon, cum ar fi sensord, snmpd etc. au început să curgă direct în /var/log/messages, ceea ce nu este ceea ce se întâmpla mai devreme.
- Mesajele din aplicația mea nu au apărut în /var/log/messages, ceea ce speram.
Nu știu unde merg mesajele aplicației mele.
De asemenea, când rulez logger cu o testare a mesajelor, acesta apare în /var/log/messages.
Deci problema mea actuală este:
Mesajele kernelului sunt aruncate în /var/log/messages în timp ce mai devreme nu erau. De ce s-ar întâmpla asta?
de ce mesajele aplicației mele au încetat să intre în /var/log/messages?
Și unde s-ar duce?
Cum rezolv asta? Va rog ajutati si sfatuiti.
Mulțumiri.