Installation eines Logservers mit Loganalyzer als Debian VM auf Hyper V (2024)

Zuerst sei auf den schönen Beitrag von @aqui hier im Forum verwiesen, in dem die loganalyzer-installation bereits beschrieben ist: Netzwerk Management Server mit Raspberry Pi

Mein Ziel war es, einen Debian-Server als VM unter einem Windows 2012R2 Server mittels Hyper-V laufen zu lassen. Das Setup unterschiedet sich etwas vom Raspi Installation eines Logservers mit Loganalyzer als Debian VM auf Hyper V (1). der Logserver solle Syslog-Nachrichten und SNMP-Traps aus dem Netzwerk entgegennehmen. Diese sollen über ein Webinterface verfolgt werden können.

Die folgende Anleitung ist das Ergebnis von 2 Tagen dauergoogeln. Zum Thema gibt es unzählige zum Teil sehr ausführliche Webseiten. Der Teufel steckt aber im Detail. Durch die verschiedenen Distributionen bzw. Versionen von Debian und rsyslog sind ältere Anleitungen nicht immer zutreffend und manchmal auch unnütz umständlich. Daher meine Motivation, noch eine Anleitung zu schreiben. Ich hoffe ich habe keine wesentlichen Punkte vergessen. Die enthaltenen Befehlsfolgen, Links und Codeausschnitte sind hoffentlich fehlerfrei angekommen.

Die Grundlagen zur Verwendung von Hyper-V und zur Installation eines Debian ohne graphische Oberfläche lasse ich hier aus. Die Installationsanweisungen verzichten hier auf sudo und erfolgen über den root Benutzer. Wer mag, kann das gerne ändern. Ebenso habe ich keine weiteren Maßnahen zum absichern des Systems gemacht. Eine Firewall sollte mindestens hinzugefügt werden. Interessante Links zum Thema habe ich im jeweiligen Abschnitt direkt angegeben.

Inhaltsverzeichnis

Installation der VM

Paketinstallation

Installation des MYSQL-Servers

Installation des Webservers

Installation von Loganalyzer

Wenn hier was schiefgeht

Installation von snmptrap

Konfiguration von snmptrap

Konfiguration von rsyslog


Installation der VM

Zunächst läd man sich die aktuelle Netinstall-ISO herunter: https://www.debian.org/distrib/

debian-9.5.0-amd64-netinst.iso

Die VM wird in Hyper-V mit folgenden Parametern erstellt:

  • Generation 1
  • Festplattentyp VHDX mit 32GB

Im Anschluss habe ich den Arbeitspeicher zunächst auf 2048MB festgelegt (nicht dynamisch).

Zunächst sollte man die Debian-Installation an die virtuelle Umgebung anpassen:

Dazu wird das Paket hyperv-daemons installiert.

https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/s ...
https://docs.microsoft.com/de-de/windows-server/virtualization/hyper-v/B ...
https://msdn.microsoft.com/de-de/library/dn798297(v=ws.11).aspx

apt-get install hyperv-daemons

Im Anschluss erledigt man die Netzwerkkonfiguration, im einfachsten Fall über den DHCP-Server Installation eines Logservers mit Loganalyzer als Debian VM auf Hyper V (3)

  • DHCP-Lease in DHCP-Reservierung konvertieren
  • ggf. statischen DNS-Eintrag erstellen

... das geht aber besser!

Paketinstallation

Die Grundlage des Logservers sind folgende Pakete:

  • rsyslog (bereits im Debian enthalten) als Syslog
  • snmptrapd zum Entgegennehmen der SNMP-Traps
  • mysql-server als Datenbank zum Speichern der Syslog-Einträge und zur Benutzerverwaltung des Webinterfaces
  • apache2 als webserver
  • loganalyzer als Webinterface

ein paar Links zum Thema
http://lab4.org/wiki/Rsyslog_mit_MySQL_als_zentraler_Logserver
https://tecadmin.net/setup-rsyslog-with-mysql-and-loganalyzer/
https://tecadmin.net/setup-loganalyzer-with-rsyslog-and-mysql/
https://loganalyzer.adiscon.com/doc/install.html

Installation des MYSQL-Servers

apt-get install mysql-server

Im Anschluss testet man die Installation mit:

mysql -u root -p

Wenn hier keine Fehlermeldung kommt, läuft alles.

Im Anschluss wird das mysql-Modul dür rsyslog installiert:

apt-get install rsyslog-mysql

Hier wird auch das Zugriffspassword für den Benutzer "rsyslog" festgelegt. Bitte merken für später! Ich habe hier mal GEHEIM2 benutzt.

Installation des Webservers

apt-get install apache2 php php-mysql

Hier ist nicht viel zu sagen.

Installation von Loganalyzer

Leider ist das Debian-Paket loganalyzer ist für Debian 9 Stable (Stretch) (noch?) nicht verfügbar. Für andere Distributionen wäre es direkt über apt-get installierbar. siehe https://packages.debian.org/jessie/loganalyzer

Daher muss es manuell geladen werden. Zunächst identifiziert man den aktuellen Downloadlink unter https://loganalyzer.adiscon.com/download/

http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz

Im Anschluss wird die Datei heruntergeladen, entpackt und in das Webserververzeichnis kopiert:

cd /usr/srcwget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gztar xzf loganalyzer-4.1.6.tar.gzcp -r loganalyzer-4.1.6/src/ /var/www/html/loganalyzerchown -R www-data:www-data /var/www/html/loganalyzer

Die weiteren Schritte erfolgen mittels Webinterface. Falls man (wegen meiner DHCP-IP-Lösung oben Installation eines Logservers mit Loganalyzer als Debian VM auf Hyper V (8)) die IP Adresse nicht parat hat, kann man sie sich anzeigen lassen:

ip address

Das Webinterface ruft man mittels http://ip/loganalyzer/ auf. Kritisch sind hier die Schritte 3 und 7:

  • Step 3 - Benutzerdatenbank in mysql neu erstellen

Hier ist das Psaswort aus dem Schritt (apt-get install rsyslog-mysql - siehe oben) anzugeben!


  • Step 7 - Syslog Datanbank angeben

Hier darf nicht direkt auf das syslog (Einstellung Diskfile / Syslog) verwiesen werden. Der Zugriff durch den Webserver-Benutzer (www-data) auf /var/log/syslog wird fehlschlagen! Stattdessen stellt man folgendes ein:

Am Schluss landet man auf der aktiven Monitoring-Seite von loganalyzer.

Wenn hier was schiefgeht

Man kann die gerade erstellte Konfiguration einfach löschen und nochmal von vorne anfangen:

rm /var/www/html/loganalyzer/config.php

Die Konfiguration des SQL-Servers kann man wie folgt überprüfen:

mysql -u root -pshow databases;MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| Syslog || information_schema || mysql || performance_schema |+--------------------+MariaDB [(none)]> use Syslog;MariaDB [Syslog]> show tables;+------------------------+| Tables_in_Syslog |+------------------------+| SystemEvents || SystemEventsProperties || logcon_charts || logcon_config || logcon_dbmappings || logcon_fields || logcon_groupmembers || logcon_groups || logcon_savedreports || logcon_searches || logcon_sources || logcon_users || logcon_views |+------------------------+

Die Datenbank heißt also Syslog, die Datenbanktabelle SystemEvents. Achtung Gross-und Kleinschreibung beachten!

Installation von snmptrap

apt-get install snmp snmptrapd

Konfiguration von snmptrap

Die Konfigurationsdatei ist /etc/snmp/snmptrapd.conf
Damit alle SNMP-Traps der SNMP-Communityt public im syslog landen muss dies mittels authCommunity log public angegeben werden.

## EXAMPLE-trap.conf:# An example configuration file for configuring the Net-SNMP snmptrapd agent.################################################################################## This file is intended to only be an example.# When the snmptrapd agent starts up, this is where it will look for it.## All lines beginning with a '#' are comments and are intended for you # to read. All other lines are configuration commands for the agent.## PLEASE: read the snmptrapd.conf(5) manual page as well!##authCommunity log,execute,net private authCommunity log public### send mail when get any events#traphandle default /usr/bin/traptoemail -s smtp.example.org foobar@example.org### send mail when get linkDown#traphandle .1.3.6.1.6.3.1.1.5.3 /usr/bin/traptoemail -s smtp.example.org foobar@example.org

Im Anschluss wird snmptrapd neu gestarted:

service snmptrapd restart

Konfiguration von rsyslog

Hier sind etwas größere Umbauten nötig, damit die Sache übersichtlich bleibt und wir gewünscht funktioniert. Rsyslog verwendet verschiedene Schreibweisen für die Konfiguration. https://www.rsyslog.com/doc/v8-stable/configuration/conf_formats.html#wh ... Benötigt wird das advanced format .

Bei der Installation von rsyslog-mysql wurde die Datei /etc/rsyslog.d/mysql.conf erzeugt. Hier müssen die Zeilen auskommentiert werden. Alternativ kann man die Datei auch löschen!

### Configuration file for rsyslog-mysql### Changes are preserved# $ModLoad ommysql# *.* :ommysql:localhost,Syslog,rsyslog,GEHEIM2

Der Ladebefehl für das Modul und die Aktion werden dann in der eigentlichen rsyslog-Konfigurations eingefügt, aber etwas abweichend!

Wichtig ist hier die Reiehenfolge der Einträge. siehe: https://www.rsyslog.com/doc/v8-stable/concepts/multi_ruleset.html
Zuerst werden alle Module geladen. Dann werden die Rulesets definiert. Erst danach werden die Rulesets an die Eingabemodule (imudp und imtcp) mittels input(type= gebunden! Die Regeln für die lokalen Syslogereignisse folgen ganz unten.

# /etc/rsyslog.conf Configuration file for rsyslog.## For more information see# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html##################### MODULES #####################module(load="imuxsock") # provides support for local system logging module(load="imklog") # provides kernel logging support #module(load="immark") # provides --MARK-- message capability module(load="ommysql") module(load="imudp") module(load="imtcp") ruleset(name="nonlocal"){ # Bintec Filter - überflüssige Meldungen werden verworfen :msg, startswith, " DHC6: Updating IPv6-prefix" stop :msg, startswith, " DHC6: Adding virtual IPv6-prefix" stop :msg, startswith, " DHC6: Removing virtual IPv6-prefix" stop :msg, startswith, " NAT: denied incoming session on ifc 30010001" stop :msg, startswith, " NDISC: <Telekom>: Got Router Advertisem*nt with prefix" stop # MYSQL-logging action(type="ommysql" server="127.0.0.1" db="Syslog" UID="rsyslog" PWD="GEHEIM2") }input(type="imudp" port="514" ruleset="nonlocal") input(type="imtcp" port="514" ruleset="nonlocal") ############################### GLOBAL DIRECTIVES ################################# Use traditional timestamp format.# To enable high precision timestamps, comment out the following line.#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat## Set the default permissions for all log files.#$FileOwner root$FileGroup adm$FileCreateMode 0640$DirCreateMode 0755$Umask 0022## Where to place spool and state files#$WorkDirectory /var/spool/rsyslog## Include all config files in /etc/rsyslog.d/#$IncludeConfig /etc/rsyslog.d/*.conf################### RULES #################### snmptrapd-Augaben immer an mysql senden:syslogtag, contains, "snmptrapd" :ommysql:127.0.0.1,Syslog,rsyslog,GEHEIM2 :msg, contains, "NET-SNMP" :ommysql:127.0.0.1,Syslog,rsyslog,GEHEIM2 # Lokale Ereignisse erst ab *.warn in die mysql-Datenbank schreiben.*.warn :ommysql:127.0.0.1,Syslog,rsyslog,GEHEIM2## First some standard log files. Log by facility.#auth,authpriv.* /var/log/auth.log*.*;auth,authpriv.none -/var/log/syslog#cron.* /var/log/cron.logdaemon.* -/var/log/daemon.logkern.* -/var/log/kern.loglpr.* -/var/log/lpr.logmail.* -/var/log/mail.loguser.* -/var/log/user.log## Logging for the mail system. Split it up so that# it is easy to write scripts to parse these files.#mail.info -/var/log/mail.infomail.warn -/var/log/mail.warnmail.err /var/log/mail.err## Some "catch-all" log files. #*.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug*.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages## Emergencies are sent to everybody logged in.#*.emerg :omusrmsg:*

Ich habe die Filter zum Verwerfen nicht relevanter Meldungen meines Bintec-Routers in der rsyslog.conf als Beispiel drin gelassen. Das kann man anpassen. Bitte insbesondere die Leerzeichen beim startwith filter beachten. Zur Not ist es besser contains anstelle von startwith zu verwenden.

Die Konfiguration trennt das systemeigene Syslog vom mysql-Syslog. Auch das kann man anders lösen. Die Verwendung der Rulesets macht sinn, da dann nicht alle lokalen Syslogmeldungen durch die Filter müssen, und das ganze etwas performanter wird.

Zum Schluss muss noch rsyslog neu gestartet werden:

service rsyslog restart

So. Das sollte dann laufen. Ich hoffe, es hilft jemandem.

Grüße

lcer

Content-Key: 387586

Url: https://administrator.de/contentid/387586

Printed on: June 24, 2024 at 05:06 o'clock

Installation eines Logservers mit Loganalyzer als Debian VM auf Hyper V (2024)

References

Top Articles
Latest Posts
Article information

Author: Carmelo Roob

Last Updated:

Views: 6500

Rating: 4.4 / 5 (45 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Carmelo Roob

Birthday: 1995-01-09

Address: Apt. 915 481 Sipes Cliff, New Gonzalobury, CO 80176

Phone: +6773780339780

Job: Sales Executive

Hobby: Gaming, Jogging, Rugby, Video gaming, Handball, Ice skating, Web surfing

Introduction: My name is Carmelo Roob, I am a modern, handsome, delightful, comfortable, attractive, vast, good person who loves writing and wants to share my knowledge and understanding with you.