Hallo alle zusammen,
ich selbst benutze ISPConfig mit nginx.
Gerade habe ich in die Apache2 Config gesehen. Der CustomLog Eintrag mit dem vlogger Aufruf hat sich offenbar nicht verändert.
In punkto nginx hat Till wohl das cron_daily.php Script erweitert. Dort wird unabhängig vom Webserver das Access-Log im Userverzeichnis von gestern ausgewertet.
1. Erfasst das cron_daily.php Script nicht auch die Logs von Apache2, sodass der Traffic doppelt gezählt wird (vlogger + cron_daily.php)?
2. Für die Traffic Erfassung in nginx habe ich einen evtl. besseren Vorschlag und bitte um Rückmeldung:
Ich habe die Nginx vhosts angepasst. Das Access-Log aller vhosts wird in ein Logfile geschrieben. Dieser Umweg ist nötig, weil Nginx das Log nicht direkt an ein Script übergeben kann. Die Datei wird mit "tail -f" ausgelesen und an vlogger übergeben. Es ergibt sich eine sehr ähnliche Funktionalität wie mit Apache2. Das Log-Format kann mit Nginx nachgebildet werden.
Folgende Konfigurationen und Skripte verwende ich:
/usr/local/ispconfig/server/conf-custom/nginx_vhost.conf.master
/etc/nginx/nginx.conf
Die access_log Direktiven in den vhosts könnten damit vollständig entfallen (wie in Apache2). Keine Ahnung, warum ich die dort nochmal aufgeführt habe.
/usr/local/ispconfig/server/scripts/vlogger_nginx.sh
Aufgerufen über Cronjob:
Das funktioniert sogar fast einwandfrei. Die Traffic Informationen werden nahezu sofort übernommen. Nur das cron_daily Skript überschreibt die access logs immer mit der natürlich leeren access.log in der Nacht. Ansonsten konnte ich keine Unstimmigkeiten feststellen.
Was haltet ihr davon?
Viele Grüße,
Simon
ich selbst benutze ISPConfig mit nginx.
Gerade habe ich in die Apache2 Config gesehen. Der CustomLog Eintrag mit dem vlogger Aufruf hat sich offenbar nicht verändert.
In punkto nginx hat Till wohl das cron_daily.php Script erweitert. Dort wird unabhängig vom Webserver das Access-Log im Userverzeichnis von gestern ausgewertet.
1. Erfasst das cron_daily.php Script nicht auch die Logs von Apache2, sodass der Traffic doppelt gezählt wird (vlogger + cron_daily.php)?
2. Für die Traffic Erfassung in nginx habe ich einen evtl. besseren Vorschlag und bitte um Rückmeldung:
Ich habe die Nginx vhosts angepasst. Das Access-Log aller vhosts wird in ein Logfile geschrieben. Dieser Umweg ist nötig, weil Nginx das Log nicht direkt an ein Script übergeben kann. Die Datei wird mit "tail -f" ausgelesen und an vlogger übergeben. Es ergibt sich eine sehr ähnliche Funktionalität wie mit Apache2. Das Log-Format kann mit Nginx nachgebildet werden.
Folgende Konfigurationen und Skripte verwende ich:
/usr/local/ispconfig/server/conf-custom/nginx_vhost.conf.master
Code:
...
access_log /var/log/nginx/access.log vlogger;
...
/etc/nginx/nginx.conf
Code:
...
http {
...
log_format vlogger '$server_name $remote_addr - $remote_user [$time_local] "$request" $status $bytes_sent "$http_referer" "$http_user_agent"';
access_log /var/log/nginx/access.log vlogger;
...
}
...
/usr/local/ispconfig/server/scripts/vlogger_nginx.sh
Code:
#!/bin/bash
if [ -z "$(pidof vlogger)" ]
then
killall -q tail
tail -f /var/log/nginx/access.log | /usr/local/ispconfig/server/scripts/vlogger -s access.log -t "%Y%m%d-access.log" -d "/etc/vlogger-dbi.conf" /var/log/ispconfig/httpd &
fi
Code:
* * * * * root /usr/local/ispconfig/server/scripts/vlogger_nginx.sh >> /var/log/vlogger_nginx.log
Das funktioniert sogar fast einwandfrei. Die Traffic Informationen werden nahezu sofort übernommen. Nur das cron_daily Skript überschreibt die access logs immer mit der natürlich leeren access.log in der Nacht. Ansonsten konnte ich keine Unstimmigkeiten feststellen.
Was haltet ihr davon?
Viele Grüße,
Simon