Мой формат журнала apache-2.4:
LogFormat "%h %l %u %t \"%r\" %>s %b ref=\"%{Referer}i\" ua=\"%{User-Agent}i\" host=\"%{Host}i\" xff=\"%{X-Forwarded-for}i\""
Пример строки файла журнала для справки:
"10.10.10.200 - - [29/Jan/2017:03:45:15 +0100] "GET /health-check/97b0d3c3dd9cfaf7f532aed814f2a049 HTTP/1.0" 200 19 ref="-" ua="-" host="10.10.10.10" xff="-""
Моя проблема, похоже, заключается в том, чтобы получить IP-адреса, которые здесь написаны host="10.10.10.10"
в переменную% host для awstats. Я думаю, это из-за кавычек вокруг IP. Как видите, я пытался цитировать цитаты, но, похоже, это не сработало. Поэтому я в основном ищу способ сообщить awstats, что IP-адрес находится в двойных кавычках, и он должен записать этот IP-адрес в переменную% host.
Мои попытки для awstats LogFormat
пока (+ некоторые небольшие вариации на них). На первых порах я все еще думал, что первый столбец имеет правильный IP-адрес для меня, что не так.:
#LogFormat="%host - - %time1 %methodurl %code %bytesd ref=%refererquot ua=%uaquot host=\"%extra1\" xff=\"%extra2\""
#LogFormat="%host %other %other %time1 %methodurl %code %bytesd %refererquot %uaquot %other %other"
#LogFormat="%h %l %u %t \"%r\" %>s %b ref=\"%{Referer}i\" ua=\"%{User-Agent}i\" host=\"%{Host}i\" xff=\"%{X-Forwarded-for}i\""
#LogFormat="%host - - %time1 %methodurl %code %bytesd %refererquot %uaquot \"%extra1\" \"%extra2\""
#LogFormat="%other - - %time1 %methodurl %code %bytesd ref="-" ua=%uaquot host=\"%host\" xff=%otherquot"
#LogFormat='%other - - %time1 %methodurl %code %bytesd ref="-" ua=%uaquot host="%host" xff=%otherquot'
Я получаю следующие ошибки:
Error: Your personalized LogFormat does not include all fields required by AWStats (Add %host in your LogFormat string).
или
AWStats did not find any valid log lines that match your LogFormat parameter, in the 50th first non commented lines read of your log.
Или я могу пойти по совершенно неправильному пути, и в этом случае я открыт для предложений ;-)
Вот что я в итоге придумал:
LogFormat="%other - - %time1 %methodurl %code %bytesd ref=\"%referer\" ua=\"%ua\" host=%host xff=%extra1"
По-видимому, используя %uaquote
и %refererquot
вводил в заблуждение, потому что у меня не получилось с двойными кавычками, как я думал. И единственный способ получить настоящий хост в awstats - это использовать host=%host
, что означает, что хосты теперь двойные кавычки в awstats.