Ngxtop Gercek Zamanlı Nginx Log Monitorleme Aracı
Ngxtop, nginx web serverın loglarını gerçek zamanlı okuyarak, tanımlanan değişkenlere göre sitenize gelen sorguları hızlı ve kolay şekilde terminal üzerinden yorumlamanızı sağlayan bir programdır.
Python ile yazıldığından, python paketlerinin kurulumunda kullanılan pip aracı ile yada easy_install ile kolayca kurulumunu yapabilirsiniz.
Ngxtop Kurulumu
Sisteminizde pip kurulu değil ise, ilk önce epel reposunda bulunan python-pip paketini kurmanız gerekiyor.
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install python-pip
Python-pip paketinin kurulumundan sonra artık pip komutu ile ngxtop programını kurabiliriz.
# pip install ngxtop
Easy_install ile kuracak iseniz, centos’un base reposunda bulunan python-setuptools paketini kurmanız gerekiyor.
# yum install python-setuptools
# easy_install ngxtop
Ngxtop Kullanımı
ngxtop [options]
ngxtop [options] (print|top|avg|sum) <var> ...
ngxtop info
ngxtop [options] query <query> ...
Bazı kullanım şeçeneklerine bakacak olursa,
- -l : Nginx access log dosyasının tam yolu ( full path )
- -f : Access log formatı ( default: combined )
- –no-follow : ngxtop normalde mevcut log kayıtlarını dikkate almadan anlık olarak log dosyasına yeni yazılacak olan kayıtları dikkate alır. Bu seçeneği kullanarak, ngxtop mevcut log kayıtlarada bakarak çıktıyı vermesini söleriz.
- -t : güncelleme sıklığı
- -n : Gösterilecek satır sayısı. ( default değer 10 dur )
- -o : Sonuçları sıralama kriteri ( default olarak count şeklindedir. )
- -a …, –a : Çıktığı ortalama, max, min gibi seçenekler ile filtrelemenizi sağlar. ( exp: sum, avg, min, max )
- – v : Ayrıntılı çıktı verir.
- -i : Sadece filter ile eşleşen kayıtları işler.
Ngxtop ile kullanabileceğimiz buil-in değişkenleri,
- body_bytes_send
- http_referer
- http_user_agent
- remote_addr
- remote_user
- request
- status
- time_local
Eğer nginx’i yum ile kurdu iseniz default olarak conf dosyası etc nin altına kurulduğu için ( /etc/nginx/nginx.conf ) ngxtop komutu verdiğinizde direk bu conf dosyasını okuyarak access log dosyasının yerini bulacaktır.
#ngxtop
Nginx’i elle derleyerek kurduysanız ve etc altına kurmadıysanız, ngxtop access log dosyasının yerini bulamadığı için ( -l ) parametresi ile log dosyasının yerini göstermeniz gerekecektir.
# ngxtop -l /usr/local/nginx/log/access.log

Built-in değişkenlerini kullanarak çıktı elde etmek için,
# ngxtop print request http_user_agent remote_addr

# ngxtop top remote_addr

# ngxtop -i 'status == 404' print request status

Ngxtop’un en becerikli diğer bir özelliği ise Apache loglarını da yorumlayabilmesi. Apache loglarını yorumlayabilmesi için ngxtop’u aşağıdaki şekilde kullanmanız gerekiyor.
# tail -f /var/log/httpd/access.log | ngxtop -f common