HOWTO: Awstats + Confixx

Bash, Shell, PHP, Python, Perl, CGI
gabberbert
Posts: 49
Joined: 2004-04-14 13:59
 

Re: HOWTO: Awstats + Confixx

Post by gabberbert »

danke für die antworten.
ich hab jetzt die acces_log geleert. updatescript durchlaufen lassen. danach nocheinmakl probiert. selber fehler.

Code: Select all

LogFormat "%V:#:%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i" %V" confixx
LogFormat "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i" %V" confixx2 
hab ich in der httpd.conf eingefügt.
allerdings steht ja im apache2 keine logangaben mehr drin.

in confixx_mhost.conf steht:

Code: Select all

CustomLog /var/log/apache2/confixx/h5252.serverkompetenz.net_access.log "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i""
        ErrorLog /var/log/apache2/confixx/h5252.serverkompetenz.net_error.log
Wie binde ich nun die 2 Zeilen LogFormat aus dem tut richtig in den apache2 ein? Und welche Logdatei muss ich dann auswerten lassen?
Anonymous
 

Re: HOWTO: Awstats + Confixx

Post by Anonymous »

Ich hab awstats das letzte mal vor ca. 1,5 Jahren getestet. Es war damals auch schon nen richtig nettes Ding. Aber halt nur für den Heimgebrauch auf einem Server der per DynDNS zu erreichen ist. Problem ist, wenn mehr Zugriffe auf die Seite kommen, dann hängt sich das Ding regelrecht weg.

CGI/Perl ist da wohl etwas langsam, um die vielen vielen Zeilen in der access_log zu verarbeiten. Mit anderen Worten, doch eigentlich nur etwas für "kleine" Seiten, oder?!
antondollmaier
Posts: 485
Joined: 2004-03-30 10:06
 

Re: HOWTO: Awstats + Confixx

Post by antondollmaier »

hmm ...

das zentrale skript, das die logs auswertet, läuft bei mir am server alle 6h durch ...

ich weiß jetzt nicht, was ihr als "schnell" versteht bzw wie meine werte so zu werten sind, aber es gibt keinerlei probleme ...

beim aufruf zur anzeige der statistiken wird ja nix ausgewertet, sondern nur die vorher analysierten daten aufbereitet und angezeigt ...

es gibt aber für jede config-datei einen eigenen cache, dh, die daten werden ziemlich schnell geladen, und da auch nur diejenigen, die benötigt werden (also keine fremddaten) ...


wie gesagt, bin sehr zufrieden damit, wenn der 6h-cron zu lange braucht, fahr ich den halt auf stündlich runter ... dann reduziert sich die anzahl der zeilen pro cron ...


mfg,
Anton
antondollmaier
Posts: 485
Joined: 2004-03-30 10:06
 

Re: HOWTO: Awstats + Confixx

Post by antondollmaier »

so, nachdem ich gesagt bekommen habe, dass php-skripte nicht gerade toll sind für server-aufgaben, hier die perl-version ...


is mein erstes perl-skript, wenn fehler drinnen sind oder man etwas besser / schneller machen könnte, bitte sagen bzw ausbessern ... :-D

im grunde habe ich nur die php-datei auf perl umgestellt, befehle angepasst etc ...

Code: Select all

#!/usr/bin/perl

#########################################################################
#                                                                       #
#               AWStats Configuration - Maker for Confixx               #
#               Copyright 2003 by Michael Mangold                       #
#               Contact: info@michael-mangold.net                       #
#                                                                       #
#               Modifizierungen (c) 2004 by Anton Dollmaier             #
#               Contact: info@aditsystems.de                            #
#                                                                       #
#########################################################################

$conf_path = '/etc/awstats';   # Pfad in dem die AWStats Konfigurationen liegen
$user_path = '/srv/www/htdocs/';        # Pfad in dem Confixx die webs anlegt
$pwfile = "/srv/www/htdocs/web1/html/statistiken/.htpasswd"; # Passwort-Datei für die .htaccess-Abfrage

&loadConfFile;
use DBI;
$dbh = DBI->connect($db_address, $dbUser, $dbPw)
  or die( &ltext('db_connect', '#2001', "$DBI::errstr") );

$cmd = 'rm '.$conf_path.'/awstats.*';

system($cmd);

$sql = "SELECT kunde, anbieter
        FROM kunden
        WHERE kunde != 'web0'
        ORDER BY kunde ASC";

my $sth = $dbh->prepare($sql);
$sth->execute;
while( @data = $sth->fetchrow_array )
{
        $domains = '';
        $kunde = $data[1];
        $anbieter = $data[2];
        $logfile = $user_path.$kunde."/log/access_log";

        $sql = "SELECT domain FROM domains WHERE kunde = '".$kunde."' AND richtigedomain='1' ORDER BY domain ASC";
        my $res1 = $dbh->prepare($sql);
        $res1->execute;
        while ( @row = $res1->fetchrow_array )
        {
                my $subdomains = $row[0];
                $subdomains =~ s/./\./g;
                $domains .= "REGEX[^.*".$subdomains."$] ";
        }
        $res1->finish();
        $domain = $data[0];

        $config = "LogFile="$logfile"nSiteDomain="$domain"nHostAliases="$domains $kunde.confixx.aditsystems.de"nAllowAccessFromWebToFollowingAuthenticatedUsers="$kunde Administrator $anbieter"nInclude "/etc/awstats/muster.conf"nn";

        system ("echo '$config' > $conf_path/awstats.$kunde.conf");

}
$sth->finish();

system('cp /root/muster.conf '.$conf_path);

#
# Generate Password-File for Statistics
#

# First, lets get Admin- and Reseller-Data

$sql = "SELECT anbieter,longpw FROM anbieter";

my $res = $dbh->prepare($sql);
$res->execute;

while ( @data = $res->fetchrow_array )
{
        $users .= $data[0].":".$data[1]."n";
}
$res->finish();

my $sql = "SELECT longpw FROM admin WHERE login='Administrator'";

my $sth = $dbh->prepare($sql);
$sth->execute;

while (@data = $sth->fetchrow_array)
{
        $users .= "Administrator:".$data[0]."n";
}

$sth->finish();

my $sql = "SELECT kunde, statistiklongpw
        FROM kunden
        WHERE statistik='1' AND kunde!='web0';";

my $sth = $dbh->prepare($sql);
$sth->execute;

while( @data = $sth->fetchrow_array )
{
        $users .= $data[0].":".$data[1]."n";
}
system('rm '.$pwfile);
system ("echo '".$users."' > ".$pwfile);

$sth->finish();
$dbh->disconnect;

sub loadConfFile{
  my ($file, $base);
  if(-T "/root/confixx/confixx_main.conf"){
    $file = "/root/confixx/confixx_main.conf";
  }
  else{
   $0 = $^X unless ($^X =~ m%(^|[/\])(perl)|(perl.exe)$%i);
   ($base) = $0 =~ m%^(.*)[/\]%;
   $base ||= ".";
   $file = "$base/confixx_main.conf";
   unless(-T $file){
     die("Couldn't find confixx_main.conf");
   }
 }
 do $file;
}
die funktion loadConfFile wurde aus dem Perl-Skript mailtrafficpop3.pl von Confixx entwendet, daher ist hier auch keine MySQL-Benutzerangabe nötig. Diese Angaben werden aus der confixx_main.conf ausgelesen.


mfg,
Anton
Anonymous
 

Re: HOWTO: Awstats + Confixx

Post by Anonymous »

lhallo

wenn ich es mir auf mein server laden will
kommt folgenede fehler meldung:

[/quote]error 404 : not found

gibt es keine anderen link wie ich es über putty auf den server bringen kann

mfg
linuxanfaenger
antondollmaier
Posts: 485
Joined: 2004-03-30 10:06
 

Re: HOWTO: Awstats + Confixx

Post by antondollmaier »

http://awstats.sourceforge.net

da suchen und fündig werden ...
resh
Posts: 17
Joined: 2004-10-21 15:49
Location: Wismar
Contact:
 

Re: HOWTO: Awstats + Confixx

Post by resh »

erstmal n fettes THX an [MONK] ...

ich habe meinen server (strato root) erst 4 wochen oder so aber dieser wabalizer kotzt mich an ... der is mir unsympatisch ... also wenn ich awstats drauf hab kann ich dann den webalizer löschen ??? wenn ja wie ... und ich möchte es gerne so haben dass wenn ich einen neuen kunden hinzufüge dass er dann auch gleich die awstats hat ...

wäre über hilfe sehr dankbar ...

mfg reSh
antondollmaier
Posts: 485
Joined: 2004-03-30 10:06
 

Re: HOWTO: Awstats + Confixx

Post by antondollmaier »

Siehe meine Ergänzung.

Diese erstellt die Konfig-Dateien für jeden User, der Statistiken als Feature aktiviert hat, unabhängig, ob Webalizer installiert ist, oder nicht.

Auf was der Kunde letztendlich Zugriff erhält, legst du im Endkunden-Interface über den entsprechenden Link fest ...

Bei mir haben die Kunden im Confixx Zugriff auf beides, über eine externe Subdomain aber speziell auf AWStats.
resh
Posts: 17
Joined: 2004-10-21 15:49
Location: Wismar
Contact:
 

Re: HOWTO: Awstats + Confixx

Post by resh »

thx für die schnelle antwort ... ich werde mich dann mal an die arbeit machen ... aaber ich werde hier 100%ig nochmal 1-6 fragen haben ...
:-D
mfg reSh
timoberlin
Posts: 5
Joined: 2004-07-23 09:43
Location: Berlin
 

Scripterweiterung von antondollmaier macht bei mir Fehler?!?

Post by timoberlin »

Moin,

auch erstmal vielen dank an monk und antondollmaier :)

Ich brauche auch den Passwortschutz und habe mich einfach mal der Vorgabe von antondollmaier bedient. Natürlich habe ich serverbedingte Pfade etc. angepasst.

Beim Ausführen von "/usr/bin/php /root/create_awstatsconf.php" kommt es leider ständig zur folgenden Fehlermeldung, mit der ich leider nix anfangen kann (der Code sieht meiner Meinung nach richtig aus):

---
Ausgabe des Befehls /usr/bin/php /root/create_awstatsconf.php ..

rm: too few arguments
Try `rm --help' for more information.
sh: -c: line 27: syntax error near unexpected token `newline'
sh: -c: line 27: `' > '
Content-type: text/html
X-Powered-By: PHP/4.3.9
---

Hat jemand einen Rat?


Gruß von Timo
antondollmaier
Posts: 485
Joined: 2004-03-30 10:06
 

Re: Scripterweiterung von antondollmaier macht bei mir Fehle

Post by antondollmaier »

timoberlin wrote:rm: too few arguments
Try `rm --help' for more information.
sh: -c: line 27: syntax error near unexpected token `newline'
sh: -c: line 27: `' > '
Content-type: text/html
X-Powered-By: PHP/4.3.9
das schaut danach aus, dass du irgend nen $cmd verbockt hast ...


such nach jeder zeile mit system, und lass dir den inhalt davon ausgeben ...

z.B. am Anfang:

Code: Select all

$cmd = "rm ".$configpath."/*";
echo $cmd."n";
system($cmd);
so in der art dann stück für stück durchgehen ...
timoberlin
Posts: 5
Joined: 2004-07-23 09:43
Location: Berlin
 

Danke!

Post by timoberlin »

Moin,

danke für deine Antwort, hätte fast gar nicht damit gerechnet ;-)

Jetzt bekomme ich folgenden Hinweis und ehrlich gesagt verstehe ich nicht warum:

Die Echo-Ausgabe ergibt: rm -R /etc/awstats/* | wie ich finde, eigentlich ok!
rm: too few arguments
Try `rm --help' for more information.
sh: -c: line 27: syntax error near unexpected token `newline'
sh: -c: line 27: `' > '

Hier mal der komplette Code:

--
#!/usr/bin/php
<?php
#########################################################################
# #
# AWStats Configuration - Maker for Confixx #
# Copyright 2003 by Michael Mangold #
# Contact: info@michael-mangold.net #
# #
# Modifizierungen (c) 2004 by Anton Dollmaier #
# Contact: info@aditsystems.de #
# #
#########################################################################

$conf_path = '/etc/awstats/'; // Pfad in dem die AWStats Konfigurationen liegen
$user_path = '/srv/www/htdocs/'; // Pfad in dem Confixx die webs anlegt
$mysql_server = 'localhost';
$mysql_user = 'username';
$mysql_pwd = 'passwort';
$mysql_db = 'datenbank-name'; // Confixx Datenbank


$cmd = "rm -R ".$conf_path."*";
echo $cmd."n";
system($cmd);

mysql_connect($mysql_server,$mysql_user,$mysql_pwd);
mysql_select_db($mysql_db);

$sql = "SELECT kunde, anbieter
FROM kunden
ORDER BY kunde ASC";

$result = mysql_query($sql) or die(mysql_error());

while( $data = mysql_fetch_array($result) )
{
$kunde = $data['kunde'];
$logfile = "/srv/www/htdocs/$data[kunde]/log/access_log";

$domains = "";

$sql = "SELECT domain FROM domains WHERE kunde = '".$kunde."' AND richtigedomain='1'";
$res = mysql_query($sql);
while ( $row = mysql_fetch_array($res) )
{
$domains .= "REGEX[^.*".str_replace(".","\.",$row['domain'])."$] ";
$domain = $row['domain'];
}


$config = "
LogFile="$logfile"
SiteDomain="$domain.$tld"
HostAliases="REGEX[^.*\.$domain\.$tld$]"
Include "/etc/awstats/muster.conf"
";

system ("echo '$config' > $conf_path/awstats.$kunde.conf");

}

system('cp /root/muster.conf /etc/awstats/');

#
# Generate Password-File for Statistics
#

# First, lets get Admin- and Reseller-Data

$sql = "SELECT * FROM anbieter";
$result = mysql_query($sql);
while ( $data = mysql_fetch_array($result) )
{
$users .= $data['anbieter'].":".$data['longpw']."
";
}

$sql = "SELECT * FROM admin";
$result = mysql_query($sql);
$data = mysql_fetch_array($result);
$users .= "Administrator:".$data['longpw']."
";

$sql = "SELECT *
FROM kunden";

$result = mysql_query($sql) or die(mysql_error());
while( $data = mysql_fetch_array($result) )
{
$users .= $data['kunde'].":".$data['statistiklongpw']."
";
}

system('rm '.$pwfile);
system ("echo '".$users."' > ".$pwfile);
?>
--

Vielleicht magst du noch mal schauen?!? Danke dir schon mal im voraus!


Timo
madmac
Posts: 8
Joined: 2004-11-14 12:23
Location: Singapore
 

Re: HOWTO: Awstats + Confixx

Post by madmac »

Danke fuer das HowTo. Funktioniert soweit auf' nem Alturo Server unter SuSE 9.1 und Confixx mit 3 Benutzern und etlichen Domains sehr schoen.

Wuerde nun gern noch eine vernuenftige Updatemoeglichkeit beim woechentlichen Log rotate einbauen, ohne Daten zu verlieren. Im Moment habe ich einen Cron-Job (/etc/cron.d/awstats) alle 3h eingestellt 1:50, 4:50 usw., da das Logfile jeweils 2:00 rotiert.

Anhand der Anleitung im FAQ geh ich davon aus, dass httptraffik.sh das Script rotate.pl triggert, welches dann wiederum fuer alle Benutzer das Logfile rotiert. Ich moechte aber nicht die httptraffik.sh nach FAQ veraendern, um auch weiterhin Webalizer parallel laufen lassen zu koennen.

Wenn ich soweit richtig liege, wuerde es ausreichen, das entsprechende cron-Script (mit create_awstatsconf.php und awstats_updateall.pl) jeweils vor Aufruf von rotate.pl in die httptraffik.sh einzubinden? Also vor die Zeile: "$ROTATESCRIPT $USER access"? Eh ich irgendwas vermassel, koennte jemand evtl. meine Gedankengaenge bestaetigen :wink:?

Noch eine Zusatzfrage: Laeuft das httptraffik.sh Script entsprechend Einstellung "Web-Traffic messen" unter Update-Intervalle nur 1x pro Nacht, oder wird es noch von einer anderen Funktion getriggert?

Gruss,
Mac
madmac
Posts: 8
Joined: 2004-11-14 12:23
Location: Singapore
 

Re: HOWTO: Awstats + Confixx

Post by madmac »

Ergaenzung:

Das Script awstats.sh, welches zum Updaten aufgerufen wird enthaelt:
/usr/share/awstats/awstats.sh

Code: Select all

#!/bin/sh
/usr/bin/php /root/create_awstatsconf.php
/usr/share/awstats/tools/awstats_updateall.pl now -awstatsprog=/home/htdocs/web1/html/cgi-bin/awstats/awstats.pl
Meine geaenderte httpdtraffik.sh enthaelt (2 Zeilen eingefuegt mit AWSTATS):

Code: Select all

#!/bin/sh
##
### Script zur Steuerung der HTTPD-Traffik-Ermittlung
########## created: Sun Sep 26 22:13:28 2004 ###
FIND="/usr/bin/find"
RM="/bin/rm"
GREP="/bin/grep"
PREFIX="web";
HOMEDIR="/home/htdocs"
BACKUPDIR="/var/log/apache2/old"
LOGEXPIRE="90"
PIDFILE="/root/confixx/run/confixx_httpdtraffik.pid" # PID-File
SCRIPT="/root/confixx/httpdtraffik.pl" # Das Script, das den Traffik ermittelt anhand des ConfigFiles (und natürlich Logfile;-)
ROTATESCRIPT="/root/confixx/rotate.pl" # Das Script, das die Logfiles packt...
CONF=".configs/webalizer.conf"
WEBALIZER="/usr/bin/webalizer"
AWSTATS="/usr/share/awstats/awstats.sh"
########################
if test "$1" =  "DEBUG"  ; then
  DEBUG=1;
 else
  DEBUG=0;
fi

echo $$ > $PIDFILE;
      for HOME in $HOMEDIR/* ; do
        USER=${HOME##$HOMEDIR/}
        if ( echo -E "X$USER" | $GREP "^X$PREFIX[0-9]+$" >/dev/null )  ; then
          if test "$DEBUG" = "1"; then
            echo "$USER"
          fi
          if ((test "$USER" != "*") && (test -e "$HOME/log/access_log") && (test "1$USER" != "1")); then
            if test "$DEBUG" = "1"; then
              echo "$SCRIPT $USER"
            fi
            $SCRIPT $USER
            if ((test -e $HOMEDIR/$USER/$CONF) && (test -G $HOMEDIR/$USER/$CONF) && (test -O $HOMEDIR/$USER/$CONF) && (test -x $WEBALIZER)) ; then
              if test "$DEBUG" = "1"; then
                echo "$WEBALIZER -c $HOMEDIR/$USER/$CONF"
              fi
              $WEBALIZER -c $HOMEDIR/$USER/$CONF
            fi
            if test "$DEBUG" = "1"; then
              echo "$ROTATESCRIPT $USER access"
            fi
           $AWSTATS
           $ROTATESCRIPT $USER access
            if(test -d $BACKUPDIR/$USER) ; then
              if test "$DEBUG" = "1"; then
              echo "$FIND $BACKUPDIR/$USER/ -atime +$LOGEXPIRE -type f -exec rm -f {} ;"
              fi
              $FIND $BACKUPDIR/$USER/ -atime +$LOGEXPIRE -type f -exec rm -f {} ;
            fi
            if(test -d $HOMEDIR/$USER/log/old) ; then
              if test "$DEBUG" = "1"; then
                echo "$FIND $HOMEDIR/$USER/log/old/ -atime +$LOGEXPIRE -type f -exec rm -f {} ;"
              fi
              $FIND $HOMEDIR/$USER/log/old/ -atime +$LOGEXPIRE -type f -exec rm -f {} ;
            fi
          fi
        fi
      done
rm $PIDFILE; # Bin fertig, also PID-File löschen...
Das Script wird ausserdem alle 3h durch einen separaten cronjob aufgerufen. Unter /etc/cron.d will es irgendwie nicht und ich hab keinen Bock mich grossartig mit Confixx auseinanderzusetzen. Jetzt muss es nur noch alles zusammen funktionieren.

Gruss,
Mac
pelowi
Posts: 46
Joined: 2004-03-11 21:16
 

Re: HOWTO: Awstats + Confixx

Post by pelowi »

hallo zusammen,

bekomme folgende Fehlermeldung, wenn ich den Cronjob ber webmin ausführe:

Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats.
Setup ('/etc/awstats/awstats.domain.de.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).

Was kann das bedeuten???

Gruß

Pelowi
pelowi
Posts: 46
Joined: 2004-03-11 21:16
 

Re: HOWTO: Awstats + Confixx

Post by pelowi »

habs nun doch noch irgendwie hingekriegt. Bekomme die Statistik aber nict aufgerufen. Drehe langsam durch, kann doch eigentlich nicht so schwer sein....


Vielleicht kann mir ja jemand helfen, ansonsten setze ich den Server erneut zurück, sodass man wieder ein "reines" System hat.....


Gute Nacht
pelowi
Posts: 46
Joined: 2004-03-11 21:16
 

Re: HOWTO: Awstats + Confixx

Post by pelowi »

bei mir funzt das irgendwie nicht so wirklich, habe immer das problem, das alle zugriffe auf den Server bei allen user angezeigt werden, also bei web1 auch die zugriffe auf die seiten von web2 und umgekehrt.

Hat dieses irgendwas mit HostAliases oder mit sitedomain in der muster.conf zu tun???

Was muss ich in der muster.conf denn eintragen, damit alle user/domains getrennt ausgewiesen werden
pelowi
Posts: 46
Joined: 2004-03-11 21:16
 

Re: HOWTO: Awstats + Confixx

Post by pelowi »

keiner ne Idee????
antondollmaier
Posts: 485
Joined: 2004-03-30 10:06
 

Re: HOWTO: Awstats + Confixx

Post by antondollmaier »

kopier mal ne unveränderte Zeile ausm Log ( möglichst n 200er ) hier rein ... tippe auf falsches logformat ...
pelowi
Posts: 46
Joined: 2004-03-11 21:16
 

Auszug aus den Logdateien

Post by pelowi »

Hoffe das hilft irgendwie:

hier ein auszug aus der var/log/apache2/access_log
195.92.95.61 - - [07/Jul/2005:04:30:21 +0200] "HEAD / HTTP/1.1" 200 - "http://www.netcraft.com/survey/" "Mozilla/4.0 (compatible; Netcraft Web Server Survey)"
195.92.95.61 - - [07/Jul/2005:04:30:21 +0200] "HEAD / HTTP/1.1" 200 - "http://www.netcraft.com/survey/" "Mozilla/4.0 (compatible; Netcraft Web Server Survey)"
84.129.204.32 - - [07/Jul/2005:10:40:54 +0200] "GET / HTTP/1.1" 200 2010 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
84.129.204.32 - - [07/Jul/2005:10:40:54 +0200] "GET /index.swf HTTP/1.1" 200 322186 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
hier ein Auszug aus srv/www/htdocs/web1/log/access_log
84.151.205.110 - - [06/Jul/2005:16:26:02 +0200] "GET /cam.jpg?1120659753413 HTTP/1.1" 200 21387 "http://www.XXX.de/webcam.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" http://www.XXX.de
84.151.205.110 - - [06/Jul/2005:16:26:12 +0200] "GET /cam.jpg?1120659763418 HTTP/1.1" 200 23196 "http://www.XXX.de/webcam.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" http://www.XXX.de
Ist das Logformat nicht korrekt??? Wenn ja, dann wo kann ich es denn ändern, steig bei den ganzen includeanweisungen von confixx nicht mehr durch.
antondollmaier
Posts: 485
Joined: 2004-03-30 10:06
 

Re: HOWTO: Awstats + Confixx

Post by antondollmaier »

hmm, LogFormat scheint korrekt ...

was steht in deiner awstats.domain.de.conf?
pelowi
Posts: 46
Joined: 2004-03-11 21:16
 

Re: HOWTO: Awstats + Confixx

Post by pelowi »

Bei mir heissen Sie zb. awstats.web0.conf
LogFile="/srv/www/htdocs/web0/log/access_log"
SiteDomain="XXX.de"
HostAliases="REGEX[^.*XXX.de$] web0.confixx.XXX.de"
AllowAccessFromWebToFollowingAuthenticatedUsers="web0 Administrator res0"
Include "/etc/awstats/muster.conf"
bin heute abend ab 18 Uhr wieder online

Vielen Dank schon mal für die hilfe
acronis
Posts: 49
Joined: 2005-06-17 06:41
 

Re: HOWTO: Awstats + Confixx

Post by acronis »

Hi ich habe auch ein Problem!

erstmal großes Lob.. wirklich gutes Howto...
Bei mir werden in /etc/awstats nur

Code: Select all

awstats.res0.conf  awstats.res1.conf  muster.conf 
erstellt.
Es sollte normalerweiße auch

Code: Select all

awstats.web1.conf  awstats.web2.conf ...etc...
erstellen.

Paar Daten:

Das awstats.pl Script liegt in:

Code: Select all

/srv/www/localhost/confixx/html/cgi-bin/awstats/
und .htaccess mit folgendem Inhalt:

Code: Select all

AuthName "awstats"
AuthType Basic
AuthUserFile /srv/www/localhost/confixx/html/statistiken/.htpasswd
require valid-user
auch der lang, icon und plugins Ordner ist dort gespeichert.

aufgerufen werden die awstats unter:

Code: Select all

/srv/www/localhost/confixx/html/statistiken/
dort ist eine .htpasswd gespeichert und die index.html mit folgendem Inhalt:

Code: Select all

<html>
<head>
<title>AWStats-Zugriffsstatistiken</title>
</head>
<center>
<h1>Geben Sie Ihren Benutzernamen ein:</h1>
<form action="http://confixx.meinedomain.de/cgi-bin/awstats/awstats.pl" method="GET" />
<input type="text" name="config" /><br />
<br />
<input type="submit" value="Einloggen" />
</form>

Ich bin mir auch nicht ganz sicher ob mein LogFormat stimmt weil wenn ich /var/log/apche2/access_log aufrufe steht das drin:

Code: Select all

84.147.** - - [11/Jul/2005:16:59:30 +0200] "GET / HTTP/1.1" 200 2180
84.147.** - - [11/Jul/2005:16:59:30 +0200] "GET /?UserAtDomain=1 HTTP/1.1" 200 203
84.147.** - - [11/Jul/2005:17:06:31 +0200] "GET /?UserAtDomain=1 HTTP/1.1" 304 -
84.147.** - - [11/Jul/2005:17:08:05 +0200] "GET / HTTP/1.1" 200 2180
84.147.** - - [11/Jul/2005:17:08:09 +0200] "GET /?UserAtDomain=0 HTTP/1.1" 200 2180
84.147.** - - [11/Jul/2005:17:08:12 +0200] "GET /?UserAtDomain=9 HTTP/1.1" 200 2180
84.147.** - - [11/Jul/2005:17:08:16 +0200] "GET /test HTTP/1.1" 200 2180
84.147.** - - [11/Jul/2005:17:08:17 +0200] "GET /test?UserAtDomain=1 HTTP/1.1" 404 262

Wenn ich

Code: Select all

/root/scripts/create_awstatsconf.pl; /usr/bin/awstats_updateall.pl now -awstatsprog=/srv/www/localhost/confixx/html/cgi-bin/awstats/awstats.pl
ausführe kommt das:

Code: Select all

Running '"/srv/www/localhost/confixx/html/cgi-bin/awstats/awstats.pl" -update -config=res1 -configdir="/etc/awstats"' to update config res1
Update for config "/etc/awstats/awstats.res1.conf"
With data in log file "/var/log/apache2/access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Jumped lines in file: 0
Parsed lines in file: 9
 Found 0 dropped records,
 Found 9 corrupted records,
 Found 0 old records,
 Found 0 new qualified records.
scheint alles ok zu sein....

beim einloggen auf http://confixx.meinedomain.de/statistiken/ hab ich auch einlogg Probleme...

Ich hoffe ich könnt mir helfen... wäre euch echt sehr dankbar...
Anonymous
 

Re: HOWTO: Awstats + Confixx

Post by Anonymous »

MadMac wrote:Ergaenzung:

Meine geaenderte httpdtraffik.sh enthaelt (2 Zeilen eingefuegt mit AWSTATS):

Code: Select all

#!/bin/sh
##
### Script zur Steuerung der HTTPD-Traffik-Ermittlung
########## created: Sun Sep 26 22:13:28 2004 ###
FIND="/usr/bin/find"
RM="/bin/rm"
GREP="/bin/grep"
PREFIX="web";
HOMEDIR="/home/htdocs"
BACKUPDIR="/var/log/apache2/old"
LOGEXPIRE="90"
PIDFILE="/root/confixx/run/confixx_httpdtraffik.pid" # PID-File
SCRIPT="/root/confixx/httpdtraffik.pl" # Das Script, das den Traffik ermittelt anhand des ConfigFiles (und natürlich Logfile;-)
ROTATESCRIPT="/root/confixx/rotate.pl" # Das Script, das die Logfiles packt...
CONF=".configs/webalizer.conf"
WEBALIZER="/usr/bin/webalizer"
AWSTATS="/usr/share/awstats/awstats.sh"
########################
if test "$1" =  "DEBUG"  ; then
  DEBUG=1;
 else
  DEBUG=0;
fi

echo $$ > $PIDFILE;
      for HOME in $HOMEDIR/* ; do
        USER=${HOME##$HOMEDIR/}
        if ( echo -E "X$USER" | $GREP "^X$PREFIX[0-9]+$" >/dev/null )  ; then
          if test "$DEBUG" = "1"; then
            echo "$USER"
          fi
          if ((test "$USER" != "*") && (test -e "$HOME/log/access_log") && (test "1$USER" != "1")); then
            if test "$DEBUG" = "1"; then
              echo "$SCRIPT $USER"
            fi
            $SCRIPT $USER
            if ((test -e $HOMEDIR/$USER/$CONF) && (test -G $HOMEDIR/$USER/$CONF) && (test -O $HOMEDIR/$USER/$CONF) && (test -x $WEBALIZER)) ; then
              if test "$DEBUG" = "1"; then
                echo "$WEBALIZER -c $HOMEDIR/$USER/$CONF"
              fi
              $WEBALIZER -c $HOMEDIR/$USER/$CONF
            fi
            if test "$DEBUG" = "1"; then
              echo "$ROTATESCRIPT $USER access"
            fi
           $AWSTATS
           $ROTATESCRIPT $USER access
            if(test -d $BACKUPDIR/$USER) ; then
              if test "$DEBUG" = "1"; then
              echo "$FIND $BACKUPDIR/$USER/ -atime +$LOGEXPIRE -type f -exec rm -f {} ;"
              fi
              $FIND $BACKUPDIR/$USER/ -atime +$LOGEXPIRE -type f -exec rm -f {} ;
            fi
            if(test -d $HOMEDIR/$USER/log/old) ; then
              if test "$DEBUG" = "1"; then
                echo "$FIND $HOMEDIR/$USER/log/old/ -atime +$LOGEXPIRE -type f -exec rm -f {} ;"
              fi
              $FIND $HOMEDIR/$USER/log/old/ -atime +$LOGEXPIRE -type f -exec rm -f {} ;
            fi
          fi
        fi
      done
rm $PIDFILE; # Bin fertig, also PID-File löschen...
Das Script wird ausserdem alle 3h durch einen separaten cronjob aufgerufen. Unter /etc/cron.d will es irgendwie nicht und ich hab keinen Bock mich grossartig mit Confixx auseinanderzusetzen. Jetzt muss es nur noch alles zusammen funktionieren.

Gruss,
Mac
hmm, ja, aber wenn ich das skript richtig deute, werden jetzt die awstats jedes einzelnen web's nicht nur einmal generiert (würde ja reichen), sondern so oft, wie es unterschiedliche web's gibt

Code: Select all

echo $$ > $PIDFILE;
      $AWSTATS
      for HOME in $HOMEDIR/* ; do 
ist besser, denke ich
bernostern
Posts: 129
Joined: 2003-02-09 12:52
 

Re: HOWTO: Awstats + Confixx

Post by bernostern »

Hi,

hat sich erledigt....safe_mode für php4 cli-Version

Danke und schöne Grüße,
Bern
Post Reply