Takip et

Nginx’e Log Modülü Ekleme: CentOS 7 Üzerinde Kapsamlı Bir Rehber

Nginx’e Log Modülü Ekleme: CentOS 7 Üzerinde Kapsamlı Bir Rehber Giriş Web sunucuları, modern internet altyapısının temel taşlarıdır ve N

Nginx’e Log Modülü Ekleme: CentOS 7 Üzerinde Kapsamlı Bir Rehber

Giriş

Web sunucuları, modern internet altyapısının temel taşlarıdır ve Nginx, yüksek performanslı, ölçeklenebilir ve güvenilir bir web sunucusu olarak öne çıkmaktadır. Nginx’in gücü, statik içerik sunumundan ters proxy, yük dengeleme ve HTTP önbellekleme gibi gelişmiş özelliklere kadar uzanır. Ancak, herhangi bir sunucu uygulamasının sağlıklı çalışmasının ve yönetilmesinin en kritik yönlerinden biri, kapsamlı ve doğru günlük (log) kaydıdır. Günlükler, sunucu performansı hakkında bilgi edinmek, güvenlik sorunlarını tespit etmek, hataları ayıklamak ve kullanıcı davranışlarını analiz etmek için vazgeçilmez bir araçtır.

CentOS 7 gibi bir Linux dağıtımı üzerinde Nginx kullanırken, günlük kaydını doğru bir şekilde yapılandırmak ve yönetmek, sistem yöneticileri için hayati önem taşır. Bu makale, Nginx’in günlük (log) modüllerini CentOS 7 üzerinde nasıl yapılandıracağınızı, özelleştireceğinizi ve yöneteceğinizi adım adım açıklayacaktır. “Log modülü ekleme” ifadesi genellikle Nginx’in varsayılan olarak derlenmiş olan güçlü günlük kaydı yeteneklerini yapılandırmak ve gerektiğinde bu yetenekleri genişletmek anlamına gelir, çünkü temel günlük kaydı modülleri (ngx_http_log_module ve ngx_http_core_module) Nginx’in standart kurulumunda zaten mevcuttur. Bu rehber, bu mevcut yetenekleri en verimli şekilde kullanmaya odaklanacaktır.

Nginx Günlük Kaydını Anlamak

Nginx, temelde iki ana türde günlük kaydı tutar: erişim günlükleri (access logs) ve hata günlükleri (error logs). Her iki günlük türü de farklı amaçlara hizmet eder ve farklı bilgiler içerir.

Erişim Günlükleri (Access Logs)

Erişim günlükleri, Nginx sunucusuna yapılan her bir isteği kaydeder. Bu günlükler, web sitenize kimin, ne zaman, hangi sayfaları ziyaret ettiğini ve bu isteklerin sonucunun ne olduğunu gösterir. Erişim günlüklerinde genellikle aşağıdaki bilgiler bulunur:

  • İstek yapan istemcinin IP adresi ($remote_addr).
  • İsteğin yapıldığı tarih ve saat ($time_local).
  • İstemcinin yaptığı HTTP isteği (metot, URI, protokol) ($request).
  • İsteğin HTTP durumu kodu (200 OK, 404 Not Found vb.) ($status).
  • İstemciye gönderilen yanıtın bayt cinsinden boyutu ($body_bytes_sent).
  • İstemcinin geldiği referans URL ($http_referer).
  • İstemcinin kullandığı kullanıcı aracısı (tarayıcı, işletim sistemi) ($http_user_agent).
  • İsteğin işlenmesi için geçen süre ($request_time).
  • Yük dengeleyici veya ters proxy arkasındaki gerçek istemci IP adresi ($http_x_forwarded_for).

Erişim günlükleri, trafik analizi, performans izleme ve kullanıcı davranışı analizi için kritik öneme sahiptir.

Hata Günlükleri (Error Logs)

Hata günlükleri, Nginx sunucusunun karşılaştığı sorunları, uyarıları ve hata mesajlarını kaydeder. Bu günlükler, sunucunun doğru çalışıp çalışmadığını anlamak, yapılandırma hatalarını tespit etmek ve beklenmeyen durumları gidermek için vazgeçilmezdir. Hata günlükleri genellikle aşağıdaki bilgileri içerir:

  • Hatanın oluştuğu tarih ve saat.
  • Hatanın seviyesi (debug, info, notice, warn, error, crit, alert, emerg).
  • Hata mesajının açıklaması.
  • Hatanın oluştuğu istemci IP adresi veya sunucu süreci bilgisi.

Hata günlükleri, özellikle sunucu sorunlarını giderme ve sistem kararlılığını sağlama konusunda temel bir araçtır.

Günlük Formatları (Log Formats)

Nginx, log_format direktifi aracılığıyla günlüklerin hangi bilgileri içereceğini ve bu bilgilerin nasıl düzenleneceğini özelleştirmenize olanak tanır. Bu esneklik, belirli ihtiyaçlara yönelik özel günlükler oluşturmayı mümkün kılar. Örneğin, varsayılan main formatı yaygın olarak kullanılır, ancak daha fazla bilgi içeren veya belirli alanları hariç tutan kendi formatlarınızı tanımlayabilirsiniz.

Varsayılan Günlük Kaydı Davranışı

Nginx’in varsayılan kurulumunda, erişim günlükleri genellikle /var/log/nginx/access.log adresinde, hata günlükleri ise /var/log/nginx/error.log adresinde tutulur. Bu yollar ve dosya isimleri, Nginx yapılandırma dosyaları aracılığıyla kolayca değiştirilebilir.

Ön Koşullar

Bu rehberdeki adımları takip etmek için aşağıdaki ön koşulların karşılandığından emin olun:

  • CentOS 7 işletim sistemi kurulu ve güncel.
  • Nginx web sunucusu kurulu. Eğer kurulu değilse, aşağıdaki komutlarla kurabilirsiniz:
    sudo yum install epel-release -y
    sudo yum install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx
  • Temel Linux komut satırı bilgisi.
  • sudo ayrıcalıklarına sahip bir kullanıcı hesabı.

Nginx Log Modülleri ve Yapılandırma

“Nginx’e log modülü ekleme” ifadesi genellikle, Nginx’in zaten derlenmiş olarak gelen güçlü günlük kaydı yeteneklerini (ngx_http_log_module ve ngx_http_core_module) yapılandırmak ve gerektiğinde bu yetenekleri genişletmek anlamına gelir. Nginx’in temel günlük modülleri, sunucunun varsayılan derlemesinin bir parçasıdır ve özel bir “ekleme” işlemi gerektirmez. Ancak, bu modüllerin sunduğu özellikleri etkin bir şekilde kullanmak ve yapılandırmak, gerçek bir modül ekleme işlemi kadar önemlidir.

Varsayılan Log Modülleri

  • ngx_http_log_module: Bu modül, Nginx’in erişim günlüklerini (access_log) kaydetmesinden ve özel günlük formatlarını (log_format) tanımlamasından sorumludur. Nginx’in HTTP modülünün bir parçasıdır ve varsayılan olarak her Nginx kurulumunda bulunur.
  • ngx_http_core_module: Bu modül, Nginx’in temel HTTP işlevselliğini sağlar ve hata günlüklerinin (error_log) yapılandırılmasından sorumludur. Tıpkı ngx_http_log_module gibi, bu da standart Nginx derlemesinin bir parçasıdır.

Bu modüllerin varlığını kontrol etmek için Nginx’in derleme seçeneklerini kontrol edebilirsiniz:

nginx -V

Çıktıda --with-http_log_module ve --with-http_core_module gibi ifadeleri görmeniz, bu modüllerin derlenmiş olduğunu gösterir. Standart kurulumlarda bunlar her zaman mevcuttur.

Gelişmiş Günlük Kaydı Özellikleri ve Entegrasyonlar

Temel günlük kaydının ötesine geçmek için Nginx, çeşitli entegrasyonlar ve ek özellikler sunar:

Syslog Günlük Kaydı

Nginx, günlükleri doğrudan yerel bir dosyaya yazmak yerine Syslog protokolü üzerinden uzak bir sunucuya gönderme yeteneğine sahiptir. Bu, merkezi günlük yönetimi, daha iyi güvenlik ve sunucu diski üzerindeki yükü azaltma açısından büyük avantajlar sunar. Syslog entegrasyonu, Nginx’in yerleşik bir özelliğidir ve ek bir modül derlemeyi gerektirmez.

Gzip Sıkıştırma (Logrotate ile)

Eski günlük dosyalarını otomatik olarak sıkıştırmak, disk alanından tasarruf etmek için önemlidir. Bu genellikle Nginx’in kendi özelliği olmaktan ziyade, Linux’un logrotate aracıyla entegrasyon yoluyla sağlanır. logrotate, eski günlük dosyalarını döndürür, sıkıştırır ve belirli bir süre sonra siler.

OpenResty/Lua ile Özel Günlük Kaydı (İleri Düzey)

Çok daha esnek ve programatik günlük kaydı ihtiyaçları için OpenResty gibi Nginx dağıtımları, Lua komut dosyaları aracılığıyla özel günlük işleme yetenekleri sunar. Bu, Nginx’in temel günlük modüllerinin ötesinde bir esneklik sağlar ancak ayrı bir kurulum ve yapılandırma gerektirir. Bu makale, standart Nginx günlük kaydına odaklandığı için bu konuya derinlemesine girilmeyecektir.

Nginx Log Yapılandırması: Adım Adım

Nginx’in günlük kaydı yapılandırması, nginx.conf dosyasında veya dahil edilen diğer yapılandırma dosyalarında yapılır.

Nginx Yapılandırma Dosyalarını Bulma

CentOS 7’de Nginx’in ana yapılandırma dosyası genellikle /etc/nginx/nginx.conf adresindedir. Bu dosya, genellikle http bloğu içinde veya server blokları içinde diğer yapılandırma dosyalarını (conf.d/.conf veya sites-enabled/) içerir.

sudo vi /etc/nginx/nginx.conf

Veya siteye özel yapılandırmalar için:

sudo vi /etc/nginx/conf.d/default.conf

Temel Erişim Günlüğü Yapılandırması

access_log direktifi, erişim günlüklerinin kaydedileceği yolu ve kullanılacak formatı belirtir. Bu direktif, http, server veya location blokları içinde yer alabilir.

  • http bloğunda: Tüm sunucular için genel bir erişim günlüğü tanımlar.
  • server bloğunda: Belirli bir sanal ana bilgisayar (virtual host) için erişim günlüğü tanımlar.
  • location bloğunda: Belirli bir URL yolu için erişim günlüğü tanımlar.

Örnek: Tüm HTTP istekleri için varsayılan main formatını kullanarak /var/log/nginx/access.log dosyasına günlük kaydı yapmak.
/etc/nginx/nginx.conf dosyasındaki http bloğuna ekleyin veya mevcutsa düzenleyin:

http {
    # ... diğer http ayarları ...
    access_log /var/log/nginx/access.log main;
    # ...
}

Eğer farklı bir sanal ana bilgisayar için özel bir günlük dosyası istiyorsanız, server bloğunun içine ekleyin:

server {
    listen 80;
    server_name example.com;
    access_log /var/log/nginx/example.com_access.log main;
    # ...
}

access_log off; kullanarak belirli bir blokta günlük kaydını kapatabilirsiniz.

Hata Günlüğü Yapılandırması

error_log direktifi, hata günlüklerinin kaydedileceği yolu ve minimum günlük seviyesini belirtir. Bu direktif main, http, server veya location blokları içinde yer alabilir.

  • main bloğunda: Genel Nginx süreçleri için hata günlüğü.
  • http bloğunda: Tüm HTTP sunucuları için genel hata günlüğü.
  • server bloğunda: Belirli bir sanal ana bilgisayar için hata günlüğü.

Örnek: /var/log/nginx/error.log dosyasına warn (uyarı) seviyesindeki veya daha kritik hataları kaydetmek.
/etc/nginx/nginx.conf dosyasındaki http bloğuna ekleyin veya mevcutsa düzenleyin:

http {
    # ... diğer http ayarları ...
    error_log /var/log/nginx/error.log warn;
    # ...
}

error_log direktifi için kullanılabilecek günlük seviyeleri (en azdan en kritiğe):

  • debug: En detaylı bilgiler, hata ayıklama için.
  • info: Bilgilendirici mesajlar.
  • notice: Normal ancak önemli koşullar.
  • warn: Uyarı mesajları.
  • error: Hata koşulları.
  • crit: Kritik koşullar, donanım veya yazılım hataları.
  • alert: Acil durumlar, sistemin bozulabileceği.
  • emerg: Sistem kullanılamaz durumda.

Genellikle warn veya error seviyesi üretim ortamları için yeterlidir. Hata ayıklama yaparken debug seviyesini kullanabilirsiniz.

Özel Günlük Formatları Oluşturma

log_format direktifi ile kendi günlük formatlarınızı tanımlayabilirsiniz. Bu, http bloğu içinde yapılmalıdır.
Örnek: Daha fazla bilgi içeren özel bir günlük formatı oluşturma:

http {
    # ...
    log_format custom_combined '$remote_addr - $remote_user [$time_local] '
                               '"$request" $status $body_bytes_sent '
                               '"$http_referer" "$http_user_agent" '
                               '"$http_x_forwarded_for" $request_time $upstream_response_time';

    access_log /var/log/nginx/custom_access.log custom_combined;
    # ...
}

Bu örnekte kullanılan bazı Nginx değişkenleri:

  • $remote_addr: İstemci IP adresi.
  • $remote_user: HTTP Basic kimlik doğrulaması yapılmışsa kullanıcı adı.
  • $time_local: Yerel saat dilimindeki istek zamanı.
  • $request: Tam HTTP isteği dizesi (örneğin, “GET /index.html HTTP/1.1”).
  • $status: Yanıtın HTTP durum kodu.
  • $body_bytes_sent: İstemciye gönderilen yanıtın bayt cinsinden boyutu.
  • $http_referer: İstemcinin geldiği referans URL.
  • $http_user_agent: İstemcinin kullanıcı aracısı (tarayıcı).
  • $http_x_forwarded_for: Ters proxy arkasındaki gerçek istemci IP adresi (eğer ayarlanmışsa).
  • $request_time: İsteğin işlenmesi için geçen süre (saniye cinsinden).
  • $upstream_response_time: Yukarı akış sunucusundan (proxy hedefi) yanıt almak için geçen süre.

Koşullu Günlük Kaydı

Bazen belirli istekleri (örneğin, sağlık kontrolleri veya bot taramaları) günlüklemek istemeyebilirsiniz. Nginx’in map direktifi ve if koşulu ile bunu yapabilirsiniz. map direktifi http bloğu içinde tanımlanmalıdır.
Örnek: Sağlık kontrolü isteklerini günlüğe kaydetmeme.

http {
    # ...
    map $request_uri $loggable {
        /health_check 0; # /health_check yoluna gelen istekleri günlüğe kaydetme
        default 1;       # Diğer tüm istekleri kaydet
    }

    access_log /var/log/nginx/access.log main if=$loggable;
    # ...
}

Bu örnekte, $request_uri değişkenine göre $loggable değişkeni 0 veya 1 değerini alır. access_log direktifindeki if=$loggable koşulu, $loggable 0 olduğunda günlüğü atlar.

Syslog ile Uzak Günlük Kaydı

Günlükleri merkezi bir Syslog sunucusuna göndermek için access_log ve error_log direktiflerinde syslog: önekini kullanabilirsiniz.
Örnek: Günlükleri uzak bir Syslog sunucusuna gönderme.

http {
    # ...
    access_log syslog:server=192.168.1.10:514,facility=local7,tag=nginx,severity=info main;
    error_log syslog:server=192.168.1.10:514,facility=local7,tag=nginx_error,severity=error;
    # ...
}

Açıklamalar:

  • server=192.168.1.10:514: Syslog sunucusunun IP adresi ve portu.
  • facility=local7: Syslog tesis kodu (uygulama türünü belirtir, 0-7 arası yerel kullanım için ayrılmıştır).
  • tag=nginx: Günlük mesajlarına eklenecek bir etiket.
  • severity=info / severity=error: Günlük mesajının minimum ciddiyet seviyesi.

Uzak Syslog sunucusunda (örneğin 192.168.1.10) rsyslog veya syslog-ng gibi bir Syslog daemon’unun kurulu ve gelen UDP (veya TCP) bağlantılarını dinleyecek şekilde yapılandırılmış olması gerekir.

Yapılandırma Değişikliklerini Uygulama

Herhangi bir Nginx yapılandırma değişikliğinden sonra, yapılandırma dosyasının sözdizimini kontrol etmeli ve Nginx’i yeniden yüklemelisiniz:

sudo nginx -t
sudo systemctl reload nginx

nginx -t komutu, yapılandırma dosyasında herhangi bir hata olup olmadığını kontrol eder. Hata yoksa, sudo systemctl reload nginx komutu Nginx’i kesinti olmadan yeni yapılandırmayı uygulamaya zorlar.

Log Yönetimi ve Rotasyonu

Günlük dosyaları zamanla büyüyerek disk alanını tüketebilir ve sunucu performansını etkileyebilir. Bu nedenle, günlük rotasyonu (log rotation) kritik öneme sahiptir. Linux sistemlerinde bu görev için logrotate aracı kullanılır.

Logrotate Kullanımı

logrotate, günlük dosyalarını belirli aralıklarla (günlük, haftalık, aylık) döndüren, sıkıştıran ve eski dosyaları silen bir sistem yardımcı programıdır. Nginx, genellikle /etc/logrotate.d/nginx adresinde kendi logrotate yapılandırma dosyasıyla birlikte gelir.

Varsayılan Nginx logrotate yapılandırması (örnek):

/var/log/nginx/*.log {
    daily
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 0640 nginx adm
    postrotate
        if [ -f /var/run/nginx.pid ]; then
            kill -USR1 cat /var/run/nginx.pid
        fi
    endscript
}

Bu yapılandırma dosyasının açıklaması:

  • /var/log/nginx/*.log: Nginx’in bu dizindeki tüm .log uzantılı dosyalarını döndür.
  • daily: Günlük olarak döndür.
  • missingok: Günlük dosyası eksikse hata verme.
  • rotate 52: 52 eski günlük dosyasını sakla (yaklaşık bir yıl).
  • compress: Döndürülen günlük dosyalarını sıkıştır (gzip ile).
  • delaycompress: Bir önceki döndürülen günlük dosyasını sıkıştır, en sonuncuyu sıkıştırma.
  • notifempty: Günlük dosyası boşsa döndürme.
  • create 0640 nginx adm: Yeni günlük dosyasını nginx kullanıcısı ve adm grubu ile 0640 izinleriyle oluştur.
  • postrotate/endscript: Günlük dosyası döndürüldükten sonra çalıştırılacak komutlar. Burada Nginx’e USR1 sinyali gönderilerek günlük dosyalarını yeniden açması sağlanır (nginx -s reopen komutunun eşdeğeri). Bu, Nginx’in yeni günlük dosyalarına yazmaya başlamasını sağlar.

Logrotate Yapılandırmasını Özelleştirme

İhtiyaçlarınıza göre bu dosyayı düzenleyebilirsiniz. Örneğin, günlükleri haftalık döndürmek için daily yerine weekly kullanabilirsiniz.

sudo vi /etc/logrotate.d/nginx

Değişiklikleri kaydettikten sonra logrotate otomatik olarak çalışacaktır (genellikle /etc/cron.daily/logrotate betiği tarafından tetiklenir). Manuel olarak çalıştırmak için:

sudo logrotate -f /etc/logrotate.d/nginx

Log Dosyalarını Gzip ile Sıkıştırma

logrotate yapılandırmasındaki compress ve delaycompress direktifleri, döndürülen günlük dosyalarını otomatik olarak Gzip formatında sıkıştırır. Bu, disk alanından önemli ölçüde tasarruf sağlar.

Nginx Loglarını Analiz Etme

Günlük dosyalarını oluşturmak sadece ilk adımdır. Bu verilerden anlamlı bilgiler çıkarmak için analiz etmek gerekir.

Temel Komut Satırı Araçları

Günlük dosyalarını incelemek için çeşitli Linux komut satırı araçları kullanılabilir:

  • tail -f /var/log/nginx/access.log: Günlük dosyasının sonunu gerçek zamanlı olarak izler.
  • grep "404" /var/log/nginx/access.log: Erişim günlüklerinde “404 Not Found” hatalarını arar.
  • awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr: En çok istek yapan IP adreslerini listeler.
  • less /var/log/nginx/error.log: Hata günlük dosyasını sayfa sayfa okur.

Gelişmiş Analiz Araçları

Büyük ölçekli günlük verileri için özel analiz araçları çok daha etkilidir:

  • GoAccess: Gerçek zamanlı, terminal tabanlı bir web günlük analizcidir. Günlükleri görselleştirmek ve hızlı özetler almak için mükemmeldir.
    sudo yum install goaccess -y
    goaccess -f /var/log/nginx/access.log -o report.html --log-format=COMBINED
  • ELK Stack (Elasticsearch, Logstash, Kibana): Merkezi günlük yönetimi, depolama, arama ve görselleştirme için güçlü bir platformdur. Logstash günlükleri toplar ve ayrıştırır, Elasticsearch depolar ve indeksler, Kibana ise verileri görselleştirir.
  • Splunk: Ticari bir günlük yönetimi ve analiz platformudur. Güçlü arama, raporlama ve uyarı yetenekleri sunar.
  • Grafana + Loki: Prometheus ve Grafana ekosisteminde, Loki günlükleri depolamak ve Grafana üzerinden sorgulamak için hafif bir seçenektir.

Bu araçlar, Nginx günlüklerinden elde edilen verileri daha derinlemesine analiz etmenize, eğilimleri belirlemenize ve potansiyel sorunları proaktif olarak tespit etmenize olanak tanır.

Performans ve Güvenlik Etkileri

Günlük kaydı, sunucu yönetimi için hayati öneme sahip olsa da, yanlış yapılandırıldığında performans ve güvenlik üzerinde olumsuz etkileri olabilir.

Performans

  • Disk G/Ç Yükü: Çok detaylı ve sık günlük kaydı, özellikle yüksek trafikli sitelerde disk G/Ç (giriş/çıkış) yükünü artırabilir. Bu, disk performansını düşürerek genel sunucu yanıt süresini etkileyebilir.
  • CPU Kullanımı: Günlük dosyalarına yazma ve özellikle sıkıştırma işlemleri CPU kaynaklarını tüketebilir.
  • Çözümler:
    • Yalnızca gerekli bilgileri günlüğe kaydedin. Özel log_format kullanarak gereksiz değişkenleri çıkarın.
    • Koşullu günlük kaydı ile gereksiz istekleri (örneğin sağlık kontrolleri) atlayın.
    • Syslog ile uzak günlük kaydı yaparak disk G/Ç yükünü Nginx sunucusundan başka bir sunucuya aktarın.
    • Nginx’in access_log direktifinde buffer veya flush parametrelerini kullanarak günlük yazma işlemlerini optimize edin. Örneğin: access_log /var/log/nginx/access.log main buffer=16k;

Güvenlik

  • Saldırı Tespiti: Günlükler, brute-force saldırıları, SQL enjeksiyon denemeleri, XSS saldırıları ve diğer kötü niyetli etkinlikleri tespit etmek için ilk savunma hattıdır. Anormal istek kalıplarını veya hata mesajlarını izlemek, potansiyel saldırıları erken aşamada belirlemenize yardımcı olur.
  • Adli Bilişim: Bir güvenlik ihlali durumunda, günlükler olayın nasıl gerçekleştiğini anlamak ve saldırganın izini sürmek için kritik adli kanıtlar sağlar.
  • Log Dosyası Güvenliği: Günlük dosyaları hassas bilgiler içerebilir. Bu nedenle, günlük dosyalarının doğru izinlere sahip olduğundan ve yetkisiz erişime karşı korunduğundan emin olun. Genellikle root veya nginx kullanıcısı ve adm grubu tarafından okunabilir olmaları yeterlidir.
    sudo chmod 640 /var/log/nginx/*.log
    sudo chown nginx:adm /var/log/nginx/*.log
  • Merkezi Günlük Yönetimi: Günlükleri merkezi bir sunucuya göndermek (Syslog veya ELK Stack gibi), günlüklerin güvenliğini artırır. Bir saldırganın ana sunucuya erişmesi durumunda bile, günlükler ayrı bir yerde güvende kalır.

Sıkça Sorulan Sorular (SSS)

Nginx’in varsayılan günlük modülü nedir?

Nginx’in varsayılan erişim günlük kaydı için ngx_http_log_module ve hata günlük kaydı için ngx_http_core_module kullanılır. Bu modüller, Nginx’in standart derlemesinin bir parçasıdır ve özel bir “ekleme” işlemi gerektirmez.

Günlük seviyeleri ne anlama geliyor?

Hata günlüklerindeki seviyeler (debug, info, notice, warn, error, crit, alert, emerg), bir olayın ciddiyetini belirtir. debug en detaylıyken, emerg en kritik sistem arızalarını gösterir. Üretim ortamlarında genellikle warn veya error seviyesi kullanılır.

Günlükleri neden döndürmeliyim?

Günlük dosyaları zamanla çok büyüyerek disk alanını tüketebilir ve sunucu performansını olumsuz etkileyebilir. Günlük rotasyonu, eski günlükleri sıkıştırarak ve silerek disk alanını yönetmenize yardımcı olur.

Nginx logları nerede bulunur?

Varsayılan olarak, erişim günlükleri /var/log/nginx/access.log ve hata günlükleri /var/log/nginx/error.log adresinde bulunur. Ancak bu yollar Nginx yapılandırma dosyalarında (nginx.conf veya conf.d/*.conf) değiştirilebilir.

Nginx loglarını uzaktan nasıl gönderebilirim?

Nginx’in access_log ve error_log direktiflerinde syslog: önekini kullanarak günlükleri Syslog protokolü üzerinden uzak bir sunucuya gönderebilirsiniz.

Sonuç

Nginx’in günlük kaydı yetenekleri, bir web sunucusunun sağlıklı ve güvenli bir şekilde çalışmasını sağlamanın temelidir. CentOS 7 üzerinde Nginx kullanırken, ngx_http_log_module ve ngx_http_core_module gibi dahili modüllerin sunduğu esnekliği kullanarak erişim ve hata günlüklerinizi kapsamlı bir şekilde yapılandırabilirsiniz. Özel günlük formatları oluşturmak, koşullu günlük kaydı yapmak ve Syslog ile uzak günlük yönetimi entegrasyonu, günlük kaydı stratejinizi daha da güçlendirir.

Unutmayın ki günlük yönetimi, yalnızca günlükleri oluşturmakla kalmaz, aynı zamanda logrotate ile bunları düzenli olarak döndürmeyi ve GoAccess, ELK Stack gibi araçlarla analiz etmeyi de içerir. Doğru yapılandırılmış günlükler, performans sorunlarını gidermekten güvenlik ihlallerini tespit etmeye kadar birçok senaryoda size yol gösterecek değerli bir kaynaktır. Bu rehberdeki adımları izleyerek, Nginx günlük kaydı altyapınızı CentOS 7 üzerinde güçlü, esnek ve yönetilebilir hale getirebilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.