[gelöst] Squid - Logging auf Loghost



  • Hallo,

    ich habe squid als Proxy installiert und will, dass die Squid-Logs auf einen externen Loghost geschrieben werden.

    Ich habe dazu im WWW gefunden, dass bei der Squid-Konfiguration bei den Custom Options "access_log syslog:local:4" eingetragen werden muss.
    Das allein hat bei mir nichts bewirkt. Erst als ich in der /etc/syslog.conf die Zeile

    .  @loghost

    angefügt habe hat es - nach einem Neustart von syslogd - funktioniert.
    Leider überlebt die Zeile verschiedene andere Änderungen an der squid-Konfiguration (und vermutlich auch einen Neustart der pfSense) nicht.
    Gibt es eine Möglichkeit, den Eintrag zu "fixieren"?
    (einen Cronjob, der das immer wieder in die Config schreibt finde ich nicht besonders elegant!)

    Gruss
    Edgar



  • Ich verstehe nicht ganz.

    Erst als ich in der /etc/syslog.conf die Zeile

    .  @loghost

    angefügt habe hat es - nach einem Neustart von syslogd - funktioniert.
    Leider überlebt die Zeile verschiedene andere Änderungen an der squid-Konfiguration (und vermutlich auch einen Neustart der pfSense) nicht.

    Wenn du was in der squid Konfig änderst wird die Syslog-Konfig neugeschrieben?



  • Hallo,

    nein - wenn ich ". @loghost" in die Config schreibe und danach den Daemon neu starte funtktioniert's mit dem externen Logging.

    Wenn danach irgendwas in der Config vom squid über die Weboberfläche geändert wird, verschwindet mein Eintrag aus der Config-Datei (und das externe Logging funktioniert dann naturgemäss auch nicht mehr).

    Gruss
    Edgar



  • Hej Edgar,

    also wenn du was in der WebGUI an der squid Konfiguration veränderst wird die syslog Konfig neugeschrieben? Oder hast du dich dort nur verschrieben?

    LG



  • ja - so scheint's zu sein …

    Edgar



  • nach dem Update auf die 2.1.5 von pfSense habe ich festgestellt, dass es definitiv so ist, dass die /etc/syslog.conf nach einem Reboot des Systems "neu geschrieben wird" und dabei die manuell in der Datei vorgenommenen Änderungen nicht übernommen werden.
    Vielleich weiss ja jemand, an welcher Schraube man da drehen muss?

    Gruss
    Edgar



  • soweit ich weiß wird die syslog.conf über die Datei /etc/inc/system.inc generiert.

    VG



  • Danke.

    Jetzt kann ich mich mal damit beschäftigen …

    Gruss
    Edgar



  • Hallo Zusammen,
    sorry dass ich das nochmals frage.
    Kann jemand mir dann sagen wie ich die Logfiles auf einem external Server sende ?
    Ich habe mir heute 2.1.5-RELEASE (NanoBSD) installiert.
    Danke !



  • Menüpunkt: Status - System Logs
    Tabreiter: Settings - Remote Logging Options

    Da kann der Loghost eingetragen werden.

    (ich nehme 'mal an, dass die GUI auf NanoBSD die gleiche ist, wie bei einer "normalen" pfSense-Installation).

    Gruss
    Edgar



  • Hallo,
    Danke für die Antwort.
    Ja die GUI auf NanoBSD genau die Gleiche ist.
    Diesen Menüpunkt kenne ich. Allerdings wird da nicht den Access-Log von Squid aufgelistet.
    Ich möchte aber die Logfiles von Squid (//var/squid/logs/access.log) auf einem externen Server senden, denn ich nutzte gerade ein Alix Board und die SD Karte sehr schnell voll wird… Also ich möchte einen externen Server aufsetzen, und dorthin den Access Log schreiben.
    Ist das möglich ?
    Danke



  • Du musst bei den "Custom Options" auf dem Proxy-Server-TAB
    "access_log syslog:local:4"
    eintragen. (Das steht übrigens genauso im ersten Beitrag dieses Threads).

    Über die GUI geht das scheinbar nicht.

    Gruss
    Edgar



  • Ich nutzte Rsyslog. Muss ich noch was in meiner Konfigurationsdatei eintragen damit das funktioniert ?



  • Das kommt wohl ein bisschen auf Deine Distribution an.

    Auf Debian musst Du 2 Zeilen in der /etc/rsyslog.conf einkommentieren (sind defaultmässig auskommentiert):

    provides UDP syslog reception

    $ModLoad imudp
    $UDPServerRun 514

    Danach muss der rsyslog-Daemon neu gestartet werden.

    Wenn Du eine andere Distribution nutzt, schau' z.B. mal hier:
    http://lab4.org/wiki/Rsyslog_mit_MySQL_als_zentraler_Logserver
    oder hier:
    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/3/html/Installation_and_Configuration_Guide/Configuring_the_rsyslog_Server.html

    oder benutze eine Suchmaschine Deiner Wahl mit "rsyslog loghost" als Suchbegriff.

    Die squid-Logs landen übrigens (bei mir) in /var/log/messages auf dem Loghost.

    Gruss
    Edgar



  • @eanneser:

    Ich habe dazu im WWW gefunden, dass bei der Squid-Konfiguration bei den Custom Options "access_log syslog:local:4" eingetragen werden muss.
    Das allein hat bei mir nichts bewirkt. Erst als ich in der /etc/syslog.conf die Zeile

    .  @loghost

    angefügt habe hat es - nach einem Neustart von syslogd - funktioniert.

    Gruss
    Edgar

    Hallo,
    Also ich habe auf einem Debian Server Rsyslog installiert.
    Pfsense nutze ich mit einem NanoBSD Image auf Alix Board.
    Squid ist auf Pfsense installiert als Package und ich möchte die Access.log Datei auf dem externen Server (Debian) schreiben lassen.

    Hier wird von einer Syslog.conf datei gesprochen. Ist damit hier die Datei auf dem Debian Server gemeint ODER auf Pfsense ? Denn auf Pfsense finde ich diese Datei nicht.

    Auch woher weiss Squid dass local4 die IP 192.168.2.10 entspricht ? @eanneser:

    Menüpunkt: Status - System Logs
    Tabreiter: Settings - Remote Logging Options

    Da kann der Loghost eingetragen werden.

    (ich nehme 'mal an, dass die GUI auf NanoBSD die gleiche ist, wie bei einer "normalen" pfSense-Installation).

    Gruss
    Edgar

    Dieser Loghost gilt auch für Squid ? oder nur für die aufgelisten Optionen ?

    ![2014-08-31 15_06_41-Status_ System logs_ Settings.jpg](/public/imported_attachments/1/2014-08-31 15_06_41-Status_ System logs_ Settings.jpg)
    ![2014-08-31 15_06_41-Status_ System logs_ Settings.jpg_thumb](/public/imported_attachments/1/2014-08-31 15_06_41-Status_ System logs_ Settings.jpg_thumb)



  • Hallo Zusammen,
    inzwischen habe ich mich mit dem Thema "Logfiles" intensiver beschäftigt.
    Ich habe auch inzwischen die syslog.conf in /etc gefunden (Symbolischer Link).

    Damit die Logfiles auf einem remote Server gespeichert werden, sollte man hier "access_log syslog:local:4" in den Custom options in Proxy Server eintragen.
    Das tut auch, bei einem Reboot bleibt sie auch in Squid.conf enthalten. Hier kein Problem.

    Nur wenn ich das sich genauer anschaue, auf dem remote Server wird hier nicht gespeichert was man haben will, sondern es wird hier den Content von der Datei /var/log/portalauth.log/portalauth.log gespeichert und nicht /var/squid/logs/access.log.

    Und die Erklärung ist relativ einfach. In syslog.conf steht hier :
    local4.* %/var/log/portalauth.log

    Aber auch wenn ich in dieser Datei dies eingebe :
    "local5.* %/var/squid/logs/access.log"
    Funktioniert es nicht.
    Wie bekomme ich dann die Access.log datei auf dem Loghost ? Vielen Dank im Voraus.



  • Ist das Thema wirklich gelöst?
    Da anscheinend noch offene Punkte da sind, sollte man das Topic von "gelöst" auf "offen" (o. ä.) wechseln.
    Ist doch etwas verwirrend… ;-)

    just my two cents...



  • … es hat jemand - nachdem er im gelösten Thread noch 'was hinzugefügt hat - einen neuen Thread zum Thema aufgemacht:

    https://forum.pfsense.org/index.php?topic=81171.0

    Insofern ist das hier gelöst ...

    Gruss
    Edgar



  • @eanneser:

    nach dem Update auf die 2.1.5 von pfSense habe ich festgestellt, dass es definitiv so ist, dass die /etc/syslog.conf nach einem Reboot des Systems "neu geschrieben wird" und dabei die manuell in der Datei vorgenommenen Änderungen nicht übernommen werden.

    Hallo Edgar,

    dieses Problem stört mich auch. Hast Du an der /etc/inc/system.inc etwas machen können oder eine andere Lösung gefunden?

    Ich habe bisher den access.log noch in eine andere Datei schreiben lassen und diesen dann gesichert. Damit war ich die Rotation und den evtl. Verlust von Informationen los und konnte zudem auf der lokalen Platte sichern, ohne einen Logserver aufsetzen zu müssen. Für meine Bedürfnisse war das ideal - bis die syslog.conf nicht mehr verändert werden konnte in 2.1.5.

    Grüße
    Michael



  • Hi,

    ich hab' mir die Datei angeschaut und bin zu dem Schluss gekommen, dass mir das zu riskant ist, da auf die Schnelle 'was zu verändern.

    Wenn ich dazu komme, werde ich mich eingehender mit der Datei beschäftigen, bis dahin lebe ich damit, dass ich nach einem Reboot (kommt ja eh' nicht oft vor) den Eintrag für den Loghost neu mache …

    Wenn jemand vorher eine Lösung findet - bitte posten.

    Gruss
    Edgar



  • Hallo Elgar,

    nach dem Posting bin ich zuerst fragend im englischen Teil des Forums tätig gewesen: https://forum.pfsense.org/index.php?topic=81387.0
    Weil das keine (sofortige) Reaktion hervorrief (was ich nicht übelnehme), habe ich in die Hände gespuckt und etwas gespielt.

    Herausgekommen ist ein shell script, das ich in /usr/local/etc/rc.d/ gepackt habe und das die vorhandenen - von pfsense bzw. /etc/inc/system.inc erzeugten jungfräulichen - Dateien gegen meine eigenen austauscht. Es sieht ungefähr so aus:

    
    #!/bin/sh
    
    kill -9 $(cat /var/run/syslog.pid)
    cp /root/Skripte/syslog.conf_ersatz /etc/syslog.conf
    /usr/sbin/syslogd -s -c -c -l /var/dhcpd/var/run/log -f /var/etc/syslog.conf
    
    kill -9 $(cat /var/run/cron.pid)
    cp /root/Skripte/crontab_ersatz /etc/crontab
    /usr/sbin/cron -s
    
    

    Vielleicht ist das die einfachste Lösung, ohne die /etc/inc/system.inc anfassen zu müssen. Bei mir scheint es jedenfalls zu funktionieren.

    Herzlich
    Michael


  • Rebel Alliance Moderator

    Hallo Michael,

    sei dir aber bewusst, dass du damit nicht nur das Syslogging anfasst, sondern auch die System-Crontab ersetzt. Das heißt auch jede nicht-Syslog bezogene Änderung des Systems auf seine Crontab wird nach dem Neustart ignoriert.

    Da fallen mir bspw. die Check-Zeiträume für Bogon Netzwerke ein, die man in der Oberfläche einstellt und in die Crontab geschrieben werden, genauso wie die Time Based Rules (nur als Beispiel).

    Sollte dann etwas an anderer Stelle nicht mehr richtig greifen, wäre das der Ansatzpunkt. Warum ersetzt du überhaupt die System Crontab? Oder ist das losgelöst von der Logging Problematik?

    Grüße



  • Hallo JeGr,

    ich hoffe mit meiner Konfiguration den Stein der Weissheit gefunden zu haben ;-) Ich erwarte keine Veränderungen der Einstellungen auf der Oberfläche und wenn ja, dann pflege ich sie bei Bedarf in die crontabs selbst ein.

    Der Grund ist der von Dir Vermutete: Ich sichere täglich die Logs und brauche daher einen regelmäßig laufenden Prozeß, den ich sonst nicht in die crontabs kriege. Sicherlich wäre es sinnvoller, das Logging auf einen anderen Rechner auszulagern (Sicherheit, keine Konflikte mit der pfsense-Installation wie jetzt bei mir), aber die "Ressourcenvorgaben" machen das unmöglich. Ich recherchierte auch nach der Möglichkeit, beides zu virtualisieren und auf einem System laufen zu lassen. Dazu habe ich aber nur kritische Postings gefunden. Kritusch könnte es auch werden, wenn Updates eingepflegt werden (müssen).

    Sei's drum. Seit zwei Tagen läuft es ohne Probleme. Ansonsten hätte ich mich schon gemeldet ;-)

    Herzliche Grüße
    Michael



  • Hej guten Morgen,

    also zuerst ist es keine gute Idee mit einer SD Karte einen squid mit aktivem logging laufen zu lassen. Die Karte schrottet dir schneller als es dir lieb ist.

    Zudem stande ich auch vor dem Problem die squid-logs von der pfsense zu bekommen. Was ich nun getan habe ist folgender weg.

    Einen symbolischen Link der Logdatei in das www-root der pfsense und dann lasse ich jeden Abend auf meinem http Server ein php script laufen welches die logdatei ausliest und in eine SQL-Datenbank schreibt. In der squid-Konfig habe ich die Log-Rotation auf 1 Tag gesetzt, so wird jeden Tag ein leeres Logfile erzeugt welches ich Abends dann auslese.

    Einen anderen Weg (rsyslog wäre genial) habe ich nicht gefunden bisher.

    Überdenke das mit der SD Karte nochmal ;-)

    LG
    Chris



  • Hallo Chris,

    mein System läuft auf einem Microserver von HP. In diesem werkelt eine Red-WD-Platte, die den Dauer-Stress aushalten sollte.

    Die syslog.conf habe ich um einen zusätzkuchen Verweis in eine weitere Datei ergänzt. Diese Datei sichere ich regelmäßig (gzip mit Datumstempel). Nach 90 Tagen werden die div. logs nach und nach entfernt. Bei Bedarf müsste man halt den gezippten Krempel auswerten… Aber die Störerhaftung soll ja wegfallen :-)

    Herzliche Grüße
    Michael


  • Rebel Alliance Moderator

    Aber die Störerhaftung soll ja wegfallen :-)

    Gnihihihihi … als ob ;)
    Sorry, der war böse, aber an diesen Stellen bin ich Realist wenn ich sehe, was unsere #Neuland-Regierung sonst noch alles treibt...

    Grüße


Log in to reply