Skip to content

GoAccess - Visual Web Log Analyzer

Verschoben Linux
  • Es gibt ja einige Tools um die Logfiles von Webseiten auszulesen. Mir fallen dazu spontan noch folgende ein. Awstats, Piwik oder wie es mittlerweile heißt Matomo. Das führende dürfte Google Analytics sein. Jetzt nehmen wir mal an, wir möchten Google loswerden und machen das selber. Für einen Überblick dürften alle diese Tools reichen. Beim Umsehen bin ich über GoAccess gestolpert.

    Beim durchlesen der Dokumentation kam ich zu dem Ergebnis, das sieht gut aus, das probieren wir mal 😉 Also fing ich mal an ein wenig damit zu spielen. Das erste was auffiel, unter Debian reichte ein

    apt install goaccess
    

    Das freut den Admin 🙂 Mal schnell irgendwo her ein access.log kopiert und getestet. Sieht gut aus und sollte für mich völlig ausreichend sein.

    Auf der Webseite findet man haufenweise Beispiele. Mit folgendem Beispiel konnte ich mal testen.

    goaccess access.log -o /usr/share/nginx/html/site/report.html --real-time-html
    

    Danach konnte man sich das mit

    http://192.168.3.11/report.html
    

    anschauen. Eine Live Demo findet man hier.

    Dann kam die Überlegung, wie kann ich das mal ein wenig testen? Auf dem Server sollte es nicht drauf. Also kam es in eine VM bei mir zu Hause.

    Ich brauchte also das access.log vom Server und dann den GoAccess-Dienst.

    Dienst zum Abholen des Logs

    #!/bin/bash
    scp ssh root@DOMAIN:/var/log/nginx/access.log /root
    

    Nicht vergessen

    chmod +x fetch.sh
    

    Crontab

    # m h  dom mon dow   command
    * * * * *  /root/fetch.sh
    

    Zum Testen mal jede Minute. Somit habe ich das Log jede Minute aktualisiert auf dem Server liegen.

    GoAccess systemd

    Für den Start von GoAccess lege ich einen SystemD Dienst an.

    /etc/systemd/system/goaccess.service

    [Unit]
    Description=Goaccess Start
    After=network.target
    
    [Service]
    Type=oneshot
    ExecStart=/root/goaccess
    RemainAfterExit=true
    StandardOutput=journal
    
    [Install]
    WantedBy=multi-user.target
    

    Dienst aktivieren

    systemctl enable goaccess.service
    

    GoAccess Script

    Es fehlt noch das Script in /root/goaccess

    #!/bin/bash
    goaccess /root/access.log -o /var/www/html/report.html --config-file=/etc/goaccess/goaccess.conf --log-format=COMBINED --ignore-crawlers  --restore --persist --db-path "/var/lib/goaccess-db" --real-time-html --daemonize
    

    Auch die Datei braucht ein X

    chmod +x goaccess
    

    Danach die Kiste durchstarten.

    root@:~# pstree
        systemd─┬─agetty
                ├─cron
                ├─dbus-daemon
                ├─dhclient───3*[{dhclient}]
                ├─goaccess───2*[{goaccess}]
                ├─nginx───4*[nginx]
                ├─rsyslogd───3*[{rsyslogd}]
                ├─sshd───sshd───sshd───bash───su───bash───pstree
                ├─systemd───(sd-pam)
                ├─systemd-journal
                ├─systemd-logind
                ├─systemd-timesyn───{systemd-timesyn}
                └─systemd-udevd
    

    Ok läuft.

    bc8e6e71-0428-4dcc-9b8f-eb13e1ebf6c8-grafik.png

    Jetzt schau ich mal, ob mir das gefällt und wenn ja, dann bleibt es 🙂

  • FrankMF FrankM verschob dieses Thema von Privat am

  • Raspberry Pi5 - Netzteil

    RaspberryPi
    1
    0 Stimmen
    1 Beiträge
    125 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    814 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    2 Beiträge
    349 Aufrufe
    FrankMF

    Ok, ich war leider nicht in der Lage den CODE-Server hinter einem Proxy zu installieren. Das CODE-Team scheint Docker zu lieben und das andere nur am Rande zu machen. Ohne Liebe 🙂

    Da ich extrem lange Ladezeiten hatte und die Software insgesamt nicht den Eindruck machte, das man das gerne produktiv auf einem Server nutzen möchte, habe ich den Server eben wieder gelöscht.

    Jetzt fehlt mir leider, die deepl.com Anbindung, aber das kann man ja auch über die Webseite nutzen.

    Ich nutze jetzt wieder den eingebauten CODE-Server, der eigentlich ein App-Image ist.

    28c41010-5ce1-4f7c-89d5-1c9b253011d0-grafik.png

    Der klare Vorteil, es läuft incl. Dokumenten Freigabe 🙂

    Nicht vergessen, unter Allow list for WOPI requests kommen die Server Adressen des Nextcloud-Webservers rein!

    c1a06c2c-86b5-4750-a062-7ba9d8dd8253-grafik.png

  • 0 Stimmen
    1 Beiträge
    312 Aufrufe
    Niemand hat geantwortet
  • LUKS verschlüsselte Platte mounten

    Linux
    2
    0 Stimmen
    2 Beiträge
    631 Aufrufe
    FrankMF

    So, jetzt das ganze noch einen Ticken komplizierter 🙂

    Ich habe ja heute, für eine Neuinstallation von Ubuntu 20.04 Focal eine zweite NVMe SSD eingebaut. Meinen Bericht zu dem Thema findet ihr hier. Aber, darum soll es jetzt hier nicht gehen.

    Wir haben jetzt zwei verschlüsselte Ubuntu NVMe SSD Riegel im System. Jetzt klappt die ganze Sache da oben nicht mehr. Es kommt immer einen Fehlermeldung.

    unbekannter Dateisystemtyp „LVM2_member“.

    Ok, kurz googlen und dann findet man heraus, das es nicht klappen kann, weil beide LVM Gruppen, den selben Namen benutzen.

    root@frank-MS-7C37:/mnt/crypthome/root# vgdisplay --- Volume group --- VG Name vgubuntu2 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size <464,53 GiB PE Size 4,00 MiB Total PE 118919 Alloc PE / Size 118919 / <464,53 GiB Free PE / Size 0 / 0 VG UUID lpZxyv-cNOS-ld2L-XgvG-QILa-caHS-AaIC3A --- Volume group --- VG Name vgubuntu System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size <475,71 GiB PE Size 4,00 MiB Total PE 121781 Alloc PE / Size 121781 / <475,71 GiB Free PE / Size 0 / 0 VG UUID jRYTXL-zjpY-lYr6-KODT-u0LJ-9fYf-YVDna7

    Hier oben sieht man das schon mit geändertem Namen. Der VG Name muss unterschiedlich sein. Auch dafür gibt es ein Tool.

    root@frank-MS-7C37:/mnt/crypthome/root# vgrename --help vgrename - Rename a volume group Rename a VG. vgrename VG VG_new [ COMMON_OPTIONS ] Rename a VG by specifying the VG UUID. vgrename String VG_new [ COMMON_OPTIONS ] Common options for command: [ -A|--autobackup y|n ] [ -f|--force ] [ --reportformat basic|json ] Common options for lvm: [ -d|--debug ] [ -h|--help ] [ -q|--quiet ] [ -v|--verbose ] [ -y|--yes ] [ -t|--test ] [ --commandprofile String ] [ --config String ] [ --driverloaded y|n ] [ --nolocking ] [ --lockopt String ] [ --longhelp ] [ --profile String ] [ --version ] Use --longhelp to show all options and advanced commands.

    Das muss dann so aussehen!

    vgrename lpZxyv-cNOS-ld2L-XgvG-QILa-caHS-AaIC3A vgubuntu2 ACHTUNG Es kann zu Datenverlust kommen, also wie immer, Hirn einschalten!

    Ich weiß, das die erste eingebaute Platte mit der Nummer /dev/nvme0n1 geführt wird. Die zweite, heute verbaute, hört dann auf den Namen /dev/nvme1n1. Die darf ich nicht anpacken, weil sonst das System nicht mehr startet.

    /etc/fstab

    # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> /dev/mapper/vgubuntu-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/nvme1n1p2 during installation UUID=178c7e51-a1d7-4ead-bbdf-a956eb7b754f /boot ext4 defaults 0 2 # /boot/efi was on /dev/nvme0n1p1 during installation UUID=7416-4553 /boot/efi vfat umask=0077 0 1 /dev/mapper/vgubuntu-swap_1 none swap sw 0 0

    Jo, wenn jetzt die Partition /dev/mapper/vgubuntu2-root / anstatt /dev/mapper/vgubuntu-root / heißt läuft nichts mehr. Nur um das zu verdeutlichen, auch das könnte man problemlos reparieren. Aber, ich möchte nur warnen!!

    Nachdem die Änderung durchgeführt wurde, habe ich den Rechner neugestartet. Puuh, Glück gehabt, richtige NVMe SSD erwischt 🙂

    Festplatte /dev/mapper/vgubuntu2-root: 463,58 GiB, 497754832896 Bytes, 972177408 Sektoren Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes

    Nun können wir die Platte ganz normal, wie oben beschrieben, mounten. Nun kann ich noch ein paar Dinge kopieren 😉

  • Kernel-Log 4.20

    Linux
    1
    0 Stimmen
    1 Beiträge
    297 Aufrufe
    Niemand hat geantwortet
  • Restic - Beispielzeiten

    Restic
    1
    0 Stimmen
    1 Beiträge
    465 Aufrufe
    Niemand hat geantwortet
  • Youtube in Grav

    Grav
    1
    0 Stimmen
    1 Beiträge
    501 Aufrufe
    Niemand hat geantwortet