.titleBar { margin-bottom: 5px!important; }

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

Dieses Thema im Forum "Freetz" wurde erstellt von wonderdoc, 4 Jan. 2009.

  1. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 wonderdoc, 4 Jan. 2009
    Zuletzt bearbeitet: 13 Jan. 2009
    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:

  2. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,743
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Schick die Logs einfach an die Broadcastadresse deines Lans, zb 192.168.178.255
     
  3. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @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
     
  4. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  5. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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:
    Danach dann make ausgeführt.

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

    mfg
    Wonderdoc
     
  6. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Code:
    make glib2-precompiled
    ;-)

    MfG Oliver
     
  7. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #7 wonderdoc, 10 Jan. 2009
    Zuletzt bearbeitet: 10 Jan. 2009
    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
     
  8. Silent-Tears

    Silent-Tears IPPF-Promi

    Registriert seit:
    3 Aug. 2007
    Beiträge:
    7,456
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BI
    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
     
  9. gandalf94305

    gandalf94305 Guest

    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.
     
  10. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #10 wonderdoc, 11 Jan. 2009
    Zuletzt bearbeitet: 11 Jan. 2009
    @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
     
  11. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    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
     
  12. gandalf94305

    gandalf94305 Guest

    @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.
     
  13. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @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
     
  14. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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:

  15. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,743
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Wird damit auch das Syslog-Problem der 7270 behoben? Du hast leider keine Signatur
     
  16. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ich habe nur 7170 und 7113 Boxen bei mir, daher kann ich zu der 7270 jetzt nichts sagen.
     
  17. Silent-Tears

    Silent-Tears IPPF-Promi

    Registriert seit:
    3 Aug. 2007
    Beiträge:
    7,456
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BI
    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.
     
  18. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
    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
     
  19. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Wo sollen die Meldungen herkommen, wenn der Kernel nichts loggt? Das wird das von AVM programmierte Verhalten sicher nicht ändern.

    MfG Oliver
     
  20. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich habe am 1. Posting mal den syslog-ng als Addon angehängt.

    mfg
    Wonderdoc