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

  • Debian 13 - Trixie

    Linux
    1
    0 Stimmen
    1 Beiträge
    65 Aufrufe
    Niemand hat geantwortet
  • 1 Stimmen
    13 Beiträge
    1k Aufrufe
    FrankMF

    Ich möchte das dann hier zum Abschluss bringen, das NAS ist heute zusammengebaut worden. Hier zwei Fotos.

    IMG_20200425_102156_ergebnis.jpg

    IMG_20200425_102206_ergebnis.jpg

  • Restic - forget --keep-last 3 --prune

    Restic
    2
    0 Stimmen
    2 Beiträge
    578 Aufrufe
    FrankMF

    Ich habe mich damit noch ein wenig beschäftigt, die letzten drei zu behalten, ist nicht so optimal. Da es viele Optionen bei dem Befehl gibt, hier ein Ausschnitt

    Flags: -l, --keep-last n keep the last n snapshots -H, --keep-hourly n keep the last n hourly snapshots -d, --keep-daily n keep the last n daily snapshots -w, --keep-weekly n keep the last n weekly snapshots -m, --keep-monthly n keep the last n monthly snapshots -y, --keep-yearly n keep the last n yearly snapshots

    habe ich das ein wenig so angepasst, das ich denke es passt für mich.

    restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ forget --keep-last 3 --keep-monthly 3 --prune

    Damit behalte ich auch die jeweils eines pro Monat. Und die letzten drei. Das sieht dann so aus.

    root@debian:~# ./backup2.sh repository 2f3f6147 opened successfully, password is correct Files: 38 new, 100 changed, 13268 unmodified Dirs: 0 new, 1 changed, 0 unmodified Added to the repo: 10.166 GiB processed 13406 files, 50.324 GiB in 3:24 snapshot 849f614c saved repository 2f3f6147 opened successfully, password is correct Applying Policy: keep the last 3 snapshots, 3 monthly snapshots snapshots for (host [debian], paths [/home/frank]): keep 5 snapshots: ID Time Host Tags Reasons Paths ------------------------------------------------------------------------------------ a7251cfd 2019-11-28 17:00:01 debian monthly snapshot /home/frank 283d4027 2019-12-31 17:00:01 debian monthly snapshot /home/frank ae2b96ec 2020-01-01 21:47:46 debian last snapshot /home/frank 079e00a6 2020-01-02 17:00:01 debian last snapshot /home/frank 849f614c 2020-01-03 21:08:45 debian last snapshot /home/frank monthly snapshot ------------------------------------------------------------------------------------ 5 snapshots remove 26 snapshots: ID Time Host Tags Paths ------------------------------------------------------------------ 896f16c2 2019-11-07 22:23:40 debian /home/frank b21bcf6d 2019-11-11 17:00:01 debian /home/frank f89248fb 2019-11-12 17:00:01 debian /home/frank 123ab546 2019-11-13 17:00:01 debian /home/frank b82d87d0 2019-11-18 17:00:01 debian /home/frank 040b0ab7 2019-11-19 17:00:01 debian /home/frank 7221d8ef 2019-11-20 17:00:01 debian /home/frank 84132a25 2019-11-21 17:00:01 debian /home/frank b558a52c 2019-11-25 17:00:01 debian /home/frank e5cc0c3e 2019-12-02 17:00:01 debian /home/frank 22423fa5 2019-12-03 17:00:01 debian /home/frank 39df1ab9 2019-12-04 17:00:01 debian /home/frank 98843457 2019-12-05 17:00:01 debian /home/frank b0cdd4b6 2019-12-09 17:00:01 debian /home/frank 828414f9 2019-12-10 17:00:01 debian /home/frank e34a27c3 2019-12-11 17:00:01 debian /home/frank 6e488c3b 2019-12-12 17:00:01 debian /home/frank 17898403 2019-12-16 17:00:01 debian /home/frank 1973305a 2019-12-17 17:00:01 debian /home/frank 9553bedd 2019-12-18 17:00:01 debian /home/frank fedf749d 2019-12-19 17:00:01 debian /home/frank 8e7cb876 2019-12-23 17:00:01 debian /home/frank 0bd0d102 2019-12-25 17:00:01 debian /home/frank 13d348b0 2019-12-26 17:00:01 debian /home/frank c7d960aa 2019-12-30 17:00:01 debian /home/frank f6ea9118 2020-01-01 17:00:01 debian /home/frank ------------------------------------------------------------------ 26 snapshots 26 snapshots have been removed, running prune counting files in repo building new index for repo [0:35] 100.00% 7806 / 7806 packs repository contains 7806 packs (46537 blobs) with 41.110 GiB processed 46537 blobs: 0 duplicate blobs, 0 B duplicate load all snapshots find data that is still in use for 5 snapshots [0:01] 100.00% 5 / 5 snapshots found 32654 of 46537 data blobs still in use, removing 13883 blobs will remove 0 invalid files will delete 715 packs and rewrite 752 packs, this frees 5.027 GiB [2:28] 100.00% 752 / 752 packs rewritten counting files in repo [0:01] 100.00% 6571 / 6571 packs finding old index files saved new indexes as [d137b425 f7caee99 a6e9711a] remove 35 old index files [1:13] 100.00% 1467 / 1467 packs deleted done using temporary cache in /tmp/restic-check-cache-916655151 repository 2f3f6147 opened successfully, password is correct created new cache in /tmp/restic-check-cache-916655151 create exclusive lock for repository load indexes check all packs check snapshots, trees and blobs read all data [7:47] 100.00% 6571 / 6571 items duration: 7:47 no errors were found root@debian:~#

    Am Ende seht ihr noch, wie Restic alle Files testet. Mein Script sieht jetzt so aus.

    #!/bin/bash # Script um mit Restic Daten automatisiert zu sichern! # Dient zum Sichern der Homepartition auf dem ROCKPro64 NAS! # Was soll gesichert werden? backup_pfad=/home/frank # Programm Start restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ backup $backup_pfad --exclude-file=excludes.txt restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ forget --keep-last 3 --keep-monthly 3 --prune # Testen restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ check --read-data

    Das dann schön mit einem Cronjob laufen lassen und die Datensicherung ist erledigt 😉

  • Kernel-Log 4.20

    Linux
    1
    0 Stimmen
    1 Beiträge
    300 Aufrufe
    Niemand hat geantwortet
  • tmate - Instant terminal sharing

    Linux
    2
    0 Stimmen
    2 Beiträge
    523 Aufrufe
    FrankMF

    Heute mal wieder benutzt, um bei meinem Bruder auf der Kiste nach dem Rechten zu schauen. Absolut genial.

    Sollte man evt. nicht zu "geheime" Sachen drüber schicken (meine die Leitung), aber für ein wenig Service ist das Tool wirklich super zu gebrauchen. 👍

  • Installation von Grav & NGinx & PHP7.2

    Angeheftet Verschoben Grav
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    FrankMF

    Nachdem ich den ROCKPro64 jetzt auf den Mainline umgestellt habe, lief meine Testinstallation von Grav nicht mehr.

    Hilfreiche Sache um das Problem zu lösen -> https://gist.github.com/GhazanfarMir/03bd1f1f770a3834d47274586d46ea62

    Ich bekam immer 502 Bad Gateway, Grund war ein nicht korrekt gestarteter php-pfm Service.

    rock64@rockpro64v2_0:/usr/local/bin$ sudo service php7.2-fpm start rock64@rockpro64v2_0:/usr/local/bin$ sudo service php7.2-fpm status ● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2018-08-16 20:15:20 CEST; 21s ago Docs: man:php-fpm7.2(8) Main PID: 3206 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 3, slow: 0, Traffic: 0.2req/sec" Tasks: 3 (limit: 4622) CGroup: /system.slice/php7.2-fpm.service ├─3206 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─3207 php-fpm: pool www └─3208 php-fpm: pool www Aug 16 20:15:19 rockpro64v2_0 systemd[1]: Starting The PHP 7.2 FastCGI Process Manager... Aug 16 20:15:20 rockpro64v2_0 systemd[1]: Started The PHP 7.2 FastCGI Process Manager.
  • nginx konfigurieren

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    619 Aufrufe
    Niemand hat geantwortet
  • Bananian auf HDD installieren

    BananaPi
    1
    0 Stimmen
    1 Beiträge
    860 Aufrufe
    Niemand hat geantwortet