كيف يمكنني الحصول على AWStats لقراءة تنسيق السجل هذا؟
-
30-09-2019 - |
سؤال
لدي موقع به العديد من النطاقات الفرعية ، يتم تسجيل جميع النطاقات الفرعية إلى نفس ملف Access_log. نظرًا لأن الملف يمكن أن يكون ضخمًا جدًا ، فلدي برنامج نصي يخرج كل مجال فرعي في ملفه الخاص.
لدي تنسيق ملف سجل مخصص في Apache مثل:
"\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
يشبه السطر من ملف السجل الخاص بي:
"brand.mysite.com" 176.32.1.18 - - [24/Oct/2010:11:24:45 -0400] "GET /Product/lookup HTTP/1.1" 200 5585 "http://www.customerhomepage.com/brand_name.htm" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322)"
10 عناصر في تنسيق السجل ، 10 عناصر في السجل. يفحص.
أحاول تحليلها باستخدام AWStats مع logformat التالي في ملف تكوين AWSTATS الخاص بي:
logformat = "" ٪ host_r "٪ host ٪ logName ٪ logName ٪ time1 ٪ methodurl code ٪ bytesd ٪ reponderquot ٪ uaquot"
الإخراج الوحيد الذي أحصل عليه من AWSTATS هو من قسم التاريخ الشهري. كل شيء آخر إما فارغ أو صفر.
يبدو نصي جيلي هكذا:
rm stats/*.txt
cat access_log | grep brand > brand_access_log
perl tools/awstats_updateall.pl -configdir=wwwroot/cgi-bin -awstatsprog=wwwroot/cgi-bin/awstats.pl now
perl tools/awstats_buildstaticpages.pl -dir=stats -output=pagetype -config=brand -awstatsprog=wwwroot/cgi-bin/awstats.pl
ما الخطأ الذي افعله؟
المحلول
لم أكن أدرك أنه يمكنني فقط قطع ولصق توجيه Apache Logformat (مع علامة = علامة) وسوف ينجح ، اعتقدت أنني اضطررت إلى استخدام AWStats.
ستستخدم AWStats توجيه Logformat من ملف httpd.conf واستبداله بمعرفات AWSTATS.
لقد قمت بقطع هذا الأمر في ملف AWStats.whateD. WhateR. WhateR. WhateR.WhateR. WhateR.Conf مباشرةً من Apache2 httpd.conf (ثم أضفت = علامة بعد logformat):
LogFormat="\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""