Keine Einträge in access_log

Notarzt

Registered User
Hallo Kollegen,

ich habe auf meinem vServer 4 Kunden angelegt. Jedem habe ich eine Domain zugewiesen. Jetzt wollte ich mir heute mal die Zeit nehmen, und die Logfiles analysieren.
Das sollte ja eigentlich ganz gut mit dem webalizer gehen. Nur leider waren die 4 Logfiles /var/www/webx/log/access_log alle leer!
ich habe dann mal weiter gesucht und eine mittlerweile ca. 400MB große Logdatei gefunden (/var/log/apache2/confixx/stdlog_access), die alle Zugriffe auf alle 4 Domains enthält.

Wie kann ich das denn ändern, daß die Zugriffe nicht in der einen stdlog_access, sondern für jeden Kunden einzeln in der jeweiligen access_log gespeichert werden?

Gruß an alle Update-geschädigten-vServer-Nutzer:
Kopf hoch! Das wird schon wieder! :)

Wünsche ein ruhiges Wochenende
Notarzt
 
Bei mir stehen die in
Code:
/etc/httpd/conf/confixx_vhost.conf

Schau mal, wo sich die "vHost-Container" bei Dir befinden.
Dort sollten die Einstellungen zu finden sein.

Sieht dann in etwa so aus:
Code:
<VirtualHost aa.bb.cc.dd:80>
ServerName der_vhost.de
ServerAlias  *.der_vhost.de
DocumentRoot /var/www/webx/html/publish
SuexecUserGroup webx ftponly
ScriptAlias /cgi-bin/ /var/www/webx/html/cgi-bin/
CustomLog /var/www/webx/log/access_log confixx2
php_admin_value open_basedir /var/www/webx/:/var/www/html/phpmyadmin/:/var/www/confixx/html/gesperrt/
php_admin_value upload_tmp_dir /var/www/webx/phptmp/
</VirtualHost>
 
Ich habe mir die /etc/apache2/confixx_vhost.conf mal angesehen.
Da ist ja ein absolutes Chaos! Die vier Abschnitte für die 4 Kunden sind ja komplett anders aufgebaut.
Wie kann Confixx denn so ein Chaos anrichten?
Das System ist wohl noch nicht ganz ausgereift. ;)

Hier mal meine confixx_vhost.conf (Die Domains habe ich in domain1.de bis domain4.de geändert):
Code:
#### CONFIXX APACHE VHOST FILE ####
   ### created Thu Feb 17 10:11:07 2005 ###

NameVirtualHost 62.75.152.77:80
php_admin_flag safe_mode On
php_admin_value safe_mode_exec_dir /var/www/empty

UseCanonicalName Off
LogFormat "%V:#:%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" confixx
LogFormat "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" confixx2
CustomLog |/usr/local/confixx/pipelog.pl confixx
<Directory "/var/www">
<Files ~ "^\.ht">
deny from all
</Files>
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo
Options None
Options +FollowSymLinks +SymLinksIfOwnerMatch +Includes
</Directory>


<VirtualHost 62.75.152.77:80>
ServerName 62.75.152.77
DocumentRoot /var/www/confixx/html/gesperrt
</VirtualHost>
<VirtualHost 62.75.152.77:80>
ServerName domain2.de
ServerAlias  www.domain2.de web2.vs152077.vserver.de
DocumentRoot /var/www/web2/html
SuexecUserGroup web2 ftponly
ScriptAlias /cgi-bin/ /var/www/web2/html/cgi-bin/
php_admin_value open_basedir /var/www/web2/:/var/www/phpmyadmin/:/var/www/confixx/html/gesperrt/
php_admin_value upload_tmp_dir /var/www/web2/phptmp/
php_admin_flag safe_mode Off
php_admin_value max_execution_time 3000
php_admin_value memory_limit 32M
</VirtualHost>
<VirtualHost 62.75.152.77:80>
ServerName web4.vs152077.vserver.de
ServerAlias  www.domain4.de domain4.de
DocumentRoot /var/www/web4/html
SuexecUserGroup web4 ftponly
ScriptAlias /cgi-bin/ /var/www/web4/html/cgi-bin/
php_admin_value open_basedir /var/www/web4/:/var/www/phpmyadmin/:/var/www/confixx/html/gesperrt/
php_admin_value upload_tmp_dir /var/www/web4/phptmp/
</VirtualHost>
<VirtualHost 62.75.152.77:80>
ServerName domain3.de
ServerAlias  www.domain3.de web3.vs152077.vserver.de
DocumentRoot /var/www/web3/html
SuexecUserGroup web3 ftponly
ScriptAlias /cgi-bin/ /var/www/web3/html/cgi-bin/
php_admin_value open_basedir /var/www/web3/:/var/www/phpmyadmin/:/var/www/confixx/html/gesperrt/
php_admin_value upload_tmp_dir /var/www/web3/phptmp/
php_admin_flag safe_mode Off
php_admin_value max_execution_time 3000
php_admin_value memory_limit 32M
</VirtualHost>
<VirtualHost 62.75.152.77:80>
ServerName web1.vs152077.vserver.de
ServerAlias  domain1.de www.domain1.de
DocumentRoot /var/www/web1/html
SuexecUserGroup web1 ftponly
ScriptAlias /cgi-bin/ /var/www/web1/html/cgi-bin/
php_admin_value open_basedir /var/www/web1/:/var/www/phpmyadmin/:/var/www/confixx/html/gesperrt/
php_admin_value upload_tmp_dir /var/www/web1/phptmp/
php_admin_flag safe_mode Off
php_admin_value max_execution_time 3000
php_admin_value memory_limit 32M
</VirtualHost>

Ich bin mir da keiner Schuld bewußt, so ein Chaos angerichtet zu haben. Habe eigentlich nur die Kunden über Confixx angelegt, und diesen die Domains zugewiesen. Muß man da noch manuell eingreifen?

Gruß
Notarzt
 
Würde den Passus:
CustomLog /var/www/webx/log/access_log confixx2

mal in einem vHost direkt unter ScriptAlias /cgi-bin/ /var/www/webx/html/cgi-bin/ einfügen, den apache neu starten und testen...
 
Prima! Danke Dir NuS. Ich habe die confixx_vhost.conf für alle 4 Kunden einheitlich aufgebaut und dann die Zeile CustomLog /var/www/webx/log/access_log confixx2 eingebaut:
Code:
<VirtualHost ip.ip.ip.ip:80>
ServerName xxx.de
ServerAlias  xxx.de www.xxx.de web1.xxx.vserver.de
DocumentRoot /var/www/web1/html
SuexecUserGroup web1 ftponly
ScriptAlias /cgi-bin/ /var/www/web1/html/cgi-bin/
CustomLog /var/www/web1/log/access_log confixx2
php_admin_value open_basedir /var/www/web1/:/var/www/phpmyadmin/:/var/www/confixx/html/gesperrt/
php_admin_value upload_tmp_dir /var/www/web1/phptmp/
php_admin_flag safe_mode Off
php_admin_value max_execution_time 3000
php_admin_value memory_limit 32M
</VirtualHost>
Jetzt werden die Logfiles für jeden Kunden einzeln in die jeweilige access_log geschrieben.
Beim Neustart des Apache2 ist mir die folgende Warnung aufgefallen:
NameVirtualHost ip.ip.ip.ip:80 has no virtual hosts
Ich dachte eigentlich, daß ich die eben alle eingetragen hätte. :confused:

Und noch eine Sache, die ich nicht kapiere:
Beim Kunde web3 läßt sich kein Unterverzeichnis in der Form www.kundeweb3.de/verzeichnis aufrufen. Statt die Seite zu sehen, bekomme ich Error 404. Bei den anderen Kunden geht das aber, wie erwartet.
Hat dafür jemand eine Erklärung?

Gruß und schönes Wochenende
Notarzt
 
Last edited by a moderator:
Notarzt said:
Code:
 NameVirtualHost 62.75.152.77:80 has no virtual hosts
Look at this:

huschi.
 
Danke für den Tip Huschi, aber der war leider nutzlos!
Die httpd.conf ist bei mir, bis auf ein paar Kommentare, leer!

Gruß
Notarzt
 
Jetzt habe ich eben ein paar neue Kunden angelegt, und Confixx zerschießt mir wieder meine confixx_vhost.conf total.
Alle Änderungen sind wieder weg. :confused:
Wie kann ich denn Confixx dazu bewegen, daß es mir die Datei richtig schreibt?
 
Notarzt said:
Wie kann ich denn Confixx dazu bewegen, daß es mir die Datei richtig schreibt?
Bei jedem Updateintervall nimmt Confixx sich alle Daten und schreibt die Vhost Datei neu. Das ist völlig normal.

Lösen kannst du das Problem folgendermaßen:
Du loggst dich bei Confixx als "Administrator" ein gehst dann auf "httpd-Spezial" und sagst nun:
" httpd-Zusatzeinträge für alle Anbieter ändern".
In das Editfeld trägst du das hier ein:
Code:
CustomLog /var/www/##user##/log/##domain##_access_log confixx2
Nun musst du noch anklicken "für alle Domains setzten" und einen Hacken bei "für alle Domains, die neu angelegt werden, setzen" machen.
Dann erstellt Confixx für JEDE Domain und für JEDEN Kunden in dem Verzeichniss /var/www/webX/log/www.domain.de_access_log

Damit ist das ganze sogar noch übersichtlicher weil für jede Domain ein access_log angelegt wird und nicht nur für jeden Kunden (Ein Kunde kann ja mehrere Domains haben)

Die httpd.conf ist bei mir, bis auf ein paar Kommentare, leer!
Das wird wahrscheinlich daran liegen dass du eine sehr saubere httpd.conf hast :). Die "Kommenatare" werden wahrscheinlich auf Dateien verweisen die die einzelnen Direktiven verwalten. Wir können dir wahrscheinlich genau sagen wo du die Lösung finden kannst wenn du uns am Besten die httpd.conf einmal hier postet.
 
Last edited by a moderator:
Notarzt said:
Danke für den Tip Huschi, aber der war leider nutzlos!
Das liegt wohl daran, daß Du ein Debian drauf hast. Die Kernaussage gilt dennoch: 'NameVirtualHost' kommt in Deiner Config zweimal vor.

Suche und Du wirst finden:
find /etc/apache2/. -type f -exec grep -i -l "NameVirtualHost" \{\} \;

huschi.
 
@Huschi:
Danke für den Tip. In /etc/apache2/apache2.conf war der zweite Eintrag zu finden. Nachdem ich "NameVirtualHost IP-Adresse:80" auskommentiert habe, erscheint die Warnung beim Neustart des Apache nicht mehr.
Eine Warnung kommt aber immer noch:
NameVirtualHost *:0 has no VirtualHosts
Wie kann ich die noch weg bekommen?

@djrick:
Danke für die Info. Wo speichert denn Confixx die "httpd-Spezial-Einträge", die dann in die confixx_vhost.conf geschrieben werden? Wenn ich jene Datei anpassen würde, müßte doch Confixx das in die confixx_vhost.conf schreiben, was ich dort eingetragen haben, oder?

Hier, wie angefordert, meine httpd.conf. Aber das sollte sich ja schon erledigt haben, weil auf meinem Debian-System die apache2.conf (Dank an Huschi) verantwortlich ist:
Code:
# This is here for backwards compatability reasons and to support
#  installing 3rd party modules directly via apxs2, rather than
#  through the /etc/apache2/mods-{available,enabled} mechanism.
#
#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so
Wie Du siehst, nur Kommentare! ;)

Gruß
Notarzt
 
@djrick:

Danke für den Tip!
Damit ist das ganze sogar noch übersichtlicher weil für jede Domain ein access_log angelegt wird und nicht nur für jeden Kunden (Ein Kunde kann ja mehrere Domains haben)
Das Klappt ja auch wunderbar. Jetzt habe ich für jede Domain ein eigenes Logfile. Nur leider werden diese nicht wöchentlich zusammengepackt und ins Verzeichnis old abgelegt. Was muß ich ändern, damit das wie bei der access_log automatisch passiert?

Gruß
Notarzt
 
Also ich hab da in /etc/cron.daily ein Script das heisst "sysklogd", existiert das bei dir auch?
Das packt meine Logs täglich in *.gz Archive. Ansonsten: Logrotate
 
djrick said:
Also ich hab da in /etc/cron.daily ein Script das heisst "sysklogd"
sysklogd ist lediglich (wie der name so sagt) für die logs des sysklogd-Daemon zuständig. access_log wird über logrotate rotiert.

huschi.
 
Danke Euch für die Info.
Ich werd' mich mal durchkämpfen.

Ich bin leider zur Zeit stark eingespannt. Daher kommen meine Antworten auch immer so verspätet.

Gruß
Notarzt
 
Sorry, aber ich raff's nicht so ganz! :confused:
djrick hat ja den Link zu Logrotate gepostet. Da wird ein bash script beschrieben. Logrotate existiert auf meinem System. Ist aber kein basj script, sondern ein ausführbares binäres Programm.

In meiner crontab steht folgende Zeile:
17 2 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily
Also habe ich mir mal cron.daily angesehen. In diesem verzeichnis sind drei Dateien:
logrotate, sysklogd und webalizer.
Ich bin mal davon ausgegangen, daß eine dieser drei Dateien dafür verantwortlich ist, daß die access_log der Kunden täglich rotieren.
In logrotate wird logrotate mit der folgenden zeile aufgerufen:
/usr/sbin/logrotate /etc/logrotate.conf
Also habe ich mir die logrotate.conf angesehen:
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}

/var/log/btmp {
missingok
monthly
create 0664 root utmp
rotate 1
}

# system-specific logs may be configured here
Das steht aber nichts von access_log

Kann mir mal einer auf die Sprünge helfen, wo ich was editieren muß, damit bei den Kunden nicht mehr die access_log rotiert werden, sondern die Logdateien, die den Domainnamen vor access_log stehen haben?

Gruß
Notarzt
 
Back
Top