rsyslog ist eine Erweiterung zum alten syslogdienst, mit dem Logmeldungen an einen zentralen Server weitergeleitet werden können.
Auf den Debian-systemen ab squeeze ist der Dienst bei Neuinstallation schon installiert und aktiviert.
Auf upgedateten älteren Systemen wie z.B.LENNY muss der Dienst erst noch nachinstalliert werden.
Installation des Dienstes:
apt-get install rsyslog
Die Konfiguration soll so erfolgen, dass der Dienst Systemlogs von anderen Clients annimmt.:
editiere die Datei /etc/rsyslog.conf
wie folgt:
... #server soll auf UDP-Port 514 horchen $Modload imudp $UDPServerRun 514 #server soll auch auf TCP-Port 514 horchen $Modload imtcp $InputTCPServerRun 514 ...
anschließend muss der Dienst neu gestartet werden:
/etc/init.d/rsyslogd restart
der Server horcht jetzt über TCP und UDP auf eingehene Syslogmeldungen.
Mit dem Tool Loganalyzer kann das ganze dann noch aufgehübscht werden.
fertig.
Installation wiedes des Dienstes:
apt-get install rsyslog
Die Konfiguration soll so erfolgen, dass der Dienst alle Syslogs an einen anderen Servern sendet.:
editiere die Datei /etc/rsyslog.conf
oder eine neue Datei /etc/rsyslog.d/remote.conf
wie folgt:
... # für UDP *.* @meinRSYSLOGserver # oder für TCP *.* @@meinRSYSLOGserver #Beispiel wenn nur Warnungen und auch Anmeldeinfos weitergeleitet werden sollen #*.warn @meinRSYSLOGserver #auth,authpriv.* @meinRSYSLOGserver ...
anschließend muss der Dienst neu gestartet werden:
/etc/init.d/rsyslogd restart
der Client sendet jetzt über TCP oder UDP seine Syslogmeldungen an den Server: meinRSYSLOGserver (IP geht auch).
fertig.
erstelle folgenden Eintrag in der Datei /etc/inittab
:
... 10:23:respawn:/sbin/getty 38400 tty10 ...
erstelle folgenden Eintrag in der Datei /etc/rsyslog.conf
:
... *.* /dev/tty10 ...
anschließend muss der Dienst neu gestartet werden:
/etc/init.d/rsyslogd restart
Drücke <ALT>+<F10>. Dort müssten die Sylog-Meldungen jetzt zu sehen sein.
editiere die Datei /etc/rsyslog.conf
wie folgt:
... *.* @@(o,z9)meinRSYSLOGserver ...
anschließend muss der Dienst neu gestartet werden:
/etc/init.d/rsyslogd restart
editiere die Datei /etc/rsyslog.conf
wie folgt:
... *.warn @@meinRSYSLOGserver ...
anschließend muss der Dienst neu gestartet werden:
/etc/init.d/rsyslogd restart
teste anschließend ob die Mails auch auf dem Syslog-Server ankommen:
logger -p debug testdebug logger -p info testinfo logger -p warn testwarn logger -p crit testcrit logger -p emerg testemerg
die debug- und info-Meldungen sollten nicht auf dem Server ankommen.
weitere Möglichkeit mit netcat aus cmdline heraus:
echo "<11>1 2019-11-06T13:38:07.407048+01:00 myclient root - - - errtest mit nc" | nc -u -q0 myrsyslogsrv 514
siehe dazu: getusersoflocaladmgroups
oder:sendtorsyslogtcp
erstelle diese Datei 00_remote.conf
im Verzeichnis /etc/rsyslog.d/
,
konfiguriere sie und starte den dienst dann neu durch.
$ModLoad imfile $InputFileName /var/log/linotp/linotp.log $InputFileTag linotp-error $InputFileStateFile stat-linotp-error $InputFileSeverity warn $InputFileFacility local3 $InputRunFileMonitor :msg,contains,"WARN" @@my.rsyslog.ser.ver:514
erstelle diese Datei 10_mailtrigger.conf
im Verzeichnis /etc/rsyslog.d/
,
konfiguriere sie und starte den dienst dann neu durch.
#Mailmodul zum automatischen mailen $ModLoad ommail $ActionMailSMTPServer my.smtp.ser.ver $ActionMailSMTPPort 25 $ActionMailEnableBody on $ActionMailFrom rsyslog@my.domain $ActionMailTo admin@my.domain $template mailSubject,"Rsyslog Meldung von %hostname%" $template mailBody,"RSYSLOG Meldung:\r\n\r\n\ hostname=%hostname%\r\n\ timereported=%timereported%\r\n\ syslogfacility-text=%syslogfacility-text%\r\n\ programname=%programname%\r\n\ msg=%msg%" $ActionMailSubject mailSubject #$ActionExecOnlyOnceEveryInterval 60 if $msg contains 'wichtige Meldung' then :ommail:;mailBody
erstelle diese Datei 20_msgfilter.conf
im Verzeichnis /etc/rsyslog.d/
,
konfiguriere sie und starte den dienst dann neu durch.
################################################## # WindowsMessages unterdrücken if $msg contains ["AUDIT_FAILURE A Kerberos", \ "AUDIT_FAILURE Kerberos", \ "Security-Auditing: 4625", \ "Security-Auditing: 4662", \ "Security-Auditing: 4776", \ "Security-Auditing: 4769"] \ then stop ################################################## # LinuxMessages unterdrücken if $msg contains ["origin software=\"rsyslogd\"", \ "imuxsock"] \ then stop ################################################## ################################################## # plappernden Server unterdrücken if $msg contains "MSExchange_Unified_Messaging" \ and $hostname == "myoldExchsrv" \ then stop ##################################################
/etc/init.d/rsyslogd start deshalb Fehlermeldungen nach jeder Konfigänderung unbedingt checken:
systemctl status rsyslog.service
oder
rsyslogd -N 1 -f /etc/rsyslog.conf
localhost
als hostname auf. Die Meldung kommt aber von einem Client.
deshalb trage auf den Clients diesen Eintrag unter #### GLOBAL DIRECTIVES ####
ein und starte den Dienst neu:
########################### #### GLOBAL DIRECTIVES #### ########################### $PreserveFQDN on
danach sollte der richtige Hostname in den Logs auftauchen.
rsyslogd -N 1 -d 2>~/0 | egrep "cnf:|ssigned|filter|ACTION|PRIFILT" | egrep -v 'cnf:global:script|END' | more
logger -n 192.168.1.2 -t myapp -p user.warn „Test!“
apt-get install apache2 libapache2-mod-php7.3 php7.3-gd echo "<IfModule mod_alias.c>" >>/etc/apache2/conf-available/loganalyzer.conf echo "Alias /loganalyzer /usr/share/loganalyzer" >>/etc/apache2/conf-available/loganalyzer.conf echo "</IfModule>" >>/etc/apache2/conf-available/loganalyzer.conf a2enmod php7.3 alias a2enconf loganalyzer wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.7.tar.gz tar xvfz loganalyzer-4.1.7.tar.gz cp -avr loganalyzer-4.1.7/src /usr/share/loganalyzer chown -R tomcat /usr/share/loganalyzer
Webseite aufrufen : http://meinserver/loganalyzer
dann konfigurieren
Nacharbeit in /usr/share/loganalyzer/config.php
:
$CFG['HeaderDefaultEncoding'] = ENC_UTF8; $CFG['ViewDefaultLanguage'] = "de"; $CFG['SuppressDuplicatedMessages'] = 1; ... $CFG['Sources']['Source1']['LogLineType'] = 'syslog23';
auf den rsyslogclients in /etc/rsyslog.d/00_client.conf
:
$ActionFileDefaultTemplate RSYSLOG_SyslogProtocol23Format *.warn @@meinrsyslogsrv:514;RSYSLOG_SyslogProtocol23Format
dann den Dienst jeweils neustarten:
/etc/init.d/rsyslogd restart
esxcli system syslog config get exccli system syslog config set --loghost='meinrsyslogsrv' esxcli system syslog reload
https://kb.vmware.com/s/article/2003322
Logging vorher auf warning runterdrehen; steht auf standardmäßig auf info
in der Datei /etc/systemd/journald.conf
Kommentierung entfernen.
ForwardToSyslog=yes
und dann den Dienst neu starten:
systemctl restart systemd.journald