Pazar, Aralık 22, 2024

Goaccess ile Nginxde Log Analizi

Normalde büyük ölçekli projelerde analiz için oldukça güzel metrikler veren ve ölçeklendirilebilir muazzam uygulamalar mevcut grafana, prometheus gibi ancak gel gelelim bizim projemiz ne büyük nede kurumsal bir iş yapıyoruz. En azından ben kendi web sitem için hiçde öyle zahmete girmiyorum. Ancak logların güzel gözükmesini istiyorum. Anlaşılabilir olması en güzeli gözümüzü yormaya ve bozmaya gerek yok

Goaccess kurulumunu yapalım.

wget http://tar.goaccess.io/goaccess-1.2.tar.gz
tar -xzvf goaccess-1.2.tar.gz
cd goaccess-1.2/
./configure --enable-utf8 --enable-geoip=legacy
make
make install

kurulumu başarılı bir şekilde yaptığınız andan itibaren kullanmaya başlayabilirsiniz. Tabi loglarınızda başınızı ağrıtmaya başlayacak özellikle yeni kurduysanız ve nginxin log tarafında bir ayar yapmadıysanız sizi şöyle köşeye alalım

ilk olarak nginx.conf dosyası içerisine aşağıdaki log formatını tanımlayalım

	log_format      main    '$remote_addr - $remote_user [$time_local] $request '
        	        '"$status" $body_bytes_sent "$http_referer" '
        	        '"$http_user_agent" "$http_x_forwarded_for" "$gzip_ratio"'
' "$connection" "$connection_requests" "$request_time"';

Kayıt edip çıkış yapıyorsunuz ve nginx yeniden başlatıyorsunuz. Ardından /usr/local/etc/ yoluna geçiş yapıyorsunuz burada bulunan goaccess.conf dosyasına ayarlamalarımızı yapmamız gerekiyor. Bunlardan ilki goaccess tarafındaki log formatı ki bunu yapmazsanız hata alırsınız ve log dosyanız oluşmaz

log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
date-format %d/%b/%Y
time-format %T
config-dialog false
color-scheme 1
hl-header true
no-color false
no-column-names false
no-progress false
with-mouse false
no-csv-summary false
all-static-files false
static-file .css
static-file .js
static-file .jpg
static-file .png
static-file .gif
static-file .ico
static-file .jpeg
static-file .pdf
static-file .txt
static-file .csv
static-file .zip
static-file .mp3
static-file .mp4
static-file .mpeg
static-file .mpg
static-file .exe
static-file .swf
static-file .woff
static-file .woff2
static-file .xls
static-file .xlsx
static-file .doc
static-file .docx
static-file .ppt
static-file .pptx
static-file .iso
static-file .gz
static-file .rar
static-file .svg
static-file .bmp
static-file .tar
static-file .tgz
static-file .tiff
static-file .tif
static-file .ttf
static-file .flv
agent-list false
http-method true
http-protocol true
no-query-string false
no-term-resolver false
real-os true
with-output-resolver false
444-as-404 false
4xx-to-unique-count false
double-decode false
ignore-crawlers false
ignore-panel REFERRERS
ignore-panel KEYPHRASES
ignore-panel HOSTS
ignore-panel VISITORS

Bu yüzden örnek olması açısından kendi kullanmış olduğum config dosyasını sizlerle paylaşıyorum. Direk olarak bunu kullanmanız durumunda size detaylı bir şekilde çıktı verecektir. Çıktıyı ise aşağıdaki komut ile alacağız.

goaccess -f /var/log/nginx/access.log* -a 2>/dev/null 1>/var/www/html/static/index.html

Örnek olarak şuradaki istatistiklere bakabilirsiniz.