GoAccess Web Log Analizörünü Ubuntu 20.04 Üzerine Kurulumu ve Kullanımı
Giriş
Modern web uygulamaları ve sunucuları, sürekli olarak büyük miktarda erişim ve hata günlüğü (log) verisi üretir. Bu günlükler, web sitelerinin performansı, kullanıcı davranışları, güvenlik açıkları ve potansiyel sorunlar hakkında paha biçilmez bilgiler içerir. Ancak, bu ham günlük dosyalarını manuel olarak incelemek zaman alıcı, verimsiz ve çoğu zaman imkansızdır. İşte bu noktada GoAccess gibi güçlü bir web günlük analizörü devreye girer.
GoAccess, web sunucusu günlüklerini (Apache, Nginx, IIS vb.) gerçek zamanlı olarak analiz eden, terminal tabanlı, etkileşimli bir araçtır. Ayrıca, statik HTML, JSON veya CSV formatında raporlar da oluşturabilir. Ubuntu 20.04 gibi Linux tabanlı bir sunucuda GoAccess kullanmak, web yöneticileri ve geliştiriciler için günlükleri hızlı ve etkili bir şekilde anlamanın anahtarıdır. Bu makale, GoAccess’i Ubuntu 20.04 üzerine nasıl kuracağınızı, temel ve gelişmiş özelliklerini nasıl kullanacağınızı adım adım açıklayacaktır. Amacımız, GoAccess’in sunduğu tüm avantajlardan yararlanarak web sitenizin trafiğini ve performansını daha iyi anlamanıza yardımcı olmaktır.
GoAccess’in Temel Özellikleri
GoAccess, web günlük analizinde onu öne çıkaran bir dizi güçlü özelliğe sahiptir:
Gerçek Zamanlı Analiz
GoAccess’in en dikkat çekici özelliklerinden biri, web sunucusu günlüklerini gerçek zamanlı olarak analiz edebilmesidir. Bu, sitenizdeki etkinlikleri anında izleyebileceğiniz anlamına gelir. Yeni istekler geldikçe, GoAccess paneli otomatik olarak güncellenir ve size en güncel verileri sunar. Bu özellik, özellikle canlı sitelerde sorun giderme veya ani trafik artışlarını izleme durumlarında son derece faydalıdır.
Etkileşimli Terminal Arayüzü
GoAccess, varsayılan olarak bir terminal penceresinde çalışan, tamamen etkileşimli bir kullanıcı arayüzü sunar. Bu arayüz, klavye kısayolları ile kolayca gezinilebilir ve farklı metrikler arasında hızlıca geçiş yapmanızı sağlar. Bu, sunucuya SSH ile bağlandığınızda bile kapsamlı analizler yapmanıza olanak tanır.
Çeşitli Çıktı Formatları
Goadaş, sadece terminalde değil, aynı zamanda farklı formatlarda çıktı üretebilir:
* Statik HTML Raporları: En popüler çıktı formatlarından biridir. Bu raporlar, herhangi bir modern web tarayıcısında görüntülenebilen, görsel olarak zengin ve etkileşimli bir pano sunar. Bu raporlar, başkalarıyla paylaşmak veya geçmiş verileri arşivlemek için idealdir.
* JSON Çıktısı: Programatik analizler veya başka sistemlerle entegrasyon için kullanılabilir.
* CSV Çıktısı: Verileri elektronik tablolarda veya diğer analiz araçlarında kullanmak isteyenler için uygundur.
Özelleştirilebilir Pano ve Metrikler
GoAccess panosu, ziyaretçi istatistikleri, istenen dosyalar, statik dosyalar, 404 hataları, ziyaretçi ana bilgisayarları, işletim sistemleri, tarayıcılar, yönlendirenler ve HTTP durum kodları gibi birçok farklı modülü gösterir. Bu modüllerin sırasını ve görünürlüğünü yapılandırma dosyası aracılığıyla özelleştirebilirsiniz.
Düşük Kaynak Tüketimi
Büyük günlük dosyalarını bile hızlı bir şekilde işleyebilir ve bunu yaparken sistem kaynaklarını minimum düzeyde kullanır. Bu, GoAccess’i üretim sunucularında bile güvenle kullanabileceğiniz anlamına gelir.
Modüler ve Genişletilebilir
GoAccess, GeoIP konum verilerini kullanarak ziyaretçilerin coğrafi konumlarını haritalayabilir veya belirli bir IP adresinin hangi ülkeye ait olduğunu gösterebilir. Ayrıca, farklı günlük formatlarını destekler ve özel günlük formatlarını da tanımlamanıza olanak tanır.
Ön Koşullar
GoAccess kurulumuna başlamadan önce, aşağıdaki ön koşulların yerine getirildiğinden emin olun:
* Ubuntu 20.04 Sunucusu: Kurulumu yapacağınız bir Ubuntu 20.04 işletim sistemine sahip bir sunucu veya sanal makine.
* Root veya Sudo Yetkileri: Kurulum ve yapılandırma işlemleri için sudo ayrıcalıklarına sahip bir kullanıcı hesabına veya root erişimine ihtiyacınız olacak.
* Web Sunucusu Günlükleri: Analiz etmek istediğiniz web sunucusu (Apache, Nginx vb.) günlük dosyalarının sunucunuzda mevcut olması gerekir. Genellikle bu dosyalar /var/log/apache2/access.log veya /var/log/nginx/access.log gibi yollarda bulunur.
* Temel Linux Bilgisi: Terminal komutlarını çalıştırma ve dosya sisteminde gezinme konusunda temel bilgi.
Ubuntu 20.04 Üzerine GoAccess Kurulumu
GoAccess’i Ubuntu 20.04 üzerine kurmanın iki ana yolu vardır: APT paket yöneticisi aracılığıyla veya kaynaktan derleyerek. APT ile kurulum daha hızlı ve kolaydır, ancak kaynaktan derleme size en güncel sürümü sunar.
Sistem Güncelleme
Herhangi bir yazılım kurulumuna başlamadan önce sistem paket listesini güncellemek ve mevcut paketleri yükseltmek iyi bir uygulamadır:
sudo apt update
sudo apt upgrade -y
Bağımlılıkların Kurulumu (Kaynaktan Derleme İçin Gerekli)
Eğer GoAccess’i kaynaktan derlemeyi planlıyorsanız, bazı derleme bağımlılıklarına ihtiyacınız olacaktır. APT ile kuracaksanız bu adımı atlayabilirsiniz.
sudo apt install -y build-essential autoconf libtool automake pkg-config \
libncursesw5-dev libglib2.0-dev libgeoip-dev libtokyocabinet-dev
GoAccess’i Depodan Kurma (Önerilen Yöntem)
Bu, GoAccess’i kurmanın en basit ve en hızlı yoludur. Ubuntu depolarında genellikle kararlı ve güncel bir GoAccess sürümü bulunur.
sudo apt install goaccess -y
Kurulum tamamlandıktan sonra, sürümü kontrol ederek GoAccess’in başarılı bir şekilde kurulduğunu doğrulayabilirsiniz:
goaccess --version
Çıktı, kurulu GoAccess sürümünü gösterecektir. Örneğin: GoAccess - 1.4.2
GoAccess’i Kaynaktan Derleme (Opsiyonel)
Eğer Ubuntu depolarındaki sürümden daha yeni bir GoAccess sürümüne ihtiyacınız varsa veya belirli bir özelliği kullanmak istiyorsanız, GoAccess’i kaynaktan derleyebilirsiniz.
1. GoAccess Kaynak Kodunu İndirme:
GoAccess’in resmi GitHub deposundan en son kararlı sürümün tarball’ını indirin. Güncel sürümü kontrol etmek için GoAccess GitHub sayfasını ziyaret edebilirsiniz.
wget https://tar.goaccess.io/goaccess-1.8.tar.gz
(Not: 1.8 yerine en güncel sürüm numarasını kullanın.)
2. Arşivi Çıkarma:
tar -xzvf goaccess-1.8.tar.gz
cd goaccess-1.8
3. Derleme ve Kurulum:
sudo ./configure --enable-utf8 --enable-geoip=legacy --with-openssl
sudo make
sudo make install
* --enable-utf8: UTF-8 desteğini etkinleştirir.
* --enable-geoip=legacy: GeoIP desteğini etkinleştirir. Eğer GeoIP2 kullanmak isterseniz --enable-geoip=mmdb ve ilgili bağımlılıkları (libmaxminddb-dev) kurmanız gerekebilir.
* --with-openssl: OpenSSL desteğini etkinleştirir, bu özellikle gerçek zamanlı HTML raporları için WebSocket üzerinden güvenli bağlantılar için önemlidir.
Kurulum tamamlandıktan sonra, aynı şekilde goaccess --version komutuyla sürümü kontrol edebilirsiniz.
GoAccess Temel Kullanımı
GoAccess’i kurduktan sonra, web sunucusu günlüklerinizi analiz etmeye başlayabilirsiniz. İşte temel kullanım senaryoları:
Gerçek Zamanlı Terminal Modu
Bu, GoAccess’in en yaygın kullanım şeklidir ve size web sunucusu günlüklerini anında analiz etme imkanı sunar.
* Apache Logları İçin:
sudo goaccess -f /var/log/apache2/access.log
* Nginx Logları İçin:
sudo goaccess -f /var/log/nginx/access.log
Komutu çalıştırdığınızda, GoAccess sizden log formatını seçmenizi isteyecektir. Genellikle Apache ve Nginx için “NCSA Combined Log Format” veya “GoAccess Default Format” seçenekleri uygun olacaktır. Doğru formatı seçtikten sonra, etkileşimli pano terminalinizde belirecektir.
Terminal Panosunda Gezinme:
* F1 veya h: Yardım menüsü
* q: Mevcut modülden çıkma veya GoAccess’ten çıkma
* j / k: Aşağı / Yukarı kaydırma
* o / Enter: Seçili modülü genişletme/daraltma
* s: Sıralama seçenekleri
* /: Arama
* g: En üste git
* G: En alta git
Statik HTML Raporu Oluşturma
GoAccess, web tarayıcısında görüntülenebilen güzel ve etkileşimli HTML raporları oluşturabilir. Bu raporlar, başkalarıyla paylaşmak veya geçmiş verileri arşivlemek için mükemmeldir.
sudo goaccess -f /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html --port=7890
* -f: Analiz edilecek günlük dosyasını belirtir.
* -o: Çıktı dosyasının yolunu ve adını belirtir.
* --log-format=COMBINED: Günlük formatını belirtir. Apache ve Nginx için COMBINED yaygın olarak kullanılır. GoAccess’in otomatik olarak algılamasına izin vermek için bu parametreyi atlayabilirsiniz, ancak bazen manuel belirtmek daha iyidir.
* --real-time-html: Bu parametre, GoAccess’in statik bir HTML raporu oluşturmak yerine, sürekli güncellenen bir HTML raporu oluşturmasını sağlar. Bu rapor, bir web soketi üzerinden canlı verileri alır. Bu özelliği kullanmak için GoAccess’in arka planda çalışması gerekir.
* --port=7890: Gerçek zamanlı rapor için WebSocket sunucusunun dinleyeceği portu belirtir.
Eğer sadece bir anlık statik rapor oluşturmak istiyorsanız, --real-time-html ve --port parametrelerini kullanmadan aşağıdaki gibi yapabilirsiniz:
sudo goaccess -f /var/log/nginx/access.log -o /var/www/html/static_report.html --log-format=COMBINED
Bu komut, /var/www/html/static_report.html adresine bir HTML dosyası oluşturacaktır. Bu dosyayı bir web sunucusu üzerinden yayınlayarak tarayıcınızdan erişebilirsiniz.
JSON veya CSV Çıktısı Oluşturma
Verileri programatik olarak işlemek veya başka araçlarla kullanmak isterseniz, JSON veya CSV formatında çıktı alabilirsiniz.
* JSON Çıktısı:
sudo goaccess -f /var/log/nginx/access.log -o report.json --log-format=COMBINED
* CSV Çıktısı:
sudo goaccess -f /var/log/nginx/access.log -o report.csv --log-format=COMBINED
GoAccess ile Web Sunucusu Loglarını Analiz Etme
GoAccess, çeşitli web sunucularının günlük formatlarını destekler. En yaygın olanları Apache ve Nginx’tir.
Apache Logları için GoAccess
Apache genellikle /var/log/apache2/access.log ve /var/log/apache2/error.log dosyalarını kullanır. GoAccess erişim günlüklerini analiz etmek için tasarlanmıştır.
sudo goaccess -f /var/log/apache2/access.log --log-format=COMBINED
Apache’nin varsayılan combined günlük formatı GoAccess tarafından otomatik olarak tanınır. Eğer özel bir format kullanıyorsanız, goaccess.conf dosyasında veya komut satırında belirtmeniz gerekir.
Nginx Logları için GoAccess
Nginx logları genellikle /var/log/nginx/access.log adresinde bulunur. Nginx’in varsayılan günlük formatı da Apache’nin combined formatına benzerdir ve GoAccess tarafından kolayca işlenebilir.
sudo goaccess -f /var/log/nginx/access.log --log-format=COMBINED
Zipped Log Dosyaları ile Çalışma
Web sunucuları genellikle günlük dosyalarını periyodik olarak sıkıştırır (örneğin, access.log.1.gz, access.log.2.gz). GoAccess, sıkıştırılmış dosyaları doğrudan okuyabilir.
sudo goaccess -f /var/log/nginx/access.log* --log-format=COMBINED
Bu komut, hem mevcut access.log dosyasını hem de tüm sıkıştırılmış (.gz) günlük dosyalarını analiz edecektir. Bu, geçmiş verileri de dahil ederek daha kapsamlı bir analiz yapmanızı sağlar.
GoAccess Yapılandırma ve Özelleştirme
GoAccess’in davranışını ve görünümünü yapılandırmak için goaccess.conf dosyasını kullanabilirsiniz. Bu dosya genellikle /etc/goaccess/goaccess.conf veya kullanıcının ana dizininde .goaccessrc olarak bulunur.
goaccess.conf Dosyası
Yapılandırma dosyasını açmak için bir metin düzenleyici kullanın:
sudo nano /etc/goaccess/goaccess.conf
Bu dosyada, günlük formatı, tarih formatı, saat formatı, hariç tutulacak IP adresleri, GeoIP ayarları ve panonun görünümü gibi birçok ayarı değiştirebilirsiniz.
Log Formatını Tanımlama
GoAccess, birçok standart günlük formatını otomatik olarak tanır. Ancak, özel bir günlük formatınız varsa, bunu goaccess.conf dosyasında log-format yönergesiyle veya komut satırında --log-format ile belirtmeniz gerekir.
Örnek bir Nginx özel formatı:
log_format custom '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
Bu formatı GoAccess’e tanıtmak için goaccess.conf dosyasına veya komut satırına aşağıdaki gibi eklemeniz gerekir:
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" "%^"
date-format %d/%b/%Y
time-format %H:%M:%S
* %h: Host (IP adresi)
* %^: Atlama (görmezden gel)
* %d: Tarih
* %t: Saat
* %r: İstek (request)
* %s: HTTP Durum Kodu
* %b: Gönderilen Bayt Sayısı
* %R: Yönlendiren (Referrer)
* %u: Kullanıcı Aracısı (User-Agent)
Tarih ve Saat Formatını Tanımlama
GoAccess’in günlük dosyanızdaki tarih ve saat formatını doğru bir şekilde ayrıştırması önemlidir. Bu, date-format ve time-format yönergeleriyle yapılır.
date-format %d/%b/%Y
time-format %H:%M:%S
Bu formatlar, [05/Aug/2023:10:30:00 +0000] gibi standart NCSA formatı için geçerlidir. Kendi günlük formatınıza göre ayarlamanız gerekebilir.
IP Adresi Çözümleme (GeoIP)
GoAccess, GeoIP veritabanlarını kullanarak ziyaretçilerin coğrafi konumlarını gösterebilir. GeoIP desteğini etkinleştirmek için, öncelikle gerekli GeoIP paketlerini kurmanız gerekir:
sudo apt install geoip-database geoip-database-extra -y
Ardından, goaccess.conf dosyasında aşağıdaki satırların yorum işaretlerini kaldırın veya ekleyin:
# GeoIP location
geoip-database /usr/share/GeoIP/GeoLiteCity.dat
Eğer GeoIP2 kullanıyorsanız:
sudo apt install libmaxminddb0 libmaxminddb-dev -y
Ve goaccess.conf içinde:
# geoip-database /usr/share/GeoIP/GeoLite2-City.mmdb
Unutmayın, GeoIP veritabanları periyodik olarak güncellenmelidir.
GoAccess Paneli Özelleştirme
goaccess.conf dosyasında panonun görünümünü ve davranışını özelleştirebileceğiniz birçok seçenek bulunur:
* Renk Şeması: color-scheme yönergesiyle renk şemasını değiştirebilirsiniz.
* Modüller: ignore-panel veya hide-panel yönergeleriyle belirli modülleri gizleyebilirsiniz.
* Sıralama: sort-panel yönergesiyle modüllerin varsayılan sıralamasını belirleyebilirsiniz.
* IP Çözümleme: dns-resolver yönergesiyle IP adreslerini ana bilgisayar adlarına çözümlemeyi etkinleştirebilirsiniz.
Gerçek Zamanlı HTML Raporu Oluşturma ve Web Sunucusunda Yayınlama
GoAccess’in en güçlü özelliklerinden biri, sürekli güncellenen, gerçek zamanlı HTML raporları oluşturabilmesidir. Bu rapor, bir web tarayıcısı üzerinden erişilebilir ve sitenizin trafiğini canlı olarak izlemenizi sağlar.
GoAccess Gerçek Zamanlı HTML Raporu Nedir?
Bu rapor, GoAccess’in arka planda bir WebSocket sunucusu çalıştırarak günlük dosyasını sürekli izlemesi ve yeni verileri tarayıcıya göndermesiyle oluşturulur. Böylece, sayfayı yenilemeden veriler otomatik olarak güncellenir.
Bir gerçek zamanlı HTML raporu oluşturmak için:
sudo goaccess -f /var/log/nginx/access.log -o /var/www/html/goaccess-report.html \
--log-format=COMBINED --real-time-html --port=7890 --ws-url=ws://your_domain_or_ip:7890/ws
* --real-time-html: Gerçek zamanlı HTML raporu oluşturur.
* --port=7890: WebSocket sunucusunun dinleyeceği portu belirtir. Bu portun güvenlik duvarında açık olması gerekir.
* --ws-url: Tarayıcının bağlanacağı WebSocket URL’sini belirtir. your_domain_or_ip kısmını sunucunuzun IP adresi veya alan adıyla değiştirin. Eğer SSL kullanıyorsanız wss:// olarak belirtmelisiniz.
Bu komutu çalıştırdığınızda, GoAccess terminali bloke edecektir. Arka planda çalışması için nohup veya screen/tmux gibi araçlar kullanabilirsiniz.
nohup sudo goaccess -f /var/log/nginx/access.log -o /var/www/html/goaccess-report.html \
--log-format=COMBINED --real-time-html --port=7890 --ws-url=ws://your_domain_or_ip:7890/ws &
Bu komut, GoAccess’i arka planda çalıştıracak ve çıktıyı nohup.out dosyasına yönlendirecektir.
Nginx ile Yapılandırma Örneği
Gerçek zamanlı HTML raporunu bir web sunucusu üzerinden yayınlamak için Nginx’te bir yapılandırma yapmanız gerekir. Bu, goaccess-report.html dosyasını sunmak ve WebSocket bağlantısını proxy etmek için yapılır.
1. Nginx Sanal Host Yapılandırması:
/etc/nginx/sites-available/goaccess.conf gibi bir dosya oluşturun:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/html;
index goaccess-report.html;
location / {
try_files $uri $uri/ =404;
}
location /ws {
proxy_pass http://127.0.0.1:7890; # GoAccess WebSocket portu
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400; # 24 saat
}
}
2. Yapılandırmayı Etkinleştirme ve Nginx’i Yeniden Başlatma:
sudo ln -s /etc/nginx/sites-available/goaccess.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Şimdi tarayıcınızdan http://your_domain_or_ip/goaccess-report.html adresine giderek gerçek zamanlı raporu görüntüleyebilirsiniz.
Apache ile Yapılandırma Örneği
Apache için de benzer bir yapılandırma gereklidir. mod_proxy ve mod_proxy_wstunnel modüllerinin etkin olduğundan emin olun.
1. Gerekli Modülleri Etkinleştirme:
sudo a2enmod proxy proxy_wstunnel
sudo systemctl restart apache2
2. Apache Sanal Host Yapılandırması:
/etc/apache2/sites-available/goaccess.conf gibi bir dosya oluşturun:
ServerName your_domain_or_ip
DocumentRoot /var/www/html
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ProxyRequests Off
ProxyPreserveHost On
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:7890/$1 [P,L]
ProxyPass /ws ws://127.0.0.1:7890/ws
ProxyPassReverse /ws ws://127.0.0.1:7890/ws
3. Yapılandırmayı Etkinleştirme ve Apache’yi Yeniden Başlatma:
sudo a2ensite goaccess.conf
sudo systemctl reload apache2
Tarayıcınızdan http://your_domain_or_ip/goaccess-report.html adresine giderek gerçek zamanlı raporu görüntüleyebilirsiniz.
Otomatik Güncelleme için Cron Job Kurulumu
Eğer sadece statik HTML raporları oluşturuyorsanız ve bunları düzenli olarak güncellemek istiyorsanız, bir cron işi kullanabilirsiniz. Bu, raporun belirli aralıklarla otomatik olarak yeniden oluşturulmasını sağlar.
sudo crontab -e
Açılan dosyaya aşağıdaki satırı ekleyin (örneğin, her 5 dakikada bir güncellemek için):
/5 * goaccess -f /var/log/nginx/access.log -o /var/www/html/static_report.html --log-format=COMBINED > /dev/null 2>&1
Bu komut, her 5 dakikada bir static_report.html dosyasını yeniden oluşturacaktır. >/dev/null 2>&1 kısmı, cron’un e-posta göndermesini engellemek için çıktıyı susturur.
Gelişmiş Kullanım Senaryoları
GoAccess, temel kullanımın ötesinde, daha karmaşık analizler yapmanızı sağlayacak gelişmiş özelliklere de sahiptir.
Birden Fazla Log Dosyasını Birleştirme
Tek bir komutla birden fazla günlük dosyasını analiz edebilirsiniz. Bu, farklı sunuculardan veya farklı zaman dilimlerinden gelen günlükleri birleştirmek için kullanışlıdır.
sudo goaccess -f /var/log/nginx/access.log -f /var/log/nginx/access.log.1 -f /var/log/nginx/access.log.2.gz --log-format=COMBINED
Veya joker karakter kullanarak:
sudo goaccess -f "/var/log/nginx/access.log*" --log-format=COMBINED
Filtreleme ve Hariç Tutma
Belirli verileri analize dahil etmek veya hariç tutmak için GoAccess’in filtreleme özelliklerini kullanabilirsiniz.
* Belirli bir IP adresini hariç tutma:
goaccess.conf dosyasında:
ignore-ip 192.168.1.1
ignore-ip 10.0.0.0/8
Veya komut satırında:
sudo goaccess -f /var/log/nginx/access.log --exclude-ip 192.168.1.1 --log-format=COMBINED
* Belirli bir User-Agent’ı hariç tutma:
sudo goaccess -f /var/log/nginx/access.log --exclude-agent "Googlebot" --log-format=COMBINED
* Yalnızca belirli bir dizini veya dosyayı dahil etme:
sudo goaccess -f /var/log/nginx/access.log --hlv="/admin/" --log-format=COMBINED
Bu komut, yalnızca /admin/ dizinine yapılan istekleri analiz edecektir.
Tarih Aralığına Göre Analiz
GoAccess’i belirli bir tarih aralığındaki günlükleri analiz etmek için kullanabilirsiniz.
sudo goaccess -f /var/log/nginx/access.log --start-date 01/Jan/2023 --end-date 31/Jan/2023 --log-format=COMBINED
Tarih formatının günlük formatınızla eşleştiğinden emin olun.
Sık Karşılaşılan Sorunlar ve Çözümleri
GoAccess kullanırken karşılaşabileceğiniz bazı yaygın sorunlar ve bunların çözümleri:
Log Formatı Eşleşmiyor
Sorun: GoAccess, günlük dosyanızı ayrıştıramıyor ve “No valid logs were found” gibi bir hata veriyor.
Çözüm: GoAccess’in günlük formatınızı doğru bir şekilde tanıdığından emin olun.
* Komut satırında --log-format parametresini doğru değerle kullanın (örn. COMBINED).
* Eğer özel bir formatınız varsa, goaccess.conf dosyasında log-format, date-format ve time-format yönergelerini doğru bir şekilde yapılandırın. goaccess --dcf komutuyla varsayılan yapılandırma dosyasını görüntüleyebilir ve örnek formatları inceleyebilirsiniz.
Performans Sorunları
Sorun: Çok büyük günlük dosyalarını analiz ederken GoAccess yavaş çalışıyor veya bellek sorunları yaşıyor.
Çözüm:
* Daha fazla RAM: Eğer mümkünse, sunucunuza daha fazla RAM ekleyin.
* --enable-tcb=no: Eğer Tokyo Cabinet desteği ile derlemediyseniz veya kullanmıyorsanız, bu parametre GoAccess’in disk üzerinde geçici veritabanı kullanmasını engeller. Ancak bu, çok büyük dosyalarda daha fazla RAM kullanılmasına neden olabilir.
* --process-and-exit: Statik raporlar için, GoAccess’in işleme bittikten sonra çıkmasını sağlayın, bu da kaynakları boşaltır.
* Filtreleme: Yalnızca belirli bir zaman aralığını veya belirli verileri analiz ederek iş yükünü azaltın.
Erişim İzinleri
Sorun: GoAccess günlük dosyalarını okuyamıyor ve “Permission denied” hatası veriyor.
Çözüm: GoAccess’i çalıştıran kullanıcının günlük dosyalarını okuma iznine sahip olduğundan emin olun.
* Genellikle sudo ile çalıştırmak bu sorunu çözer: sudo goaccess -f /var/log/nginx/access.log.
* Eğer sudo kullanmak istemiyorsanız, günlük dosyalarının izinlerini kontrol edin (ls -l /var/log/nginx/access.log) ve GoAccess’i çalıştıran kullanıcıyı adm veya root grubuna ekleyin (sudo usermod -aG adm your_username).
Sonuç
GoAccess, web sunucusu günlüklerini analiz etmek için vazgeçilmez bir araçtır. Ubuntu 20.04 üzerinde kolayca kurulabilir ve hem terminal tabanlı etkileşimli analizler hem de kapsamlı, görsel HTML raporları sunar. Bu makalede, GoAccess’i kurmaktan temel kullanıma, yapılandırma seçeneklerinden gelişmiş senaryolara ve sık karşılaşılan sorunların çözümüne kadar her şeyi detaylı bir şekilde ele aldık.
GoAccess’i kullanarak web sitenizin ziyaretçi istatistiklerini, popüler içeriklerini, hata oranlarını ve genel performansını çok daha derinlemesine anlayabilirsiniz. Bu bilgiler, sitenizin kullanıcı deneyimini iyileştirmek, güvenlik açıklarını tespit etmek ve SEO stratejilerinizi optimize etmek için kritik öneme sahiptir. GoAccess’in sunduğu gerçek zamanlı izleme yetenekleri sayesinde, sitenizdeki anlık değişikliklere hızlıca tepki verebilir ve proaktif bir yönetim sergileyebilirsiniz. Web günlüklerinizin gücünü GoAccess ile keşfetmeye başlayın ve veriye dayalı kararlar almanın avantajlarından yararlanın.