(teilweise gelöst)UDP-Logverteilung auf mehrere IPs im LAN mit syslog-ng

wonderdoc

Mitglied
Mitglied seit
16 Aug 2006
Beiträge
214
Punkte für Reaktionen
0
Punkte
0
Hallo,

Kennt jemand eine Möglichkeit UDP-Logdaten auf einem Port zu empfangen und dann an mehrere IPs weiterzuleiten?

Also ein Programm soll seinen Log-Text per UDP an ein Programm senden, welchen den Log per UPD dann parallel an 2 oder 3 IPs im LAN weiterleitet.

Das Verteilerprogramm sollte auf der Fritzbox mit Freetz dann laufen.

EDIT:
Hier mal das Package als Addon.
Enthalten ist der syslog-ng 1.6.12
Die syslog-ng bin kann auch auf einem USB-Datenträger ausgelagert werden.
Dazu die bin einfach auf den USB-Datenträge in den Unterpfad /syslog-ng/ kopieren.
Im WebIf dann einfach die USB-Suche aktivieren.

Jetzt müßte nur noch das Bauen des Package automatisiert werden.
Libol muß in Abhängigkeit von Syslog-NG gebaut werden.
Libol wird im End-Image aber selber nicht benötigt, da syslog-ng statisch gebaut wird.
Die libol-config muß vor dem Bauen des syslog-ng in dessen Source Verzeichnis kopiert werden.

mfg
Wonderdoc
 

Anhänge

  • syslog-ng-0.1.tar.bz2
    93.5 KB · Aufrufe: 15
Zuletzt bearbeitet:
Schick die Logs einfach an die Broadcastadresse deines Lans, zb 192.168.178.255
 
@cuma

Das mit der Broadcastadresse funktioniert leider nicht.
Außerdem gestaltet sich die Sache etwas komplexer, da ich 2 Netzsegmente über OpenVPN(TUN) verbunden habe.

Es wird also ein Programm benötigt, welches auf einem Port lauscht und dann die Daten 1zu1 an mehrere IPs(auch zu mehreren Netzsegmenten) weiterleitet.
Für einen WinPC ist dieses schnell programmiert.
Da ich aber keinen PC im Dauereinsatz habe, sollte es auf der Fritzbox laufen.

Kennt jemand so ein Tool?

mfg
Wonderdoc
 
Hi,

als Lösung könnte der Syslog-ng dienen.
Diesen gibt es als OpenSourceEdition unter http://www.balabit.com/network-security/syslog-ng/.
Er bietet die Möglichkeit Sourcen, Filter und Destination zu konfigurieren.
Ein Logereignis kann gefiltert und an mehrere Destinations gesendet werden.

Man könnte mal Versuchen, dieses unter Freetz zu kompelieren.

mfg
Wonderdoc
 
Hallo,

Ich habe den Syslog-NG 2.1.3 nun mal unter Linux kompeliert und getestet.
Eine UDP-Logverteilung an mehrere Ziel-IPs ist problemlos damit möglich.

Nun wollte ich den Source für mipsel laut Wiki kompelieren.
Make bricht aber ab, da scheinbar glib nicht vorhanden ist.
Code:
mipsel-linux-gcc  -g -O2 -Wall  -static -o syslog-ng  main.o libsyslog-ng.a -lnsl -lrt   -lglib-2.0   -levtlog
/home/slightly/fritzbox/trunk2894/toolchain/build/gcc-4.2.1-uClibc-0.9.29/mipsel-linux-uclibc/bin-ccache/../lib/gcc/mipsel-linux-uclibc/4.2.1/../../../../mipsel-linux-uclibc/bin/ld: cannot find -lglib-2.0
collect2: ld returned 1 exit status
make[2]: *** [syslog-ng] Fehler 1
make[2]: Leaving directory `/home/slightly/fritzbox/syslog-ng-2.1.3/src'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/slightly/fritzbox/syslog-ng-2.1.3'
make: *** [all] Fehler 2
slightly@StinkyLinux:~/fritzbox/syslog-ng-2.1.3$

Configuriert habe ich es so:
LDFLAGS=-static ./configure --build=i386-linux-gnu --target=mipsel-linux --host=mipsel-linux
Danach dann make ausgeführt.

Wie bekomme ich glib-2.0 für freetz installiert?

mfg
Wonderdoc
 
Code:
make glib2-precompiled
;-)

MfG Oliver
 
Danke Oliver,

ich hatte zum Bauen der glib2 gerade schon die option unter menuconfig ausgewählt.
Ist zwar etwas umständlicher, hat aber auch funktioniert.
(Es wurde glib-2.18.2 runtergeladen. Es gibt aber bereits eine 2.18.4)

Nun bricht make aber mit cannot find -levtlog ab.
Code:
mipsel-linux-gcc  -g -O2 -Wall  -static -o syslog-ng  main.o libsyslog-ng.a -lnsl -lrt   -lglib-2.0   -levtlog
/home/slightly/fritzbox/trunk2894/toolchain/build/gcc-4.2.1-uClibc-0.9.29/mipsel-linux-uclibc/bin-ccache/../lib/gcc/mipsel-linux-uclibc/4.2.1/../../../../mipsel-linux-uclibc/bin/ld: cannot find -levtlog
collect2: ld returned 1 exit status
make[2]: *** [syslog-ng] Fehler 1
make[2]: Leaving directory `/home/slightly/fritzbox/syslog-ng-2.1.3/src'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/slightly/fritzbox/syslog-ng-2.1.3'
make: *** [all] Fehler 2
Unter Linux selber mußte ich eventlog noch installieren.
Wie bekomme ich dieses nun in Freetz noch mit rein?

mfg
Wonderdoc
 
Zuletzt bearbeitet:
Ich empfehle, eine Version aus dem Bereich 1.6.x zu nehmen, Bzw. die 1.6.12. Eine kleine Anleihe beim OpenWRT-Projekt, allerdings hat man da keine glib2 als dependency, sondern "nur" die libol, die direkt mit den Sourcen kommt und schlicht gelinkt werden muss.

lg
 
Schicke die Loginformationen an eine Multicast-Gruppe, auf die sich einzelne Hosts registrieren. Natürlich solltest Du per Routing die Multicasts auch in andere Subnetze weiterleiten, wenn hier Router zu überbrücken sind. http://www.syslog.org/ oder suche nach syslog-ng und multicast.

--gandalf.
 
@gandalf94305
Danke für die Info, aber ich würde gerne den syslog-ng benutzen.
(Und dabe gleich noch etwas über die Packageerstellung unter Freetz lernen)

Ich bin nun soweit, daß das Package unter make menukonfig ausgewählt werden kann.
Die Sourcen werden entpackt und gepatcht. Make bricht aber nun ab.
Code:
slightly@StinkyLinux:~/fritzbox/trunk2894$ make syslog-ng-precompiled
WARNING: The program intltool-update was not found in path.
PATH="/home/slightly/fritzbox/trunk2894/toolchain/target/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" \
                make -j2 -C source/syslog-ng-1.6.12 \
                CC="/home/slightly/fritzbox/trunk2894/toolchain/target/bin/mipsel-linux-uclibc-gcc" \
                CFLAGS="-Os -pipe -march=4kc -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
make[1]: Entering directory `/home/slightly/fritzbox/trunk2894/source/syslog-ng-1.6.12'
make[1]: *** Keine Targets angegeben und keine »make«-Steuerdatei gefunden.  Schluss.
make[1]: Leaving directory `/home/slightly/fritzbox/trunk2894/source/syslog-ng-1.6.12'
make: *** [source/syslog-ng-1.6.12/src/syslog-ng] Fehler 2

Meine syslog-ng.mk sieht aktuell wie folgt aus:
Code:
$(call PKG_INIT_BIN,1.6.12)
$(PKG)_SOURCE:=$(pkg)-$($(PKG)_VERSION).tgz
$(PKG)_SITE:=http://www.balabit.com/downloads/files/syslog-ng/sources/1.6/src
$(PKG)_BINARY:=$($(PKG)_DIR)/src/$(pkg)
$(PKG)_TARGET_BINARY:=$($(PKG)_DEST_DIR)/usr/sbin/$(pkg)

$(PKG)_CONFIGURE_OPTIONS += --disable-dependency-tracking
$(PKG)_CONFIGURE_OPTIONS += --disable-full-static
$(PKG)_CONFIGURE_OPTIONS += --enable-tcp-wrapper
$(PKG)_CONFIGURE_OPTIONS += --with-libol="$(STAGING_DIR)/host/bin"


$(PKG_SOURCE_DOWNLOAD)
$(PKG_UNPACKED)
$(PKG_CONFIGURED_CONFIGURE)

$($(PKG)_BINARY): $($(PKG)_DIR)/.configured
	PATH="$(TARGET_PATH)" \
		$(MAKE) -C $(SYSLOG_NG_DIR) \
		CC="$(TARGET_CC)" \
		CFLAGS="$(TARGET_CFLAGS)"

$($(PKG)_TARGET_BINARY): $($(PKG)_BINARY)
	$(INSTALL_BINARY_STRIP)

$(pkg):

$(pkg)-precompiled: $($(PKG)_TARGET_BINARY)

$(pkg)-clean:
	-$(MAKE) -C $(SYSLOG_NG_DIR) clean
	$(RM) $(SYSLOG_NG_DIR)/.configured

$(pkg)-uninstall:
	$(RM) $(SYSLOG_NG_TARGET_BINARY)

$(PKG_FINISH)

Da muß sicherlich noch etwas angepasst werden

mfg
Wonderdoc
 
Zuletzt bearbeitet:
Entweder gibt es in "source/syslog-ng-1.6.12" keine Datei mit dem Namen "Makefile" oder du musst in die Zeile mit dem $(MAKE) -C ... noch ein Target, z.B. all, hinzufügen.

MfG Oliver
 
@wonderdog, wo ist denn da der Widerspruch? Ich habe Dir doch gerade auch zu syslog-ng und Multicast geraten :gruebel:

Multicast ist der Netzwerkmechanismus der Verteilung an mehrere Ziele - unabhängig davon, wo sich diese im Netzwerk befinden. Deine bisherigen Ansätze mit Unicast und Broadcasts haben ihre Beschränkungen.

--gandalf.
 
@Oliver,

füge ich ein all hinzu, dann bricht er mit "Keine Regel, um >all< zu erstellen" ab.
Ein Makefile ist in dem Source-Package nicht enthalten.

mfg
Wonderdoc
 
Hallo,

ich habe mit unterstützung von Silent-Tears erste Erfolge gehabt.
ich habe das menuconfig um libol und syslog-ng erweitert.
Mit make libol-precompiled wird libol gebaut.
mit make syslog-ng-precompiled wird syslog-ng gebaut.
Allerdings muß man die erstellte libol-config Datei aber noch manuell in das Source-Verzeichnis von syslog-ng kopieren.

Hier mal die Files aus dem make-Ordner( müssen unter make ausgepackt werden)
Ggf kann jemand schonmal die Daten weiterbearbeiten und die Abhängigkeiten in Freetz basteln.
Ich teste nun mal die erstellte bin und baue schonmal das Webif als Addon.


mfg
Wonderdoc
 

Anhänge

  • libol.tar.bz2
    641 Bytes · Aufrufe: 3
  • syslog-ng.tar.bz2
    2.9 KB · Aufrufe: 3
Wird damit auch das Syslog-Problem der 7270 behoben? Du hast leider keine Signatur
 
ich habe nur 7170 und 7113 Boxen bei mir, daher kann ich zu der 7270 jetzt nichts sagen.
 
Das funktioniert so eh noch nciht, und muss noch geändert werden. welches problem dann letztendlich damit behoben werden kann, wird sich zeigen.
ist auf jeden fall ein eventueller anfang für ein vernünftiges logging, so weit man es denn braucht.
 
bitte beachten, daß mit der angehänten make der syslog-ng nicht statisch gebaut wird.
Dazu muß in der syslog-ng.mk folgendes angepasst werden.
-$(PKG)_CONFIGURE_OPTIONS += --disable-full-static
+$(PKG)_CONFIGURE_OPTIONS += --enable-full-static
Ich konnte die bin schonmal starten mit parameter -f {pfad zu syslog-ng.conf}.

EDIT:
Die erstellte Bin läuft, ich kann UDP-Messages damit empfangen und an 2 PCs parallel weiterleiten.

mfg
Wonderdoc
 
Wird damit auch das Syslog-Problem der 7270 behoben?
Wo sollen die Meldungen herkommen, wenn der Kernel nichts loggt? Das wird das von AVM programmierte Verhalten sicher nicht ändern.

MfG Oliver
 
Ich habe am 1. Posting mal den syslog-ng als Addon angehängt.

mfg
Wonderdoc
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.