Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:awstats_archlinux

AWStats ArchLinux

AWStats ist ein freies, sehr mächtiges und mit zahlreichen Funktionen ausgestattetes Werkzeug, zur Erstellung von grafischen Auswertungen und Statistiken von Webserver-, FTP-Server- und E-Mail-Server-LOG-Dateien zur Darstellung in HTML-Seiten.

Beschreibung Externer Link
Homepage https://www.awstats.org/
Dokumentation https://www.awstats.org/#DOC
Archlinux-Wiki https://wiki.archlinux.org/title/AWStats

Ab hier werden zur Ausführung nachfolgender Befehle root-Rechte benötigt. Um der Benutzer root zu werden, melden Sie sich bitte als root-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root:

$ su -
Password:

Vorbereitung

Die Einbindung des AUR-Repositories, kann wie in nachfolgenden internen Link beschrieben

durchgeführt werden.

Voraussetzungen

Als Voraussetzung für die Installation von AWStats sind folgende Komponenten erforderlich:

Installation

Um LOG-Auswertungen mit AWStats betreiben zu können, muss das Paket

  • awstats - ist im extra-Repository von ArchLinux enthalten

installiert werden.

Mit nachfolgendem Befehl, wird das Pakete awstats installiert:

# pacman --noconfirm -S awstats

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket awstats installiert wurden:

# pacman -Qil awstats

Installierte Dateien

Installation: Abhängigkeiten

Zur Installation von AWStats werden nachfolgende Pakete als Abhängigkeiten benötigt:

  • perl-uri - ist im extra-Repository von ArchLinux enthalten.
  • perl-net-dns - ist im extra-Repository von ArchLinux enthalten.
  • perl-net-ip - ist im extra-Repository von ArchLinux enthalten.
  • perl-geoip - ist im AUR-Repository von ArchLinux enthalten.
  • perl-net-xwhois - ist im AUR-Repository von ArchLinux enthalten.
  • mod_perl - ist im AUR-Repository von ArchLinux enthalten.

perl-uri

Mit nachfolgendem Befehl, wird das Pakete perl-uri installiert:

# pacman --noconfirm -S perl-uri

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket perl-uri installiert wurden:

# pacman -Qil perl-uri

Installierte Dateien

perl-net-ip

Mit nachfolgendem Befehl, wird das Pakete perl-net-ip installiert:

# pacman --noconfirm -S perl-net-ip

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket perl-net-ip installiert wurden:

# pacman -Qil perl-net-ip

Installierte Dateien

perl-net-dns

Mit nachfolgendem Befehl, wird das Pakete perl-net-dns installiert:

# pacman --noconfirm -S perl-net-dns

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket perl-net-dns installiert wurden:

# pacman -Qil perl-net-dns

Installierte Dateien

perl-geoip

Mit nachfolgendem Befehl, wird das Paket perl-geoip installiert:

# pikaur --noconfirm -S perl-geoip

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket perl-geoip installiert wurde:

# pikaur -Qil perl-geoip

Installierte Dateien

perl-net-xwhois

Mit nachfolgendem Befehl, wird das Paket perl-net-xwhois installiert:

# pikaur --noconfirm -S perl-net-xwhois 

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket perl-net-xwhois installiert wurde:

# pikaur -Qil perl-net-xwhois 

Installierte Dateien

mod_perl

Mit nachfolgendem Befehl, wird das Paket mod_perl installiert:

# pikaur --noconfirm -S mod_perl

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket mod_perl installiert wurde:

# pikaur -Qil mod_perl

Installierte Dateien

Apache Webserver

Nachfolgend soll ein Apache HTTPD Webserver zur Auslieferung von AWStats verwendet werden.

Dazu ist es erforderlich einen Apache HTTPD Webserver, wie unter nachfolgendem internen Link zu installieren:

/etc/httpd/conf/extra/awstats.conf

Zusätzlich ist die Einrichtung eines virtuellen Host mit nachfolgender Konfiguration erforderlich. Die Konfigurationsdatei sollte unter nachfolgendem Verzeichnis mit nachfolgendem Namen wie folgt angepasst werden:

# vim /etc/httpd/conf/extra/awstats.conf 

Der Inhalt der so angepasste Konfigurationsdatei für den virtuellen Host des Apache HTTPD Webserver könnte dann in etwa wie folgt aussehen:

<VirtualHost *:80>
    ServerAdmin webmaster@tachtler.net
    ServerName awstats.tachtler.net
    ServerPath /
 
    # ----------------------------------------------------------
    # Protocol settings
    # Enable protocol order and honor the client protocol order.
    # ----------------------------------------------------------
    <IfModule http2_module>
        Protocols h2 h2c http/1.1
        ProtocolsHonorOrder Off    
    </IfModule>
 
    # ----------------------------------------------------------
    # Rewrite settings
    # Rewrite the requestet URI - PERMANENT - to HTTPS and leave
    # this virtual Host to the HTTPS variant of it, but NOT when
    # request the Let's Encrypt .well-known/acme-challenge/ URI.
    # ----------------------------------------------------------
    <IfModule rewrite_module>
        RewriteEngine On
        RewriteCond "%{HTTPS}" "!=on"
        RewriteCond "%{REQUEST_URI}" "!^/\.well\-known/acme\-challenge/"
        RewriteRule "^(.*)$" "https://%{HTTP_HOST}%{REQUEST_URI}" [R=301,L]
    </IfModule>
 
    # ----------------------------------------------------------
    # Let's Encrypt settings
    # For creation of Let's Encrypt certificates following lines 
    # are necessary.
    # ----------------------------------------------------------
    <IfModule alias_module>
        Alias /.well-known/acme-challenge/ /srv/http/.well-known/acme-challenge/
    </IfModule>
 
    <Location /.well-known/acme-challenge/>
        Require all granted
        Satisfy Any
    </Location>
 
    # ----------------------------------------------------------
    # Logging settings
    # ----------------------------------------------------------
    <IfModule log_config_module>
        ErrorLog /var/log/httpd/awstats.tachtler.net_error.log
        SetEnvIF User-Agent "HAProxy" dontlog=yes
        SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded=yes
        <IfModule logio_module>
            CustomLog /var/log/httpd/awstats.tachtler.net_access.log combined_deflate "expr=(reqenv('forwarded') != 'yes' && reqenv('dontlog') != 'yes')"
            CustomLog /var/log/httpd/awstats.tachtler.net_access.log combined_deflate_proxypass "expr=(reqenv('forwarded') == 'yes' && reqenv('dontlog') != 'yes')"
        </IfModule>
    </IfModule>
</VirtualHost>
 
<VirtualHost *:443>
    ServerAdmin webmaster@tachtler.net
    ServerName awstats.tachtler.net
    ServerPath /
 
    # ----------------------------------------------------------
    # Protocol settings
    # Enable protocol order and honor the client protocol order.
    # ----------------------------------------------------------
    <IfModule http2_module>
        Protocols h2 h2c http/1.1
        ProtocolsHonorOrder Off    
    </IfModule>
 
    # ----------------------------------------------------------
    # SSL settings
    # ----------------------------------------------------------
    <IfModule ssl_module>
        SSLEngine On
        SSLCertificateFile /etc/letsencrypt/live/tachtler.net/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/tachtler.net/privkey.pem
 
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory "/srv/http/cgi-bin">
            SSLOptions +StdEnvVars
        </Directory>
 
        BrowserMatch "MSIE [2-5]" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
    </IfModule>
 
    # ----------------------------------------------------------
    # Rewrite settings
    # Rewrite the requestet URI - PERMANENT - to HTTPS and leave
    # this virtual Host to the HTTPS variant of it, but NOT when
    # request the Let's Encrypt .well-known/acme-challenge/ URI.
    # ----------------------------------------------------------
    <IfModule rewrite_module>
        RewriteEngine On
        RewriteCond "%{HTTPS}" "!=on"
        RewriteCond "%{REQUEST_URI}" "!^/\.well\-known/acme\-challenge/"
        RewriteRule "^(.*)$" "https://%{HTTP_HOST}%{REQUEST_URI}" [R=301,L]
    </IfModule>
 
    # ----------------------------------------------------------
    # Alias settings
    # ----------------------------------------------------------
    <IfModule alias_module>
        Alias /awstatsclasses "/usr/share/webapps/awstats/classes/"
        Alias /awstatscss "/usr/share/webapps/awstats/css/"
        Alias /awstatsicons "/usr/share/webapps/awstats/icon/"
    </IfModule>
 
    # ----------------------------------------------------------
    # Scriptalias settings
    # ----------------------------------------------------------
    ScriptAlias / "/usr/share/webapps/awstats/cgi-bin/"
 
    # ----------------------------------------------------------
    # Environment variable for Perl5
    # ----------------------------------------------------------
    <IfModule env_module>
        SetEnv PERL5LIB /usr/share/webapps/awstats/cgi-bin/lib/:/usr/share/webapps/awstats/cgi-bin/plugins/
    </IfModule>
 
    # ----------------------------------------------------------
    # Directory access settings
    # URL of https://servername/
    # ----------------------------------------------------------
    <Directory "/usr/share/webapps/awstats">
        <IfModule perl_module>
   	    AddHandler perl-script .pl
            AddHandler perl-script .cgi
            PerlResponseHandler ModPerl::Registry
    	    PerlOptions +ParseHeaders
        </IfModule>
 
        Options -Indexes +FollowSymLinks +ExecCGI
        AllowOverride None        
        Require all granted
    </Directory>
 
    # ----------------------------------------------------------
    # DirectoryIndex settings
    # ----------------------------------------------------------
    <IfModule dir_module>
        DirectoryIndex awstats.pl index.html index.htm
    </IfModule>
 
    # ----------------------------------------------------------
    # Compression settings
    # Enable compression for delivering the compressed site body
    # ----------------------------------------------------------
    <IfModule deflate_module>
        # Place filter 'DEFLATE' on all outgoing content
        SetOutputFilter DEFLATE
        # Exclude uncompressible browser via part of user-agent string
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        # Exclude uncompressible content via file type
        <IfModule setenvif_module>
            SetEnvIfNoCase Request_URI \.(?:png|jpe?g|gif|tar||gz|xz|zip)$ no-gzip
        </IfModule>
        <IfModule headers_module>
            # Properly handle requests coming from behind proxies
            Header append Vary User-Agent
        </IfModule>
    </IfModule>
 
    # ----------------------------------------------------------
    # Logging settings
    # ----------------------------------------------------------
    <IfModule log_config_module>
        ErrorLog /var/log/httpd/awstats.tachtler.net_error.log
        SetEnvIF User-Agent "HAProxy" dontlog=yes
        SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded=yes
        <IfModule logio_module>
            CustomLog /var/log/httpd/awstats.tachtler.net_access.log combined_deflate_ssl "expr=(reqenv('forwarded') != 'yes' && reqenv('dontlog') != 'yes')"
            CustomLog /var/log/httpd/awstats.tachtler.net_access.log combined_deflate_proxypass_ssl "expr=(reqenv('forwarded') == 'yes' && reqenv('dontlog') != 'yes')"
        </IfModule>
    </IfModule>
</VirtualHost>

/etc/httpd/conf/httpd.conf

Damit die zuvor unter

neu erstellte Konfigurationsdatei auch durch den Apache HTTPD Webserver eingelesen wird, ist nachfolgende Ergänzung in der bereits bestehnden Konfigurationsdatei

  • /etc/httpd/conf/httpd.conf

wie folgt am Ende der Konfigurationsdatei hinzuzufügen:

# Tachtler - NEW -
LoadModule perl_module modules/mod_perl.so
# Load *.conf files in the "conf/vhost" directory, if any.
Include conf/extra/awstats.conf

Neustart: Apache HTTPD Webserver

Bevor weitere Konfigurationsschritte erfolgen, sollte ein Neustart erfolgen, was mit nachfolgendem Befehl durchgeführt werden kann:

# systemctl restart httpd.service

:!: HINWEIS - Es erfolgen keine weiteren Ausgaben, wenn der Start erfolgreich war !

Konfiguration: Log-Auswertung

:!: HINWEIS - Die nachfolgende Konfiguration soll manuell erfolgen und nicht via Skript!

Um eine LOG-Auswertung mittels AWStats von einer Web-Seite durchführen zu können, muss für die jeweilige Web-Seite, jeweils eine eigene Konfigurationsdatei angelegt werden.

Die soll manuell durch kopieren der nachfolgenden bereits mitgelieferten Standard-Konfigurationsdatei mit nachfolgenden Befehl erfolgen:

# cp -a /etc/awstats/awstats.model.conf /etc/awstats/awstats.awstats.tachtler.net.conf

Anschliessend sind nachfolgende Änderungen an der zuvor für die Web-Seite https://awstats.tachtler.net erstellten AWStats-Konfigurationsdatei durchzuführen:

  • # Tachtler
    # default: LogFile="/var/log/httpd/d$amylog.log"
    LogFile="/var/log/httpd/awstats.tachtler.net_access.log"

Angabe der Apache HTTPD Webserver access-LOG-Datei mit Pfad, hier als Beispiel: https://awstats.tachtler.net

  • # Tachtler
    # default: HostAliases="localhost 127.0.0.1 REGEX[myserver\.com$]"
    HostAliases="localhost 127.0.0.1 REGEX[awstats\.tachtler\.net$]"

Angabe, nach welchen (V)HOST-Namen in der Apache HTTPD Webserver access-LOG-Datei ausgewertet werden soll

  • # Tachtler
    # default: DirData="/var/lib/awstats"
    DirData="/srv/awstats"

Hier kann, muss aber nicht der Pfad verändert werden, wohin die Auswertungen der jeweiligen Apache HTTPD Webserver access-LOG-Datei im Dateisystem geschrieben werden, um dann über Web-Seite von AWStats zur Anzeige gebracht zu werden.

  • # Tachtler
    # default: DirCgi="/cgi-bin"
    DirCgi="/awstats"

Hier sollte, der Pfad verändert werden, falls AWStats von einer shell aus aufgerufen wird, um den Pfad zum cgi-bin Verzeichnis zur Verfügung zu stellen.

  • # Tachtler
    # default: DirIcons="/icon"
    DirIcons="/awstatsicons"

Hier muss, der Pfad verändert werden, damit bei den Auswertungen der jeweiligen Apache HTTPD Webserver access-LOG-Datei auch Bilder und Icons, über Web-Seite von AWStats zur Anzeige gebracht zu werden können.

  • # Tachtler
    # default: AllowToUpdateStatsFromBrowser=0
    AllowToUpdateStatsFromBrowser=1

Ermöglicht die Auswertung über einen Link auf der Web-Seite von AWStats zu aktualisieren.

  • # Tachtler                                                                                                           
    # default: EnableLockForUpdate=0
    EnableLockForUpdate=1

Sperrt die parallele Auswertung, um DDOS-Angriffen vor zu beugen.

  • # Tachtler
    # default: AllowAccessFromWebToAuthenticatedUsersOnly=0
    #AllowAccessFromWebToAuthenticatedUsersOnly=1

Sollte aktiviert werden, bedingt aber den Schutz mittels Authentifizierung an der Web-Seite von AWStats. Siehe auch nachfolgenden internen Link:

  • # Tachtler
    # default: AllowAccessFromWebToFollowingAuthenticatedUsers=""
    AllowAccessFromWebToFollowingAuthenticatedUsers="klaus"

Einschränkung auf nur bestimmte Benutzer, welche Zugriff auf die Web-Seite von AWStats haben sollen.

  • # Tachtler
    # default: SaveDatabaseFilesWithPermissionsForEveryone=0
    SaveDatabaseFilesWithPermissionsForEveryone=1

Speicherung der Auswertungen der jeweiligen Apache HTTPD Webserver access-LOG-Datei im Dateisystem mit Rechten für den Benutzer des Apache HTTPD Webserver und zusätzlich für den CGI-Skript-Benutzer ermöglichen.

  • # Tachtler
    # default: DefaultFile="index.php index.html"
    DefaultFile="awstats.pl"

Angabe der Datei, welche in der Apache HTTPD Webserver-Konfiguration der jeweiligen Web-Seite als DirectoryIndex hinterlegten Datei angegeben wurden. Hier ist dies speziell für AWStats selbst awstats.pl.

  • # Tachtler
    # default: SkipUserAgents=""
    SkipUserAgents="REGEX[Icinga.check]"

Definition von User-Agents, von denen keine Aufrufe in die LOG-Datei-Auswertung von AWStats mit einfliessen sollen. Hier z.B. der User-Agent von Icinga2-Monitoring

  • # Tachtler                                                                                                           
    # default: Lang="auto"
    Lang="de"

Einstellung für die Standard-Sprache der Web-Seite von [https://www.awstats.org|AWStats]].

  • # Tachtler                                                                                                           
    # default: #LoadPlugin="tooltips"
    LoadPlugin="tooltips"
    # Tachtler
    # default: #LoadPlugin="decodeutfkeys"
    LoadPlugin="decodeutfkeys"
    # Tachtler
    # default: #LoadPlugin="ipv6"
    LoadPlugin="ipv6"
    # Tachtler
    # default: #LoadPlugin="hashfiles"
    LoadPlugin="hashfiles"
    # Tachtler
    # default: #LoadPlugin="userinfo"
    LoadPlugin="userinfo
    # Tachtler
    # default: #LoadPlugin="hostinfo"
    LoadPlugin="hostinfo"
    # Tachtler
    # default: #LoadPlugin="clusterinfo"
    LoadPlugin="clusterinfo"
    # Tachtler
    # default: #LoadPlugin="timehires"
    LoadPlugin="timehires"
    # Tachtler
    # default: #LoadPlugin="rawlog"
    LoadPlugin="rawlog"

Plugins, welche Verwendung finden sollen.

:!: HINWEIS - Das Plugin #LoadPlugin=„graphapplet /awstatsclasses“ # EXPERIMENTAL FEATURE nicht verwenden, da sonst keine Balkendiagramme angezeigt werden!

:!: HINWEIS - Es werden noch zusätzliche Plugins, welche eine weitere Konfiguration benötigen, noch gesondert beschrieben!

Konfiguration: Plugins

Plugin: UrlAliases

Mit diesem Plugin ist es möglich, einen Text (Seitentitel, Beschreibung…) in URL-Berichten vor dem URL-Wert hinzuzufügen.

Zur Nutzung dieses Plugins, ist es erforderlich, eine Textdatei namens urlalias.txt, mit zwei Feldern (das erste ist die URL, das zweite ist der anzuzeigende Text, getrennt durch ein Tabulatorzeichen) im Verzeichnis in dem sich auch das DirData befindet zu erstellen, was mit nachfolgendem Befehl durchgeführt werden kann:

# touch /srv/awstats/urlalias.txt

Anschliessen müssen noch die Datei- und Besitzrechte wie folgt mit nachfolgenden Befehlen auf die des Benutzer des Apache HTTPD Webserver abgeändert werden und diesem Benutzer auch die entsprechenden Rechte gegeben werden:

Besitzrechte:

# chmod -R 644 /srv/awstats/urlalias.txt

und Dateirechte:

# chown -R http:http /srv/awstats/urlalias.txt

Beispiel:

awstats.tachtler.net    Eigene AWStats Aufrufe

Anschliessend kann auch dieses Plugin in der jeweiligen Konfigurationsdatei der Web-Seite aktiviert werden, wie nachfolgend dargestellt:

  • # Tachtler
    # default: #LoadPlugin="urlalias"
    LoadPlugin="urlalias"

Plugin: graphgooglechartapi

Ersetzt die Standarddiagramme durch kostenlose, von der Google API generierte Bilder in HTML-Berichten.

Wenn Länderdaten verfügbar sind und mehr als ein Land Treffer hat, wird eine Karte mit Google Visualizations generiert.

:!: Hinweis - Der Rechner, auf dem die Berichte angezeigt werden, muss einen Internetzugang haben, damit die Diagramme generiert werden können. Die einzigen Daten, die an Google gesendet werden, sind die statistischen Zahlen, Legenden und Ländernamen.

:!: ACHTUNG - Dieses Plugin ist nicht kompatibel mit der Option BuildReportFormat=xhtml

Anschliessend kann auch dieses Plugin in der jeweiligen Konfigurationsdatei der Web-Seite aktiviert werden, wie nachfolgend dargestellt:

  • # Tachtler
    # default: #LoadPlugin="graphgooglechartapi"
    LoadPlugin="graphgooglechartapi"

Plugins: GEO-IP (mehrere)

Um in AWStats GEO-Lokations-Informationen verwenden zu können, ist es erforderlich die nachfolgenden Pakete zu installieren:

  • geoip-database - ist im extra-Repository von ArchLinux enthalten.
  • geoip-database-extra - ist im extra-Repository von ArchLinux enthalten.

geoip-database

Mit nachfolgendem Befehl, wird das Pakete geoip-database installiert:

# pacman --noconfirm -S geoip-database

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket geoip-database installiert wurden:

# pacman -Qil geoip-database

Installierte Dateien

geoip-database-extra

Mit nachfolgendem Befehl, wird das Pakete geoip-database-extra installiert:

# pacman --noconfirm -S geoip-database-extra

Installationsverlauf

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket geoip-database-extra installiert wurden:

# pacman -Qil geoip-database-extra

Installierte Dateien

Anschliessend können auch die nachfolgenden Plugins in der jeweiligen Konfigurationsdatei der Web-Seite aktiviert werden, wie nachfolgend dargestellt:

  • # Tachtler
    # default: #LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat"
    LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
    # Tachtler
    # default: #LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /pathto/GeoIPCity.dat"
    LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/share/GeoIP/GeoIPCity.dat"
    # Tachtler
    # default: #LoadPlugin="geoip_asn_maxmind GEOIP_STANDARD /usr/local/geoip.dat+http://enc.com.au/itools/autnum.php?   asn="
    LoadPlugin="geoip_asn_maxmind GEOIP_STANDARD /usr/share/GeoIP/GeoIPASNum.dat"

:!: HINWEIS - Es kann jeweils nur das IPv4 oder das IPv6 Plugin genutzt werden!!!

Logrotate: Apache Webserver

Folgende Problemstellung: Zu einem bestimmten Zeitpunkt in einem festgelegten Intervall werden die Log-Dateien des Apache HTTPD Webserver rotiert. Da hier evtl. Daten rotiert werden die noch nicht von AWStats ausgewertet wurden, muss dies verhindert werden.

Die einfachste Möglichkeit besteht darin, vor dem sog. logrotate AWStats anzuweisen, eine Aktualisierung der Auswertungen und Statistiken der Log-Dateien des Apache HTTPD Webserver durchzuführen.

Dazu muss die Konfigurationsdatei /etc/logrotate.d/httpd des logrotate-Daemons entsprechend wie folgt beschrieben angepasst werden:

   prerotate
      /usr/share/awstats/tools/awstats_updateall.pl now -configdir=/etc/awstats -awstatsprog=/usr/share/webapps/awstats/cgi-bin/awstats.pl 2>/dev/null
   endscript

Hier die komplette Konfigurationsdatei /etc/logrotate.d/httpd:

/var/log/httpd/*log {
   missingok
   sharedscripts
   prerotate
      /usr/share/awstats/tools/awstats_updateall.pl now -configdir=/etc/awstats -awstatsprog=/usr/share/webapps/awstats/cgi-bin/awstats.pl 2>/dev/null
   endscript
   postrotate
      /usr/bin/systemctl reload httpd.service 2>/dev/null || true
   endscript
}

AWStats-LOG-Update: systemd-Timer-Service

Die nachfolgende systemd-Timer-Service-Datei zur Zeitgesteuerten Ausführung, ist mit nachfolgendem Namen

  • /etc/systemd/system/awstats-timer.service

zu erstellen:

# vim /etc/systemd/system/awstats-timer.service

/etc/systemd/system/awstats-timer.service (Komplette Konfigurationsdatei)

[Unit]
Description=Run update for AWStats with all site configurations located in /etc/awstats/ service
 
[Service]
Type=oneshot
ExecStart=/usr/share/awstats/tools/awstats_updateall.pl now -configdir=/etc/awstats -awstatsprog=/usr/share/webapps/awstats/cgi-bin/awstats.pl
WorkingDirectory=/var/lib/awstats

AWStats-LOG-Update: systemd-Timer

Die nachfolgende systemd-Timer-Datei zur Zeitgesteuerten Ausführung, jeweils ein mal in der Stunde, ist mit nachfolgendem Namen

  • /etc/systemd/system/awstats-timer.timer

zu erstellen:

# vim /etc/systemd/system/awstats-timer.timer

/etc/systemd/system/awstats-timer.timer (Komplette Konfigurationsdatei)

[Unit]
Description=Run the awstats-timer service every hour to update AWStats
 
[Timer]
OnCalendar=hourly
Persistent=true
 
[Install]
WantedBy=timers.target

Um den systemd-Timer-job zu aktivieren, ist nachfolgender Befehl erforderlich:

# systemctl enable --now awstats-timer.timer
Created symlink /etc/systemd/system/timers.target.wants/awstats-timer.timer → /etc/systemd/system/awstats-timer.timer.

Falls eine Änderung an einer systemd-Timer-job-Konfigurationsdatei durchgeführt wurde, kann diese mit nachfolgenden Befehlen übernommen werden:

# systemctl daemon-reload
 
# systemctl reenable awstats-timer.timer
Removed "/etc/systemd/system/timers.target.wants/awstats-timer.timer".
Created symlink /etc/systemd/system/timers.target.wants/awstats-timer.timer → /etc/systemd/system/awstats-timer.timer.

Eine Auflistung aller systemd-Timer-jobs, kann mit nachfolgendem Befehl erreicht werden:

# systemctl list-timers --all
NEXT                            LEFT LAST                              PASSED UNIT                             ACTIV>
Tue 2024-03-12 11:00:00 CET    35min -                                      - awstats-timer.timer              awsta>
Tue 2024-03-12 11:00:00 CET    35min Tue 2024-03-12 10:00:06 CET    23min ago snapper-timeline.timer           snapp>
Tue 2024-03-12 12:50:55 CET 2h 26min Tue 2024-03-05 08:41:47 CET            - man-db.timer                     man-d>
Wed 2024-03-13 00:00:00 CET      13h Tue 2024-03-12 09:17:27 CET  2h 6min ago logrotate.timer                  logro>
Wed 2024-03-13 00:00:00 CET      13h Tue 2024-03-12 09:17:27 CET  2h 6min ago shadow.timer                     shado>
Wed 2024-03-13 08:27:26 CET      22h Tue 2024-03-12 08:27:26 CET 1h 56min ago snapper-cleanup.timer            snapp>
Wed 2024-03-13 08:32:26 CET      22h Tue 2024-03-12 08:32:26 CET 1h 51min ago systemd-tmpfiles-clean.timer     syste>
Fri 2024-03-15 18:54:55 CET   3 days Thu 2024-01-04 16:49:04 CET            - archlinux-keyring-wkd-sync.timer archl>
Mon 2024-03-18 00:00:00 CET   5 days Tue 2024-03-12 09:17:27 CET  2h 6min ago paccache.timer                   pacca>

9 timers listed.

Eine Auflistung eines bestimmten systemd-Timer-jobs, kann mit nachfolgendem Befehl durchgeführt werden:

# systemctl list-timers awstats-timer.timer
NEXT                         LEFT LAST PASSED UNIT                ACTIVATES            
Tue 2024-03-12 11:00:00 CET 35min -         - awstats-timer.timer awstats-timer.service

1 timers listed.
Pass --all to see loaded but inactive timers, too.

Der aktuelle Status des systemd-Timer-jobs, kann wie bei jeder anderen systemd-Unit auch, wie folgt abgefragt werden:

# systemctl status awstats-timer.timer
● awstats-timer.timer - Run the awstats-timer service every hour to update AWStats.
     Loaded: loaded (/etc/systemd/system/awstats-timer.timer; enabled; preset: disabled)
     Active: active (waiting) since Tue 2024-03-12 10:23:31 CET; 1min 0s ago
    Trigger: Tue 2024-03-12 11:00:00 CET; 35min left
   Triggers: ● awstats-timer.service

Mar 12 10:23:31 vml090 systemd[1]: Started Run the awstats-timer service every hour to update AWStats.

Auch die entsprechenden systemd-Journal-Einträge des systemd-Timer-jobs, kann wie bei jeder anderen systemd-Unit auch, wie folgt abgefragt werden:

# journalctl -u awstats-timer.timer
Mar 12 10:23:31 vml090 systemd[1]: Started Run the awstats-timer service every hour to update AWStats.

Erster Aufruf

Nach erfolgreicher Konfiguration steht dem ersten Aufruf nichts mehr im Wege. Der Aufruf erfolgt über folgende URL:

:!: WICHTIG ist, der Teil nach ?config=, dieser Teil ergibt sich aus dem Namen, welcher der Konfigurationsdatei im Verzeichnis /etc/awstats gegeben wurde, also hier in diesem Beispiel:

awstats.awstats.tachtler.net.conf

:!: WICHTIG, falls noch keine Auswertung der Log-Datei (hier /var/log/httpd/awstats.tachtler.net_access.log) des Apache HTTPD Server durchgeführt wurde, können auch noch keine Daten angezeigt werden!

Exkursion: Tagesstatistiken

:!: WICHTIG - Voraussetzung für eine tagesbezogene Auswertung, ist nachfolgende Angabe für AWStats (nur relevanter Ausschnitt) z.B. als systemd-Timer:

/usr/share/webapps/awstats/cgi-bin/awstats.pl -update -databasebreak=day -config=awstats.tachtler.net 2>/dev/null

Der Aufruf über die URL im Browser, muss zusätzlich mit nachfolgenden Parametern ergänzt werden, um anstelle von Monatsstatistiken - Tagesstatistiken zu erhalten:

Die Parameter müssen in der URL, wie folgt angegeben werden:

  • &databasebreak=day - Auswertung auf einen Tag beschränken
  • &day=nn - Tag
  • &month=nn - Monat
  • &year=nnnn - Jahr
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/awstats_archlinux.txt · Zuletzt geändert: 2024/04/02 00:34 von klaus