Count nginx requests to domains

Ostatnio potrzebowałem zmierzyć jaki posiadam ruch na podpiętych do serwera domenach. Interesowała mnie ilość requestów do nginxa z pogrupowaniem wg domen. Do wykonania tego zadania wykorzystałem 2 elementy: access_log nginxa (może też być syslog o ile ma wkompilowany moduł) oraz mununa (standardowy plugin loggrep).

Szczegóły:

nginx.conf

Uwaga: we żadnym pliku w sites-enabled/* nie może pojawić się access_log off, bo wtedy domena zostanie pominięta w logach.

Potem robimy

I konfigurujemy dodany właśnie plugin:

każda linika ma format:

U mnie w wyrażeniu regularnym są tylko części nazwy domenowej, bo posiadam podpięte różne domeny (.pl, .com, www., bez www) i grupuję je po prostu w jeden wpis.

Na koniec restart nginxa i munina i wszystko ładnie powinno się zbierać.

Przykładowy wykres:

nginx requests groupped by domain

Dodatkowo, możemy po prostu sobie „podliczyć” ilość requestów do danej domeny bezpośrednio z pliku all-access.log:

Swoją drogą nie rozumiem sortowania tego wyniku poprzez drugie sort niby jakoś mniej więcej posortowane, ale kolejność to chyba wg długości całego stringa :) ktoś wie jak to posortować bardziej normalnie?

11. września 2013 by rysi3k
Categories: administracja | Tags: , , , , , , | Leave a comment

Leave a Reply

Required fields are marked *