Как отфильтровать apache логи доступа по ips, домену и URL? - PullRequest
1 голос
/ 03 февраля 2020

Мне нужно отфильтровать группу одинаковых ips, доменов и некоторых шаблонов URL и вывод печати, а также счетчик, домен и шаблон URL из моих журналов доступа apache. | В настоящее время я использую команду awk, но она показывает только количество и ip, а не шаблоны доменов и URL.

Мой ввод

Feb  2 03:15:01 lb2 haproxy2[30529]: "www.abc.com" 207.46.13.4 02/Feb/2020:03:15:01.668 GET /detail.php?id=166108259 HTTP/1.1 GET 404 123481 "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" "" ci-https-in~ ciapache ci-web1 0 0 1 71 303 762 263 1 1 -- "" "" "" ""

Feb  2 03:15:02 lb2 haproxy2[30530]: "wap.abc.com" 106.76.245.226 02/Feb/2020:03:15:01.987 GET /listing.php?id=1009 HTTP/1.1 GET 200 182 "Mozilla/5.0 (Linux; Android 5.1.1; LG-K420 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36" "https://wap.abc.com/s.php?q=land+buyers" ci-https-in~ ciapache ci-web2 0 0 0 18 18 17813 219 0 0 -- "" "" "" ""

Feb  2 03:15:02 lb2 haproxy2[30531]: "wap.abc.com" 106.76.245.226 02/Feb/2020:03:15:02.067 GET /listing.php?id=6397 HTTP/1.1 GET 200 128116 "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "" ci-https-in~ varnish ci-van 0 0 0 1 3 470 1001 0 0 -- "" "" "" ""

Feb  2 03:15:02 lb2 haproxy2[30531]: "wap.abc.com" 106.76.245.226 02/Feb/2020:03:15:02.067 GET /listing.php?id=6397 HTTP/1.1 GET 200 128116 "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "" ci-https-in~ varnish ci-van 0 0 0 1 3 470 1001 0 0 -- "" "" "" ""

Ожидаемый вывод

count  ip             domain     url
2     106.76.245.226 wap.abc.com /listing.php?id=6397
1     106.76.245.226 wap.abc.com /listing.php?id=1009
1     207.46.13.4    www.abc.com /detail.php?id=166108259

В настоящее время я использую эту команду, но она не дает ожидаемого вывода

cat /var/log/httpd/access_log | grep www.abc.com* | awk '{print $7}' |  sort -n | uniq -c | sort -rn | head -n 50

1 Ответ

2 голосов
/ 03 февраля 2020
cat /var/log/httpd/access_log | grep www.abc.com* | awk '{print $7,$6,$10}' |  sort -n | uniq -c | sort -rn | head -n 50

используйте и другие столбцы в awk.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...