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