Формат журнала AWStats для журналов доступа tomcat, в котором есть X-Forwarded-For
Каким должен быть формат журнала AWStats для журналов доступа tomcat ниже?
Я пробовал эти форматы, но внешние IP-адреса не входят в отчеты AWStats.
LogFormat="%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot %referer %other %other"
LogFormat="%other %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot %host_proxy"
Настройки клапана Tomcat:
pattern="%h %l %{USER_ID}s %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" "X-Forwarded-For=%{X-Forwarded-For}i" "JSESSIONID=%{JSESSIONID}c" %D"
Запись в журнале:
127.0.0.1 - - [04/Nov/2013:13:39:55 +0000] "GET / HTTP/1.1" 200 12345 "https://www.google.com/url?some_url" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36" "X-Forwarded-For=real_ip, proxy_server_internal_ip" "JSESSIONID=-" 12345
2 ответа
Решение
$ echo $STR
127.0.0.1 - - [10/Nov/2013:04:14:03 +0000] "GET /XXXX/js/service.js HTTP/1.1" 200 656 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0" "X-Forwarded-For=75.67.17.69, 10.2.0.121" "JSESSIONID=YYYY" 2
$ echo $STR | perl -pe 's/X\-Forwarded\-For=([\d\.]+).*?\"/X-Forwarded-For=$1"/g'
127.0.0.1 - - [10/Nov/2013:04:14:03 +0000] "GET /XXXX/js/service.js HTTP/1.1" 200 656 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0" "X-Forwarded-For=75.67.17.69" "JSESSIONID=YYYY" 2
Спасибо за помощь.
Сделав еще один трюк, awstat хочет, чтобы журналы host_proxy имели значение 75.67.17.69, 10.2.0.121, поэтому изменили команду perl, как показано ниже, которая меняет "X-Forwarded-For=75.67.17.69, 10.2.0.121" на "75.67.17.69, 10.2.0,121 "без кавычек и лишних пробелов.
perl -pe 's / "X-Forwarded-For = ([\ d., \ s] +). *?" / $ 1 / г"
После внесения изменений логи предоставляются awstat для обработки.