{"id":31934,"date":"2025-10-15T18:41:14","date_gmt":"2025-10-15T15:41:14","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31934"},"modified":"2025-10-15T18:41:14","modified_gmt":"2025-10-15T15:41:14","slug":"nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/","title":{"rendered":"Nginx&#8217;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Nginx&#8217;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>Web sunucular\u0131, modern internet altyap\u0131s\u0131n\u0131n temel ta\u015flar\u0131d\u0131r ve Nginx, y\u00fcksek performansl\u0131, \u00f6l\u00e7eklenebilir ve g\u00fcvenilir bir web sunucusu olarak \u00f6ne \u00e7\u0131kmaktad\u0131r. Nginx&#8217;in g\u00fcc\u00fc, statik i\u00e7erik sunumundan ters proxy, y\u00fck dengeleme ve HTTP \u00f6nbellekleme gibi geli\u015fmi\u015f \u00f6zelliklere kadar uzan\u0131r. Ancak, herhangi bir sunucu uygulamas\u0131n\u0131n sa\u011fl\u0131kl\u0131 \u00e7al\u0131\u015fmas\u0131n\u0131n ve y\u00f6netilmesinin en kritik y\u00f6nlerinden biri, kapsaml\u0131 ve do\u011fru g\u00fcnl\u00fck (log) kayd\u0131d\u0131r. G\u00fcnl\u00fckler, sunucu performans\u0131 hakk\u0131nda bilgi edinmek, g\u00fcvenlik sorunlar\u0131n\u0131 tespit etmek, hatalar\u0131 ay\u0131klamak ve kullan\u0131c\u0131 davran\u0131\u015flar\u0131n\u0131 analiz etmek i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r.<\/p>\n<p>CentOS 7 gibi bir Linux da\u011f\u0131t\u0131m\u0131 \u00fczerinde Nginx kullan\u0131rken, g\u00fcnl\u00fck kayd\u0131n\u0131 do\u011fru bir \u015fekilde yap\u0131land\u0131rmak ve y\u00f6netmek, sistem y\u00f6neticileri i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Bu makale, Nginx&#8217;in g\u00fcnl\u00fck (log) mod\u00fcllerini CentOS 7 \u00fczerinde nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131, \u00f6zelle\u015ftirece\u011finizi ve y\u00f6netece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayacakt\u0131r. &#8220;Log mod\u00fcl\u00fc ekleme&#8221; ifadesi genellikle Nginx&#8217;in varsay\u0131lan olarak derlenmi\u015f olan g\u00fc\u00e7l\u00fc g\u00fcnl\u00fck kayd\u0131 yeteneklerini yap\u0131land\u0131rmak ve gerekti\u011finde bu yetenekleri geni\u015fletmek anlam\u0131na gelir, \u00e7\u00fcnk\u00fc temel g\u00fcnl\u00fck kayd\u0131 mod\u00fclleri (ngx_http_log_module ve ngx_http_core_module) Nginx&#8217;in standart kurulumunda zaten mevcuttur. Bu rehber, bu mevcut yetenekleri en verimli \u015fekilde kullanmaya odaklanacakt\u0131r.<\/p>\n<h2>Nginx G\u00fcnl\u00fck Kayd\u0131n\u0131 Anlamak<\/h2>\n<p>Nginx, temelde iki ana t\u00fcrde g\u00fcnl\u00fck kayd\u0131 tutar: eri\u015fim g\u00fcnl\u00fckleri (access logs) ve hata g\u00fcnl\u00fckleri (error logs). Her iki g\u00fcnl\u00fck t\u00fcr\u00fc de farkl\u0131 ama\u00e7lara hizmet eder ve farkl\u0131 bilgiler i\u00e7erir.<\/p>\n<h3>Eri\u015fim G\u00fcnl\u00fckleri (Access Logs)<\/h3>\n<p>Eri\u015fim g\u00fcnl\u00fckleri, Nginx sunucusuna yap\u0131lan her bir iste\u011fi kaydeder. Bu g\u00fcnl\u00fckler, web sitenize kimin, ne zaman, hangi sayfalar\u0131 ziyaret etti\u011fini ve bu isteklerin sonucunun ne oldu\u011funu g\u00f6sterir. Eri\u015fim g\u00fcnl\u00fcklerinde genellikle a\u015fa\u011f\u0131daki bilgiler bulunur:<\/p>\n<ul>\n<li>\u0130stek yapan istemcinin IP adresi (<code>$remote_addr<\/code>).<\/li>\n<li>\u0130ste\u011fin yap\u0131ld\u0131\u011f\u0131 tarih ve saat (<code>$time_local<\/code>).<\/li>\n<li>\u0130stemcinin yapt\u0131\u011f\u0131 HTTP iste\u011fi (metot, URI, protokol) (<code>$request<\/code>).<\/li>\n<li>\u0130ste\u011fin HTTP durumu kodu (200 OK, 404 Not Found vb.) (<code>$status<\/code>).<\/li>\n<li>\u0130stemciye g\u00f6nderilen yan\u0131t\u0131n bayt cinsinden boyutu (<code>$body_bytes_sent<\/code>).<\/li>\n<li>\u0130stemcinin geldi\u011fi referans URL (<code>$http_referer<\/code>).<\/li>\n<li>\u0130stemcinin kulland\u0131\u011f\u0131 kullan\u0131c\u0131 arac\u0131s\u0131 (taray\u0131c\u0131, i\u015fletim sistemi) (<code>$http_user_agent<\/code>).<\/li>\n<li>\u0130ste\u011fin i\u015flenmesi i\u00e7in ge\u00e7en s\u00fcre (<code>$request_time<\/code>).<\/li>\n<li>Y\u00fck dengeleyici veya ters proxy arkas\u0131ndaki ger\u00e7ek istemci IP adresi (<code>$http_x_forwarded_for<\/code>).<\/li>\n<\/ul>\n<p>Eri\u015fim g\u00fcnl\u00fckleri, trafik analizi, performans izleme ve kullan\u0131c\u0131 davran\u0131\u015f\u0131 analizi i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>Hata G\u00fcnl\u00fckleri (Error Logs)<\/h3>\n<p>Hata g\u00fcnl\u00fckleri, Nginx sunucusunun kar\u015f\u0131la\u015ft\u0131\u011f\u0131 sorunlar\u0131, uyar\u0131lar\u0131 ve hata mesajlar\u0131n\u0131 kaydeder. Bu g\u00fcnl\u00fckler, sunucunun do\u011fru \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 anlamak, yap\u0131land\u0131rma hatalar\u0131n\u0131 tespit etmek ve beklenmeyen durumlar\u0131 gidermek i\u00e7in vazge\u00e7ilmezdir. Hata g\u00fcnl\u00fckleri genellikle a\u015fa\u011f\u0131daki bilgileri i\u00e7erir:<\/p>\n<ul>\n<li>Hatan\u0131n olu\u015ftu\u011fu tarih ve saat.<\/li>\n<li>Hatan\u0131n seviyesi (debug, info, notice, warn, error, crit, alert, emerg).<\/li>\n<li>Hata mesaj\u0131n\u0131n a\u00e7\u0131klamas\u0131.<\/li>\n<li>Hatan\u0131n olu\u015ftu\u011fu istemci IP adresi veya sunucu s\u00fcreci bilgisi.<\/li>\n<\/ul>\n<p>Hata g\u00fcnl\u00fckleri, \u00f6zellikle sunucu sorunlar\u0131n\u0131 giderme ve sistem kararl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flama konusunda temel bir ara\u00e7t\u0131r.<\/p>\n<h3>G\u00fcnl\u00fck Formatlar\u0131 (Log Formats)<\/h3>\n<p>Nginx, <code>log_format<\/code> direktifi arac\u0131l\u0131\u011f\u0131yla g\u00fcnl\u00fcklerin hangi bilgileri i\u00e7erece\u011fini ve bu bilgilerin nas\u0131l d\u00fczenlenece\u011fini \u00f6zelle\u015ftirmenize olanak tan\u0131r. Bu esneklik, belirli ihtiya\u00e7lara y\u00f6nelik \u00f6zel g\u00fcnl\u00fckler olu\u015fturmay\u0131 m\u00fcmk\u00fcn k\u0131lar. \u00d6rne\u011fin, varsay\u0131lan <code>main<\/code> format\u0131 yayg\u0131n olarak kullan\u0131l\u0131r, ancak daha fazla bilgi i\u00e7eren veya belirli alanlar\u0131 hari\u00e7 tutan kendi formatlar\u0131n\u0131z\u0131 tan\u0131mlayabilirsiniz.<\/p>\n<h3>Varsay\u0131lan G\u00fcnl\u00fck Kayd\u0131 Davran\u0131\u015f\u0131<\/h3>\n<p>Nginx&#8217;in varsay\u0131lan kurulumunda, eri\u015fim g\u00fcnl\u00fckleri genellikle <code>\/var\/log\/nginx\/access.log<\/code> adresinde, hata g\u00fcnl\u00fckleri ise <code>\/var\/log\/nginx\/error.log<\/code> adresinde tutulur. Bu yollar ve dosya isimleri, Nginx yap\u0131land\u0131rma dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla kolayca de\u011fi\u015ftirilebilir.<\/p>\n<h2>\u00d6n Ko\u015fullar<\/h2>\n<p>Bu rehberdeki ad\u0131mlar\u0131 takip etmek i\u00e7in a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n kar\u015f\u0131land\u0131\u011f\u0131ndan emin olun:<\/p>\n<ul>\n<li>CentOS 7 i\u015fletim sistemi kurulu ve g\u00fcncel.<\/li>\n<li>Nginx web sunucusu kurulu. E\u011fer kurulu de\u011filse, a\u015fa\u011f\u0131daki komutlarla kurabilirsiniz:\n<pre><code>sudo yum install epel-release -y\nsudo yum install nginx -y\nsudo systemctl start nginx\nsudo systemctl enable nginx<\/code><\/pre>\n<\/li>\n<li>Temel Linux komut sat\u0131r\u0131 bilgisi.<\/li>\n<li><code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip bir kullan\u0131c\u0131 hesab\u0131.<\/li>\n<\/ul>\n<h2>Nginx Log Mod\u00fclleri ve Yap\u0131land\u0131rma<\/h2>\n<p>&#8220;Nginx&#8217;e log mod\u00fcl\u00fc ekleme&#8221; ifadesi genellikle, Nginx&#8217;in zaten derlenmi\u015f olarak gelen g\u00fc\u00e7l\u00fc g\u00fcnl\u00fck kayd\u0131 yeteneklerini (ngx_http_log_module ve ngx_http_core_module) yap\u0131land\u0131rmak ve gerekti\u011finde bu yetenekleri geni\u015fletmek anlam\u0131na gelir. Nginx&#8217;in temel g\u00fcnl\u00fck mod\u00fclleri, sunucunun varsay\u0131lan derlemesinin bir par\u00e7as\u0131d\u0131r ve \u00f6zel bir &#8220;ekleme&#8221; i\u015flemi gerektirmez. Ancak, bu mod\u00fcllerin sundu\u011fu \u00f6zellikleri etkin bir \u015fekilde kullanmak ve yap\u0131land\u0131rmak, ger\u00e7ek bir mod\u00fcl ekleme i\u015flemi kadar \u00f6nemlidir.<\/p>\n<h3>Varsay\u0131lan Log Mod\u00fclleri<\/h3>\n<ul>\n<li><strong><code>ngx_http_log_module<\/code><\/strong>: Bu mod\u00fcl, Nginx&#8217;in eri\u015fim g\u00fcnl\u00fcklerini (<code>access_log<\/code>) kaydetmesinden ve \u00f6zel g\u00fcnl\u00fck formatlar\u0131n\u0131 (<code>log_format<\/code>) tan\u0131mlamas\u0131ndan sorumludur. Nginx&#8217;in HTTP mod\u00fcl\u00fcn\u00fcn bir par\u00e7as\u0131d\u0131r ve varsay\u0131lan olarak her Nginx kurulumunda bulunur.<\/li>\n<li><strong><code>ngx_http_core_module<\/code><\/strong>: Bu mod\u00fcl, Nginx&#8217;in temel HTTP i\u015flevselli\u011fini sa\u011flar ve hata g\u00fcnl\u00fcklerinin (<code>error_log<\/code>) yap\u0131land\u0131r\u0131lmas\u0131ndan sorumludur. T\u0131pk\u0131 <code>ngx_http_log_module<\/code> gibi, bu da standart Nginx derlemesinin bir par\u00e7as\u0131d\u0131r.<\/li>\n<\/ul>\n<p>Bu mod\u00fcllerin varl\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in Nginx&#8217;in derleme se\u00e7eneklerini kontrol edebilirsiniz:<\/p>\n<pre><code>nginx -V<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>--with-http_log_module<\/code> ve <code>--with-http_core_module<\/code> gibi ifadeleri g\u00f6rmeniz, bu mod\u00fcllerin derlenmi\u015f oldu\u011funu g\u00f6sterir. Standart kurulumlarda bunlar her zaman mevcuttur.<\/p>\n<h3>Geli\u015fmi\u015f G\u00fcnl\u00fck Kayd\u0131 \u00d6zellikleri ve Entegrasyonlar<\/h3>\n<p>Temel g\u00fcnl\u00fck kayd\u0131n\u0131n \u00f6tesine ge\u00e7mek i\u00e7in Nginx, \u00e7e\u015fitli entegrasyonlar ve ek \u00f6zellikler sunar:<\/p>\n<h4>Syslog G\u00fcnl\u00fck Kayd\u0131<\/h4>\n<p>Nginx, g\u00fcnl\u00fckleri do\u011frudan yerel bir dosyaya yazmak yerine Syslog protokol\u00fc \u00fczerinden uzak bir sunucuya g\u00f6nderme yetene\u011fine sahiptir. Bu, merkezi g\u00fcnl\u00fck y\u00f6netimi, daha iyi g\u00fcvenlik ve sunucu diski \u00fczerindeki y\u00fck\u00fc azaltma a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck avantajlar sunar. Syslog entegrasyonu, Nginx&#8217;in yerle\u015fik bir \u00f6zelli\u011fidir ve ek bir mod\u00fcl derlemeyi gerektirmez.<\/p>\n<h4>Gzip S\u0131k\u0131\u015ft\u0131rma (Logrotate ile)<\/h4>\n<p>Eski g\u00fcnl\u00fck dosyalar\u0131n\u0131 otomatik olarak s\u0131k\u0131\u015ft\u0131rmak, disk alan\u0131ndan tasarruf etmek i\u00e7in \u00f6nemlidir. Bu genellikle Nginx&#8217;in kendi \u00f6zelli\u011fi olmaktan ziyade, Linux&#8217;un <code>logrotate<\/code> arac\u0131yla entegrasyon yoluyla sa\u011flan\u0131r. <code>logrotate<\/code>, eski g\u00fcnl\u00fck dosyalar\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr, s\u0131k\u0131\u015ft\u0131r\u0131r ve belirli bir s\u00fcre sonra siler.<\/p>\n<h4>OpenResty\/Lua ile \u00d6zel G\u00fcnl\u00fck Kayd\u0131 (\u0130leri D\u00fczey)<\/h4>\n<p>\u00c7ok daha esnek ve programatik g\u00fcnl\u00fck kayd\u0131 ihtiya\u00e7lar\u0131 i\u00e7in OpenResty gibi Nginx da\u011f\u0131t\u0131mlar\u0131, Lua komut dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla \u00f6zel g\u00fcnl\u00fck i\u015fleme yetenekleri sunar. Bu, Nginx&#8217;in temel g\u00fcnl\u00fck mod\u00fcllerinin \u00f6tesinde bir esneklik sa\u011flar ancak ayr\u0131 bir kurulum ve yap\u0131land\u0131rma gerektirir. Bu makale, standart Nginx g\u00fcnl\u00fck kayd\u0131na odakland\u0131\u011f\u0131 i\u00e7in bu konuya derinlemesine girilmeyecektir.<\/p>\n<h2>Nginx Log Yap\u0131land\u0131rmas\u0131: Ad\u0131m Ad\u0131m<\/h2>\n<p>Nginx&#8217;in g\u00fcnl\u00fck kayd\u0131 yap\u0131land\u0131rmas\u0131, <code>nginx.conf<\/code> dosyas\u0131nda veya dahil edilen di\u011fer yap\u0131land\u0131rma dosyalar\u0131nda yap\u0131l\u0131r.<\/p>\n<h3>Nginx Yap\u0131land\u0131rma Dosyalar\u0131n\u0131 Bulma<\/h3>\n<p>CentOS 7&#8217;de Nginx&#8217;in ana yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/nginx\/nginx.conf<\/code> adresindedir. Bu dosya, genellikle <code>http<\/code> blo\u011fu i\u00e7inde veya <code>server<\/code> bloklar\u0131 i\u00e7inde di\u011fer yap\u0131land\u0131rma dosyalar\u0131n\u0131 (<code>conf.d\/<em>.conf<\/code> veya <code>sites-enabled\/<\/em><\/code>) i\u00e7erir.<\/p>\n<pre><code>sudo vi \/etc\/nginx\/nginx.conf<\/code><\/pre>\n<p>Veya siteye \u00f6zel yap\u0131land\u0131rmalar i\u00e7in:<\/p>\n<pre><code>sudo vi \/etc\/nginx\/conf.d\/default.conf<\/code><\/pre>\n<h3>Temel Eri\u015fim G\u00fcnl\u00fc\u011f\u00fc Yap\u0131land\u0131rmas\u0131<\/h3>\n<p><code>access_log<\/code> direktifi, eri\u015fim g\u00fcnl\u00fcklerinin kaydedilece\u011fi yolu ve kullan\u0131lacak format\u0131 belirtir. Bu direktif, <code>http<\/code>, <code>server<\/code> veya <code>location<\/code> bloklar\u0131 i\u00e7inde yer alabilir.<\/p>\n<ul>\n<li><strong><code>http<\/code> blo\u011funda<\/strong>: T\u00fcm sunucular i\u00e7in genel bir eri\u015fim g\u00fcnl\u00fc\u011f\u00fc tan\u0131mlar.<\/li>\n<li><strong><code>server<\/code> blo\u011funda<\/strong>: Belirli bir sanal ana bilgisayar (virtual host) i\u00e7in eri\u015fim g\u00fcnl\u00fc\u011f\u00fc tan\u0131mlar.<\/li>\n<li><strong><code>location<\/code> blo\u011funda<\/strong>: Belirli bir URL yolu i\u00e7in eri\u015fim g\u00fcnl\u00fc\u011f\u00fc tan\u0131mlar.<\/li>\n<\/ul>\n<p>\u00d6rnek: T\u00fcm HTTP istekleri i\u00e7in varsay\u0131lan <code>main<\/code> format\u0131n\u0131 kullanarak <code>\/var\/log\/nginx\/access.log<\/code> dosyas\u0131na g\u00fcnl\u00fck kayd\u0131 yapmak.<br \/>\n<code>\/etc\/nginx\/nginx.conf<\/code> dosyas\u0131ndaki <code>http<\/code> blo\u011funa ekleyin veya mevcutsa d\u00fczenleyin:<\/p>\n<pre><code>http {\n    # ... di\u011fer http ayarlar\u0131 ...\n    access_log \/var\/log\/nginx\/access.log main;\n    # ...\n}<\/code><\/pre>\n<p>E\u011fer farkl\u0131 bir sanal ana bilgisayar i\u00e7in \u00f6zel bir g\u00fcnl\u00fck dosyas\u0131 istiyorsan\u0131z, <code>server<\/code> blo\u011funun i\u00e7ine ekleyin:<\/p>\n<pre><code>server {\n    listen 80;\n    server_name example.com;\n    access_log \/var\/log\/nginx\/example.com_access.log main;\n    # ...\n}<\/code><\/pre>\n<p><code>access_log off;<\/code> kullanarak belirli bir blokta g\u00fcnl\u00fck kayd\u0131n\u0131 kapatabilirsiniz.<\/p>\n<h3>Hata G\u00fcnl\u00fc\u011f\u00fc Yap\u0131land\u0131rmas\u0131<\/h3>\n<p><code>error_log<\/code> direktifi, hata g\u00fcnl\u00fcklerinin kaydedilece\u011fi yolu ve minimum g\u00fcnl\u00fck seviyesini belirtir. Bu direktif <code>main<\/code>, <code>http<\/code>, <code>server<\/code> veya <code>location<\/code> bloklar\u0131 i\u00e7inde yer alabilir.<\/p>\n<ul>\n<li><strong><code>main<\/code> blo\u011funda<\/strong>: Genel Nginx s\u00fcre\u00e7leri i\u00e7in hata g\u00fcnl\u00fc\u011f\u00fc.<\/li>\n<li><strong><code>http<\/code> blo\u011funda<\/strong>: T\u00fcm HTTP sunucular\u0131 i\u00e7in genel hata g\u00fcnl\u00fc\u011f\u00fc.<\/li>\n<li><strong><code>server<\/code> blo\u011funda<\/strong>: Belirli bir sanal ana bilgisayar i\u00e7in hata g\u00fcnl\u00fc\u011f\u00fc.<\/li>\n<\/ul>\n<p>\u00d6rnek: <code>\/var\/log\/nginx\/error.log<\/code> dosyas\u0131na <code>warn<\/code> (uyar\u0131) seviyesindeki veya daha kritik hatalar\u0131 kaydetmek.<br \/>\n<code>\/etc\/nginx\/nginx.conf<\/code> dosyas\u0131ndaki <code>http<\/code> blo\u011funa ekleyin veya mevcutsa d\u00fczenleyin:<\/p>\n<pre><code>http {\n    # ... di\u011fer http ayarlar\u0131 ...\n    error_log \/var\/log\/nginx\/error.log warn;\n    # ...\n}<\/code><\/pre>\n<p><code>error_log<\/code> direktifi i\u00e7in kullan\u0131labilecek g\u00fcnl\u00fck seviyeleri (en azdan en kriti\u011fe):<\/p>\n<ul>\n<li><code>debug<\/code>: En detayl\u0131 bilgiler, hata ay\u0131klama i\u00e7in.<\/li>\n<li><code>info<\/code>: Bilgilendirici mesajlar.<\/li>\n<li><code>notice<\/code>: Normal ancak \u00f6nemli ko\u015fullar.<\/li>\n<li><code>warn<\/code>: Uyar\u0131 mesajlar\u0131.<\/li>\n<li><code>error<\/code>: Hata ko\u015fullar\u0131.<\/li>\n<li><code>crit<\/code>: Kritik ko\u015fullar, donan\u0131m veya yaz\u0131l\u0131m hatalar\u0131.<\/li>\n<li><code>alert<\/code>: Acil durumlar, sistemin bozulabilece\u011fi.<\/li>\n<li><code>emerg<\/code>: Sistem kullan\u0131lamaz durumda.<\/li>\n<\/ul>\n<p>Genellikle <code>warn<\/code> veya <code>error<\/code> seviyesi \u00fcretim ortamlar\u0131 i\u00e7in yeterlidir. Hata ay\u0131klama yaparken <code>debug<\/code> seviyesini kullanabilirsiniz.<\/p>\n<h3>\u00d6zel G\u00fcnl\u00fck Formatlar\u0131 Olu\u015fturma<\/h3>\n<p><code>log_format<\/code> direktifi ile kendi g\u00fcnl\u00fck formatlar\u0131n\u0131z\u0131 tan\u0131mlayabilirsiniz. Bu, <code>http<\/code> blo\u011fu i\u00e7inde yap\u0131lmal\u0131d\u0131r.<br \/>\n\u00d6rnek: Daha fazla bilgi i\u00e7eren \u00f6zel bir g\u00fcnl\u00fck format\u0131 olu\u015fturma:<\/p>\n<pre><code>http {\n    # ...\n    log_format custom_combined '$remote_addr - $remote_user [$time_local] '\n                               '\"$request\" $status $body_bytes_sent '\n                               '\"$http_referer\" \"$http_user_agent\" '\n                               '\"$http_x_forwarded_for\" $request_time $upstream_response_time';\n\n    access_log \/var\/log\/nginx\/custom_access.log custom_combined;\n    # ...\n}<\/code><\/pre>\n<p>Bu \u00f6rnekte kullan\u0131lan baz\u0131 Nginx de\u011fi\u015fkenleri:<\/p>\n<ul>\n<li><code>$remote_addr<\/code>: \u0130stemci IP adresi.<\/li>\n<li><code>$remote_user<\/code>: HTTP Basic kimlik do\u011frulamas\u0131 yap\u0131lm\u0131\u015fsa kullan\u0131c\u0131 ad\u0131.<\/li>\n<li><code>$time_local<\/code>: Yerel saat dilimindeki istek zaman\u0131.<\/li>\n<li><code>$request<\/code>: Tam HTTP iste\u011fi dizesi (\u00f6rne\u011fin, &#8220;GET \/index.html HTTP\/1.1&#8221;).<\/li>\n<li><code>$status<\/code>: Yan\u0131t\u0131n HTTP durum kodu.<\/li>\n<li><code>$body_bytes_sent<\/code>: \u0130stemciye g\u00f6nderilen yan\u0131t\u0131n bayt cinsinden boyutu.<\/li>\n<li><code>$http_referer<\/code>: \u0130stemcinin geldi\u011fi referans URL.<\/li>\n<li><code>$http_user_agent<\/code>: \u0130stemcinin kullan\u0131c\u0131 arac\u0131s\u0131 (taray\u0131c\u0131).<\/li>\n<li><code>$http_x_forwarded_for<\/code>: Ters proxy arkas\u0131ndaki ger\u00e7ek istemci IP adresi (e\u011fer ayarlanm\u0131\u015fsa).<\/li>\n<li><code>$request_time<\/code>: \u0130ste\u011fin i\u015flenmesi i\u00e7in ge\u00e7en s\u00fcre (saniye cinsinden).<\/li>\n<li><code>$upstream_response_time<\/code>: Yukar\u0131 ak\u0131\u015f sunucusundan (proxy hedefi) yan\u0131t almak i\u00e7in ge\u00e7en s\u00fcre.<\/li>\n<\/ul>\n<h3>Ko\u015fullu G\u00fcnl\u00fck Kayd\u0131<\/h3>\n<p>Bazen belirli istekleri (\u00f6rne\u011fin, sa\u011fl\u0131k kontrolleri veya bot taramalar\u0131) g\u00fcnl\u00fcklemek istemeyebilirsiniz. Nginx&#8217;in <code>map<\/code> direktifi ve <code>if<\/code> ko\u015fulu ile bunu yapabilirsiniz. <code>map<\/code> direktifi <code>http<\/code> blo\u011fu i\u00e7inde tan\u0131mlanmal\u0131d\u0131r.<br \/>\n\u00d6rnek: Sa\u011fl\u0131k kontrol\u00fc isteklerini g\u00fcnl\u00fc\u011fe kaydetmeme.<\/p>\n<pre><code>http {\n    # ...\n    map $request_uri $loggable {\n        \/health_check 0; # \/health_check yoluna gelen istekleri g\u00fcnl\u00fc\u011fe kaydetme\n        default 1;       # Di\u011fer t\u00fcm istekleri kaydet\n    }\n\n    access_log \/var\/log\/nginx\/access.log main if=$loggable;\n    # ...\n}<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>$request_uri<\/code> de\u011fi\u015fkenine g\u00f6re <code>$loggable<\/code> de\u011fi\u015fkeni 0 veya 1 de\u011ferini al\u0131r. <code>access_log<\/code> direktifindeki <code>if=$loggable<\/code> ko\u015fulu, <code>$loggable<\/code> 0 oldu\u011funda g\u00fcnl\u00fc\u011f\u00fc atlar.<\/p>\n<h3>Syslog ile Uzak G\u00fcnl\u00fck Kayd\u0131<\/h3>\n<p>G\u00fcnl\u00fckleri merkezi bir Syslog sunucusuna g\u00f6ndermek i\u00e7in <code>access_log<\/code> ve <code>error_log<\/code> direktiflerinde <code>syslog:<\/code> \u00f6nekini kullanabilirsiniz.<br \/>\n\u00d6rnek: G\u00fcnl\u00fckleri uzak bir Syslog sunucusuna g\u00f6nderme.<\/p>\n<pre><code>http {\n    # ...\n    access_log syslog:server=192.168.1.10:514,facility=local7,tag=nginx,severity=info main;\n    error_log syslog:server=192.168.1.10:514,facility=local7,tag=nginx_error,severity=error;\n    # ...\n}<\/code><\/pre>\n<p>A\u00e7\u0131klamalar:<\/p>\n<ul>\n<li><code>server=192.168.1.10:514<\/code>: Syslog sunucusunun IP adresi ve portu.<\/li>\n<li><code>facility=local7<\/code>: Syslog tesis kodu (uygulama t\u00fcr\u00fcn\u00fc belirtir, 0-7 aras\u0131 yerel kullan\u0131m i\u00e7in ayr\u0131lm\u0131\u015ft\u0131r).<\/li>\n<li><code>tag=nginx<\/code>: G\u00fcnl\u00fck mesajlar\u0131na eklenecek bir etiket.<\/li>\n<li><code>severity=info<\/code> \/ <code>severity=error<\/code>: G\u00fcnl\u00fck mesaj\u0131n\u0131n minimum ciddiyet seviyesi.<\/li>\n<\/ul>\n<p>Uzak Syslog sunucusunda (\u00f6rne\u011fin 192.168.1.10) rsyslog veya syslog-ng gibi bir Syslog daemon&#8217;unun kurulu ve gelen UDP (veya TCP) ba\u011flant\u0131lar\u0131n\u0131 dinleyecek \u015fekilde yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekir.<\/p>\n<h3>Yap\u0131land\u0131rma De\u011fi\u015fikliklerini Uygulama<\/h3>\n<p>Herhangi bir Nginx yap\u0131land\u0131rma de\u011fi\u015fikli\u011finden sonra, yap\u0131land\u0131rma dosyas\u0131n\u0131n s\u00f6zdizimini kontrol etmeli ve Nginx&#8217;i yeniden y\u00fcklemelisiniz:<\/p>\n<pre><code>sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n<p><code>nginx -t<\/code> komutu, yap\u0131land\u0131rma dosyas\u0131nda herhangi bir hata olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. Hata yoksa, <code>sudo systemctl reload nginx<\/code> komutu Nginx&#8217;i kesinti olmadan yeni yap\u0131land\u0131rmay\u0131 uygulamaya zorlar.<\/p>\n<h2>Log Y\u00f6netimi ve Rotasyonu<\/h2>\n<p>G\u00fcnl\u00fck dosyalar\u0131 zamanla b\u00fcy\u00fcyerek disk alan\u0131n\u0131 t\u00fcketebilir ve sunucu performans\u0131n\u0131 etkileyebilir. Bu nedenle, g\u00fcnl\u00fck rotasyonu (log rotation) kritik \u00f6neme sahiptir. Linux sistemlerinde bu g\u00f6rev i\u00e7in <code>logrotate<\/code> arac\u0131 kullan\u0131l\u0131r.<\/p>\n<h3>Logrotate Kullan\u0131m\u0131<\/h3>\n<p><code>logrotate<\/code>, g\u00fcnl\u00fck dosyalar\u0131n\u0131 belirli aral\u0131klarla (g\u00fcnl\u00fck, haftal\u0131k, ayl\u0131k) d\u00f6nd\u00fcren, s\u0131k\u0131\u015ft\u0131ran ve eski dosyalar\u0131 silen bir sistem yard\u0131mc\u0131 program\u0131d\u0131r. Nginx, genellikle <code>\/etc\/logrotate.d\/nginx<\/code> adresinde kendi <code>logrotate<\/code> yap\u0131land\u0131rma dosyas\u0131yla birlikte gelir.<\/p>\n<p>Varsay\u0131lan Nginx logrotate yap\u0131land\u0131rmas\u0131 (\u00f6rnek):<\/p>\n<pre><code>\/var\/log\/nginx\/*.log {\n    daily\n    missingok\n    rotate 52\n    compress\n    delaycompress\n    notifempty\n    create 0640 nginx adm\n    postrotate\n        if [ -f \/var\/run\/nginx.pid ]; then\n            kill -USR1 <code>cat \/var\/run\/nginx.pid<\/code>\n        fi\n    endscript\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma dosyas\u0131n\u0131n a\u00e7\u0131klamas\u0131:<\/p>\n<ul>\n<li><code>\/var\/log\/nginx\/*.log<\/code>: Nginx&#8217;in bu dizindeki t\u00fcm <code>.log<\/code> uzant\u0131l\u0131 dosyalar\u0131n\u0131 d\u00f6nd\u00fcr.<\/li>\n<li><code>daily<\/code>: G\u00fcnl\u00fck olarak d\u00f6nd\u00fcr.<\/li>\n<li><code>missingok<\/code>: G\u00fcnl\u00fck dosyas\u0131 eksikse hata verme.<\/li>\n<li><code>rotate 52<\/code>: 52 eski g\u00fcnl\u00fck dosyas\u0131n\u0131 sakla (yakla\u015f\u0131k bir y\u0131l).<\/li>\n<li><code>compress<\/code>: D\u00f6nd\u00fcr\u00fclen g\u00fcnl\u00fck dosyalar\u0131n\u0131 s\u0131k\u0131\u015ft\u0131r (gzip ile).<\/li>\n<li><code>delaycompress<\/code>: Bir \u00f6nceki d\u00f6nd\u00fcr\u00fclen g\u00fcnl\u00fck dosyas\u0131n\u0131 s\u0131k\u0131\u015ft\u0131r, en sonuncuyu s\u0131k\u0131\u015ft\u0131rma.<\/li>\n<li><code>notifempty<\/code>: G\u00fcnl\u00fck dosyas\u0131 bo\u015fsa d\u00f6nd\u00fcrme.<\/li>\n<li><code>create 0640 nginx adm<\/code>: Yeni g\u00fcnl\u00fck dosyas\u0131n\u0131 <code>nginx<\/code> kullan\u0131c\u0131s\u0131 ve <code>adm<\/code> grubu ile 0640 izinleriyle olu\u015ftur.<\/li>\n<li><code>postrotate<\/code>\/<code>endscript<\/code>: G\u00fcnl\u00fck dosyas\u0131 d\u00f6nd\u00fcr\u00fcld\u00fckten sonra \u00e7al\u0131\u015ft\u0131r\u0131lacak komutlar. Burada Nginx&#8217;e <code>USR1<\/code> sinyali g\u00f6nderilerek g\u00fcnl\u00fck dosyalar\u0131n\u0131 yeniden a\u00e7mas\u0131 sa\u011flan\u0131r (<code>nginx -s reopen<\/code> komutunun e\u015fde\u011feri). Bu, Nginx&#8217;in yeni g\u00fcnl\u00fck dosyalar\u0131na yazmaya ba\u015flamas\u0131n\u0131 sa\u011flar.<\/li>\n<\/ul>\n<h4>Logrotate Yap\u0131land\u0131rmas\u0131n\u0131 \u00d6zelle\u015ftirme<\/h4>\n<p>\u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re bu dosyay\u0131 d\u00fczenleyebilirsiniz. \u00d6rne\u011fin, g\u00fcnl\u00fckleri haftal\u0131k d\u00f6nd\u00fcrmek i\u00e7in <code>daily<\/code> yerine <code>weekly<\/code> kullanabilirsiniz.<\/p>\n<pre><code>sudo vi \/etc\/logrotate.d\/nginx<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra <code>logrotate<\/code> otomatik olarak \u00e7al\u0131\u015facakt\u0131r (genellikle <code>\/etc\/cron.daily\/logrotate<\/code> beti\u011fi taraf\u0131ndan tetiklenir). Manuel olarak \u00e7al\u0131\u015ft\u0131rmak i\u00e7in:<\/p>\n<pre><code>sudo logrotate -f \/etc\/logrotate.d\/nginx<\/code><\/pre>\n<h3>Log Dosyalar\u0131n\u0131 Gzip ile S\u0131k\u0131\u015ft\u0131rma<\/h3>\n<p><code>logrotate<\/code> yap\u0131land\u0131rmas\u0131ndaki <code>compress<\/code> ve <code>delaycompress<\/code> direktifleri, d\u00f6nd\u00fcr\u00fclen g\u00fcnl\u00fck dosyalar\u0131n\u0131 otomatik olarak Gzip format\u0131nda s\u0131k\u0131\u015ft\u0131r\u0131r. Bu, disk alan\u0131ndan \u00f6nemli \u00f6l\u00e7\u00fcde tasarruf sa\u011flar.<\/p>\n<h2>Nginx Loglar\u0131n\u0131 Analiz Etme<\/h2>\n<p>G\u00fcnl\u00fck dosyalar\u0131n\u0131 olu\u015fturmak sadece ilk ad\u0131md\u0131r. Bu verilerden anlaml\u0131 bilgiler \u00e7\u0131karmak i\u00e7in analiz etmek gerekir.<\/p>\n<h3>Temel Komut Sat\u0131r\u0131 Ara\u00e7lar\u0131<\/h3>\n<p>G\u00fcnl\u00fck dosyalar\u0131n\u0131 incelemek i\u00e7in \u00e7e\u015fitli Linux komut sat\u0131r\u0131 ara\u00e7lar\u0131 kullan\u0131labilir:<\/p>\n<ul>\n<li><code>tail -f \/var\/log\/nginx\/access.log<\/code>: G\u00fcnl\u00fck dosyas\u0131n\u0131n sonunu ger\u00e7ek zamanl\u0131 olarak izler.<\/li>\n<li><code>grep \"404\" \/var\/log\/nginx\/access.log<\/code>: Eri\u015fim g\u00fcnl\u00fcklerinde &#8220;404 Not Found&#8221; hatalar\u0131n\u0131 arar.<\/li>\n<li><code>awk '{print $1}' \/var\/log\/nginx\/access.log | sort | uniq -c | sort -nr<\/code>: En \u00e7ok istek yapan IP adreslerini listeler.<\/li>\n<li><code>less \/var\/log\/nginx\/error.log<\/code>: Hata g\u00fcnl\u00fck dosyas\u0131n\u0131 sayfa sayfa okur.<\/li>\n<\/ul>\n<h3>Geli\u015fmi\u015f Analiz Ara\u00e7lar\u0131<\/h3>\n<p>B\u00fcy\u00fck \u00f6l\u00e7ekli g\u00fcnl\u00fck verileri i\u00e7in \u00f6zel analiz ara\u00e7lar\u0131 \u00e7ok daha etkilidir:<\/p>\n<ul>\n<li><strong>GoAccess<\/strong>: Ger\u00e7ek zamanl\u0131, terminal tabanl\u0131 bir web g\u00fcnl\u00fck analizcidir. G\u00fcnl\u00fckleri g\u00f6rselle\u015ftirmek ve h\u0131zl\u0131 \u00f6zetler almak i\u00e7in m\u00fckemmeldir.\n<pre><code>sudo yum install goaccess -y\ngoaccess -f \/var\/log\/nginx\/access.log -o report.html --log-format=COMBINED<\/code><\/pre>\n<\/li>\n<li><strong>ELK Stack (Elasticsearch, Logstash, Kibana)<\/strong>: Merkezi g\u00fcnl\u00fck y\u00f6netimi, depolama, arama ve g\u00f6rselle\u015ftirme i\u00e7in g\u00fc\u00e7l\u00fc bir platformdur. Logstash g\u00fcnl\u00fckleri toplar ve ayr\u0131\u015ft\u0131r\u0131r, Elasticsearch depolar ve indeksler, Kibana ise verileri g\u00f6rselle\u015ftirir.<\/li>\n<li><strong>Splunk<\/strong>: Ticari bir g\u00fcnl\u00fck y\u00f6netimi ve analiz platformudur. G\u00fc\u00e7l\u00fc arama, raporlama ve uyar\u0131 yetenekleri sunar.<\/li>\n<li><strong>Grafana + Loki<\/strong>: Prometheus ve Grafana ekosisteminde, Loki g\u00fcnl\u00fckleri depolamak ve Grafana \u00fczerinden sorgulamak i\u00e7in hafif bir se\u00e7enektir.<\/li>\n<\/ul>\n<p>Bu ara\u00e7lar, Nginx g\u00fcnl\u00fcklerinden elde edilen verileri daha derinlemesine analiz etmenize, e\u011filimleri belirlemenize ve potansiyel sorunlar\u0131 proaktif olarak tespit etmenize olanak tan\u0131r.<\/p>\n<h2>Performans ve G\u00fcvenlik Etkileri<\/h2>\n<p>G\u00fcnl\u00fck kayd\u0131, sunucu y\u00f6netimi i\u00e7in hayati \u00f6neme sahip olsa da, yanl\u0131\u015f yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda performans ve g\u00fcvenlik \u00fczerinde olumsuz etkileri olabilir.<\/p>\n<h3>Performans<\/h3>\n<ul>\n<li><strong>Disk G\/\u00c7 Y\u00fck\u00fc<\/strong>: \u00c7ok detayl\u0131 ve s\u0131k g\u00fcnl\u00fck kayd\u0131, \u00f6zellikle y\u00fcksek trafikli sitelerde disk G\/\u00c7 (giri\u015f\/\u00e7\u0131k\u0131\u015f) y\u00fck\u00fcn\u00fc art\u0131rabilir. Bu, disk performans\u0131n\u0131 d\u00fc\u015f\u00fcrerek genel sunucu yan\u0131t s\u00fcresini etkileyebilir.<\/li>\n<li><strong>CPU Kullan\u0131m\u0131<\/strong>: G\u00fcnl\u00fck dosyalar\u0131na yazma ve \u00f6zellikle s\u0131k\u0131\u015ft\u0131rma i\u015flemleri CPU kaynaklar\u0131n\u0131 t\u00fcketebilir.<\/li>\n<li><strong>\u00c7\u00f6z\u00fcmler<\/strong>:\n<ul>\n<li>Yaln\u0131zca gerekli bilgileri g\u00fcnl\u00fc\u011fe kaydedin. \u00d6zel <code>log_format<\/code> kullanarak gereksiz de\u011fi\u015fkenleri \u00e7\u0131kar\u0131n.<\/li>\n<li>Ko\u015fullu g\u00fcnl\u00fck kayd\u0131 ile gereksiz istekleri (\u00f6rne\u011fin sa\u011fl\u0131k kontrolleri) atlay\u0131n.<\/li>\n<li>Syslog ile uzak g\u00fcnl\u00fck kayd\u0131 yaparak disk G\/\u00c7 y\u00fck\u00fcn\u00fc Nginx sunucusundan ba\u015fka bir sunucuya aktar\u0131n.<\/li>\n<li>Nginx&#8217;in <code>access_log<\/code> direktifinde <code>buffer<\/code> veya <code>flush<\/code> parametrelerini kullanarak g\u00fcnl\u00fck yazma i\u015flemlerini optimize edin. \u00d6rne\u011fin: <code>access_log \/var\/log\/nginx\/access.log main buffer=16k;<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>G\u00fcvenlik<\/h3>\n<ul>\n<li><strong>Sald\u0131r\u0131 Tespiti<\/strong>: G\u00fcnl\u00fckler, brute-force sald\u0131r\u0131lar\u0131, SQL enjeksiyon denemeleri, XSS sald\u0131r\u0131lar\u0131 ve di\u011fer k\u00f6t\u00fc niyetli etkinlikleri tespit etmek i\u00e7in ilk savunma hatt\u0131d\u0131r. Anormal istek kal\u0131plar\u0131n\u0131 veya hata mesajlar\u0131n\u0131 izlemek, potansiyel sald\u0131r\u0131lar\u0131 erken a\u015famada belirlemenize yard\u0131mc\u0131 olur.<\/li>\n<li><strong>Adli Bili\u015fim<\/strong>: Bir g\u00fcvenlik ihlali durumunda, g\u00fcnl\u00fckler olay\u0131n nas\u0131l ger\u00e7ekle\u015fti\u011fini anlamak ve sald\u0131rgan\u0131n izini s\u00fcrmek i\u00e7in kritik adli kan\u0131tlar sa\u011flar.<\/li>\n<li><strong>Log Dosyas\u0131 G\u00fcvenli\u011fi<\/strong>: G\u00fcnl\u00fck dosyalar\u0131 hassas bilgiler i\u00e7erebilir. Bu nedenle, g\u00fcnl\u00fck dosyalar\u0131n\u0131n do\u011fru izinlere sahip oldu\u011fundan ve yetkisiz eri\u015fime kar\u015f\u0131 korundu\u011fundan emin olun. Genellikle <code>root<\/code> veya <code>nginx<\/code> kullan\u0131c\u0131s\u0131 ve <code>adm<\/code> grubu taraf\u0131ndan okunabilir olmalar\u0131 yeterlidir.\n<pre><code>sudo chmod 640 \/var\/log\/nginx\/*.log\nsudo chown nginx:adm \/var\/log\/nginx\/*.log<\/code><\/pre>\n<\/li>\n<li><strong>Merkezi G\u00fcnl\u00fck Y\u00f6netimi<\/strong>: G\u00fcnl\u00fckleri merkezi bir sunucuya g\u00f6ndermek (Syslog veya ELK Stack gibi), g\u00fcnl\u00fcklerin g\u00fcvenli\u011fini art\u0131r\u0131r. Bir sald\u0131rgan\u0131n ana sunucuya eri\u015fmesi durumunda bile, g\u00fcnl\u00fckler ayr\u0131 bir yerde g\u00fcvende kal\u0131r.<\/li>\n<\/ul>\n<h2>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<h3>Nginx&#8217;in varsay\u0131lan g\u00fcnl\u00fck mod\u00fcl\u00fc nedir?<\/h3>\n<p>Nginx&#8217;in varsay\u0131lan eri\u015fim g\u00fcnl\u00fck kayd\u0131 i\u00e7in <code>ngx_http_log_module<\/code> ve hata g\u00fcnl\u00fck kayd\u0131 i\u00e7in <code>ngx_http_core_module<\/code> kullan\u0131l\u0131r. Bu mod\u00fcller, Nginx&#8217;in standart derlemesinin bir par\u00e7as\u0131d\u0131r ve \u00f6zel bir &#8220;ekleme&#8221; i\u015flemi gerektirmez.<\/p>\n<h3>G\u00fcnl\u00fck seviyeleri ne anlama geliyor?<\/h3>\n<p>Hata g\u00fcnl\u00fcklerindeki seviyeler (debug, info, notice, warn, error, crit, alert, emerg), bir olay\u0131n ciddiyetini belirtir. <code>debug<\/code> en detayl\u0131yken, <code>emerg<\/code> en kritik sistem ar\u0131zalar\u0131n\u0131 g\u00f6sterir. \u00dcretim ortamlar\u0131nda genellikle <code>warn<\/code> veya <code>error<\/code> seviyesi kullan\u0131l\u0131r.<\/p>\n<h3>G\u00fcnl\u00fckleri neden d\u00f6nd\u00fcrmeliyim?<\/h3>\n<p>G\u00fcnl\u00fck dosyalar\u0131 zamanla \u00e7ok b\u00fcy\u00fcyerek disk alan\u0131n\u0131 t\u00fcketebilir ve sunucu performans\u0131n\u0131 olumsuz etkileyebilir. G\u00fcnl\u00fck rotasyonu, eski g\u00fcnl\u00fckleri s\u0131k\u0131\u015ft\u0131rarak ve silerek disk alan\u0131n\u0131 y\u00f6netmenize yard\u0131mc\u0131 olur.<\/p>\n<h3>Nginx loglar\u0131 nerede bulunur?<\/h3>\n<p>Varsay\u0131lan olarak, eri\u015fim g\u00fcnl\u00fckleri <code>\/var\/log\/nginx\/access.log<\/code> ve hata g\u00fcnl\u00fckleri <code>\/var\/log\/nginx\/error.log<\/code> adresinde bulunur. Ancak bu yollar Nginx yap\u0131land\u0131rma dosyalar\u0131nda (<code>nginx.conf<\/code> veya <code>conf.d\/*.conf<\/code>) de\u011fi\u015ftirilebilir.<\/p>\n<h3>Nginx loglar\u0131n\u0131 uzaktan nas\u0131l g\u00f6nderebilirim?<\/h3>\n<p>Nginx&#8217;in <code>access_log<\/code> ve <code>error_log<\/code> direktiflerinde <code>syslog:<\/code> \u00f6nekini kullanarak g\u00fcnl\u00fckleri Syslog protokol\u00fc \u00fczerinden uzak bir sunucuya g\u00f6nderebilirsiniz.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Nginx&#8217;in g\u00fcnl\u00fck kayd\u0131 yetenekleri, bir web sunucusunun sa\u011fl\u0131kl\u0131 ve g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flaman\u0131n temelidir. CentOS 7 \u00fczerinde Nginx kullan\u0131rken, <code>ngx_http_log_module<\/code> ve <code>ngx_http_core_module<\/code> gibi dahili mod\u00fcllerin sundu\u011fu esnekli\u011fi kullanarak eri\u015fim ve hata g\u00fcnl\u00fcklerinizi kapsaml\u0131 bir \u015fekilde yap\u0131land\u0131rabilirsiniz. \u00d6zel g\u00fcnl\u00fck formatlar\u0131 olu\u015fturmak, ko\u015fullu g\u00fcnl\u00fck kayd\u0131 yapmak ve Syslog ile uzak g\u00fcnl\u00fck y\u00f6netimi entegrasyonu, g\u00fcnl\u00fck kayd\u0131 stratejinizi daha da g\u00fc\u00e7lendirir.<\/p>\n<p>Unutmay\u0131n ki g\u00fcnl\u00fck y\u00f6netimi, yaln\u0131zca g\u00fcnl\u00fckleri olu\u015fturmakla kalmaz, ayn\u0131 zamanda <code>logrotate<\/code> ile bunlar\u0131 d\u00fczenli olarak d\u00f6nd\u00fcrmeyi ve GoAccess, ELK Stack gibi ara\u00e7larla analiz etmeyi de i\u00e7erir. Do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f g\u00fcnl\u00fckler, performans sorunlar\u0131n\u0131 gidermekten g\u00fcvenlik ihlallerini tespit etmeye kadar bir\u00e7ok senaryoda size yol g\u00f6sterecek de\u011ferli bir kaynakt\u0131r. Bu rehberdeki ad\u0131mlar\u0131 izleyerek, Nginx g\u00fcnl\u00fck kayd\u0131 altyap\u0131n\u0131z\u0131 CentOS 7 \u00fczerinde g\u00fc\u00e7l\u00fc, esnek ve y\u00f6netilebilir hale getirebilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Nginx&#8217;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber\nGiri\u015f\nWeb sunucular\u0131, modern internet altyap\u0131s\u0131n\u0131n temel ta\u015flar\u0131d\u0131r ve N","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[241],"tags":[],"class_list":{"0":"post-31934","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Nginx&#039;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nginx&#039;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"Nginx&#039;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber Giri\u015f Web sunucular\u0131, modern internet altyap\u0131s\u0131n\u0131n temel ta\u015flar\u0131d\u0131r ve N\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-15T15:41:14+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Nginx&#8217;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2025-10-15T15:41:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/\"},\"wordCount\":3320,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/\",\"name\":\"Nginx'e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-15T15:41:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nginx&#8217;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Nginx'e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Nginx'e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber","og_description":"Nginx'e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber Giri\u015f Web sunucular\u0131, modern internet altyap\u0131s\u0131n\u0131n temel ta\u015flar\u0131d\u0131r ve N","og_url":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-15T15:41:14+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Nginx&#8217;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber","datePublished":"2025-10-15T15:41:14+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/"},"wordCount":3320,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/","name":"Nginx'e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-15T15:41:14+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nginxe-log-modulu-ekleme-centos-7-uzerinde-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Nginx&#8217;e Log Mod\u00fcl\u00fc Ekleme: CentOS 7 \u00dczerinde Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31934","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=31934"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31934\/revisions"}],"predecessor-version":[{"id":31935,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31934\/revisions\/31935"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31934"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}