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