Dmesg Nedir? Linux Kernel Logları Nasıl İncelenir?

Dmesg nedir? sorusunun en kısa cevabı, Linux kernel tarafından oluşturulan mesajları görüntülemek için kullanılan komut satırı aracıdır.
Linux sunucularda işletim sistemi açılırken donanım algılama, sürücü yükleme, disk bağlantıları, ağ arayüzleri, USB cihazları, bellek problemleri ve çeşitli kernel olayları hakkında çok sayıda mesaj oluşturulur.
Bu mesajların önemli bir bölümüne dmesg komutu üzerinden ulaşabilirsiniz.
Örneğin:
dmesgkomutu kernel mesajlarını terminal üzerinde görüntüler.
Özellikle bir VDS sunucuda:
- Disk hatası
- NVMe veya SSD problemi
- Network kartı problemi
- Kernel uyarısı
- USB cihaz problemi
- OOM Killer olayı
- Dosya sistemi problemi
- Sürücü hatası
- Boot sırasında oluşan hata
gibi durumları araştırırken dmesg oldukça kullanışlıdır.
💡 Kısa cevap: Dmesg, Linux kernel mesajlarını görüntüleyerek işletim sistemi seviyesindeki sorunları analiz etmenizi sağlayan temel Linux araçlarından biridir.
⚙️ Dmesg Nedir Nasıl Çalışır?
Linux kernel, sistem çalışırken çok sayıda olay hakkında mesaj üretir.
Kabaca süreç şu şekilde düşünülebilir:
Donanım / Sürücü / Kernel Olayı
↓
Linux Kernel
↓
Kernel Mesajları
↓
dmesg
↓
Sistem AnaliziÖrneğin sistem bir NVMe diski algıladığında kernel bu cihazla ilgili mesaj oluşturabilir.
Benzer şekilde bir network kartı başlatıldığında veya bir donanım sürücüsü hata verdiğinde kernel tarafında ilgili kayıtlar oluşabilir.
dmesg ise bu kernel mesajlarını okuyup terminal üzerinden incelemenizi sağlar.

🟢 En Temel Dmesg Nedir Komutu
En basit kullanım:
dmesgBu komut mevcut kernel mesajlarını görüntüler.
Ancak yoğun çalışan bir Linux sunucuda çıktı oldukça uzun olabilir.
Bu nedenle grep, tail, less ve benzeri araçlarla birlikte kullanmak çok daha pratiktir.
Örneğin:
dmesg | lessile mesajları sayfa sayfa inceleyebilirsiniz.
Son mesajları görmek için:
dmesg | tailve daha fazla kayıt görmek için:
dmesg | tail -n 50kullanabilirsiniz.
🕒 Dmesg Nedir Tarih ve Saat Bilgisini Nasıl Gösterir?
Dmesg çıktısındaki zaman bilgileri ilk bakışta biraz kafa karıştırabilir.
Daha okunabilir zaman bilgisi için:
dmesg -Tkullanılabilir.
Örneğin:
[Sun Sep 27 10:12:31 2026] nvme nvme0: detectedgibi daha anlaşılır bir zaman bilgisi elde edebilirsiniz.
Bu özellikle hata analizi sırasında önemlidir.
Örneğin bir servisin saat 10:15 civarında hata verdiğini biliyorsanız kernel mesajlarını aynı zaman aralığıyla karşılaştırabilirsiniz.
🔎 Dmesg ile Hata Mesajları Nasıl Bulunur?
Tüm kernel mesajlarını okumak yerine yalnızca hata içeren kayıtları filtrelemek daha pratiktir.
Örneğin:
dmesg | grep -i errorve:
dmesg -T | grep -i errorkullanılabilir.
Warning kayıtlarını bulmak için:
dmesg | grep -i warningkullanabilirsiniz.
Birden fazla kelimeyi aynı anda aramak için:
dmesg | grep -Ei "error|fail|warning"oldukça kullanışlıdır.
Bu yöntem özellikle uzun kernel çıktılarında sorunlu kayıtları hızlıca bulmanızı sağlar.
🚨 Dmesg Nedir ile OOM Killer Nasıl Kontrol Edilir?
Dmesg’in en önemli kullanım alanlarından biri OOM Killer olaylarını araştırmaktır.
Linux sistemde RAM kaynakları kritik seviyeye ulaştığında kernel bir process’i sonlandırabilir.
Böyle bir durumdan şüpheleniyorsanız:
dmesg | grep -i oomkomutunu kullanabilirsiniz.
Daha geniş bir arama için:
dmesg | grep -Ei "out of memory|oom|killed process"kullanılabilir.
Örneğin:
Out of memory: Killed process 1234 (mysqld)benzeri bir kayıt görürseniz kernel’in bellek yetersizliği nedeniyle bir process’i sonlandırmış olabileceğini anlayabilirsiniz.
Bu noktada yalnızca dmesg çıktısına bakmak yerine RAM kullanımını da kontrol etmek gerekir:
free -hOOM Killer’ın çalışma mantığını ayrıntılı şekilde incelemek için OOM Killer Nedir? Linux RAM Bittiğinde Ne Olur?rehberimizi de kullanabilirsiniz.
💾 Dmesg Nedir ile Disk Hataları Nasıl Bulunur?
Sunucuda disk kaynaklı bir problem olduğunu düşünüyorsanız dmesg oldukça faydalıdır.
Örneğin:
dmesg | grep -Ei "disk|error|fail"veya:
dmesg | grep -Ei "ata|sda|nvme"kullanılabilir.
NVMe disklerle ilgili mesajları doğrudan:
dmesg | grep -i nvmeile filtreleyebilirsiniz.
SATA disklerde ise:
dmesg | grep -Ei "ata|sda|sdb"gibi filtreler kullanılabilir.
Örneğin aşağıdaki tarzda bir kayıt dikkat gerektirebilir:
I/O errorveya:
resetting controllerAncak tek bir hata mesajından doğrudan disk arızası sonucu çıkarmak doğru değildir.
Kernel mesajının bağlamı, tekrar sıklığı ve fiziksel/sanal depolama altyapısı birlikte değerlendirilmelidir.
Disk performansı ile ilgili daha kapsamlı analiz için VDS Disk I/O Nedir? Sunucuda IOPS ve Disk Performansı Rehberi içeriği de yardımcı olacaktır.
💽 NVMe ve SSD Problemlerinde Dmesg Nedir
Özellikle NVMe tabanlı VDS sunucularda kernel mesajları depolama problemlerini araştırmak için kullanılabilir.
Örneğin:
dmesg -T | grep -i nvmekomutu NVMe ile ilgili kernel kayıtlarını filtreler.
Şunlara benzer mesajlar görülebilir:
nvme0: detectedveya hata durumlarında:
I/O errorcontroller resetgibi kayıtlar oluşabilir.
Burada önemli olan nokta, dmesg çıktısının tanı koyan tek araç olmadığıdır.
Disk performansını değerlendirirken IOPS, latency, throughput ve I/O wait gibi metrikler de birlikte incelenmelidir.
🌐 Dmesg Nedir ile Network Hataları Nasıl Bulunur?
Network kartı veya network sürücüsüyle ilgili problemleri de dmesg üzerinden araştırabilirsiniz.
Örneğin:
dmesg | grep -Ei "network|ethernet|link"ve:
dmesg | grep -Ei "eth|ens|enp"kullanılabilir.
Network interface’in durumuyla ilgili:
link is upveya:
link is downgibi mesajlarla karşılaşabilirsiniz.
Eğer network bağlantısı belirli aralıklarla kopuyorsa kernel mesajlarında interface veya sürücüyle ilgili ipuçları bulunabilir.
Ancak network problemlerinde dmesg yanında ip, ss, ping, mtr ve diğer network araçları da değerlendirilmelidir.
🔌 Dmesg Nedir ile USB Cihazları Nasıl Kontrol Edilir?
Linux’a USB cihaz bağlandığında kernel bunu algılayabilir.
USB mesajlarını görmek için:
dmesg | grep -i usbkullanabilirsiniz.
Örneğin yeni bir cihaz bağladığınızda:
dmesg -wkomutunu çalıştırıp ardından cihazı takarsanız oluşan kernel mesajlarını canlı olarak görebilirsiniz.
Bu yöntem özellikle:
- USB disk
- USB network adaptörü
- USB cihaz sürücüleri
- Harici donanımlar
için kullanışlıdır.
🔴 Dmesg Nedir ile Failed ve Error Kayıtları Nasıl Bulunur?
Hızlı bir hata taraması için:
dmesg -T | grep -Ei "error|failed|failure|warning"kullanabilirsiniz.
Ancak burada önemli bir ayrıntı var.
Her warning veya error kaydı kritik bir problem anlamına gelmez.
Örneğin bazı kernel bileşenleri normal çalışma sırasında uyarı mesajları oluşturabilir.
Bu nedenle:
error bulundu
↓
sistem kesin arızalışeklinde doğrudan sonuç çıkarmak doğru değildir.
Mesajın ne zaman oluştuğu, hangi bileşenle ilgili olduğu ve tekrar edip etmediği incelenmelidir.
🧠 Dmesg Nedir ile Journalctl Arasındaki Fark Nedir?
Burada Dmesg ve Journalctl sık sık birbirine karıştırılır.
dmesg temel olarak kernel ring buffer içerisindeki kernel mesajlarını görüntüler.
journalctl ise systemd-journald tarafından toplanan journal kayıtlarını incelemek için kullanılır.
Örneğin kernel loglarını journal üzerinden:
journalctl -kile görebilirsiniz.
Dmesg:
dmesgJournalctl:
journalctl -kşeklinde düşünülebilir.
Ancak bunlar tamamen aynı araç değildir.
journalctl ile tarih, servis, boot ve farklı filtreleme seçeneklerini kullanarak çok daha geniş bir journal analizi yapılabilir.
Linux loglarını ayrıntılı olarak incelemek için Journalctl Nedir? Linux Logları Nasıl İncelenir? rehberimizi kullanabilirsiniz.
⚙️ Dmesg Nedir ve Systemctl Birlikte Nasıl Kullanılır?
Bir Linux servisi çalışmıyorsa yalnızca:
systemctl status nginxçıktısına bakmak bazen yeterli olmayabilir.
Örneğin önce servisin durumunu kontrol edebilirsiniz:
systemctl status nginxArdından kernel tarafında bir problem olup olmadığını:
dmesg -T | tail -n 100ile inceleyebilirsiniz.
Servis loglarını ise:
journalctl -u nginxile kontrol edebilirsiniz.
Böylece:
Systemctl
↓
Servis durumu
Journalctl
↓
Servis logları
Dmesg
↓
Kernel / donanım mesajlarışeklinde üç farklı seviyeyi değerlendirmiş olursunuz.
Bu yaklaşım özellikle VDS üzerinde servislerin neden çalışmadığını araştırırken oldukça kullanışlıdır.
🐧 Dmesg Nedir ile Boot Logları Nasıl İncelenir?
Linux açılırken kernel çok sayıda mesaj üretir.
Sistem açıldıktan sonra:
dmesg -Tile bu mesajlar incelenebilir.
Örneğin:
dmesg -T | lesskomutu ile boot sırasında oluşan kernel mesajlarını sayfa sayfa okuyabilirsiniz.
Boot sırasında belirli bir donanım veya sürücü probleminden şüpheleniyorsanız:
dmesg -T | grep -Ei "error|fail|warning"oldukça kullanışlıdır.
Ancak modern systemd sistemlerinde geçmiş boot kayıtlarını incelemek için journalctl daha kapsamlı seçenekler sunabilir.
🔄 Önceki Boot Kayıtları Dmesg ile Görülebilir mi?
dmesg doğrudan geçmiş boot’ların tamamını arşivleyen bir günlük sistemi değildir.
Sistem yeniden başladığında önceki kernel mesajlarını dmesg üzerinden her zaman göremezsiniz.
Geçmiş boot kayıtları için systemd-journald kullanılan sistemlerde:
journalctl --list-bootsve belirli bir boot:
journalctl -b -1şeklinde incelenebilir.
Bu nedenle:
Anlık kernel mesajları → dmesg
Geçmiş ve kapsamlı journal analizi → journalctl
şeklinde düşünmek daha doğru olur.
👀 Dmesg Canlı Olarak Nasıl İzlenir?
Yeni kernel mesajlarını canlı takip etmek için:
dmesg -wkullanabilirsiniz.
Bu komut çalışırken sisteme yeni bir kernel mesajı geldiğinde terminalde görüntülenir.
Örneğin USB cihaz bağlama gibi bir işlem sırasında:
dmesg -wkomutunu çalıştırıp cihazı bağlayabilirsiniz.
Benzer şekilde belirli donanım olaylarını gerçek zamanlı takip etmek için de kullanılabilir.
İşiniz bittiğinde:
Ctrl + Cile çıkabilirsiniz.
🧹 Dmesg Çıktısı Nasıl Temizlenir?
Kernel ring buffer üzerinde bazı işlemler yapılabilir ancak production sunucularda kernel mesajlarını gelişigüzel temizlemek önerilmez.
Özellikle:
dmesg -Cgibi komutları kullanmadan önce bunun analiz sırasında ihtiyaç duyabileceğiniz mevcut kernel mesajlarını temizleyebileceğini bilmeniz gerekir.
Bir hata araştırıyorsanız önce mevcut kayıtları kaydetmek veya incelemek daha doğru olacaktır.
⚠️ Dikkat: Sorunu araştırmak amacıyla kullanılan logları teşhis tamamlanmadan temizlemek, daha sonra geriye dönük analiz yapmanızı zorlaştırabilir.
🔐 Dmesg Permission Denied Hatası Nedir?
Bazı Linux dağıtımlarında normal kullanıcı ile:
dmesgçalıştırıldığında:
dmesg: read kernel buffer failed: Operation not permittedbenzeri bir hata alınabilir.
Bu durumda komutu yetkili kullanıcıyla çalıştırmak gerekebilir:
sudo dmesgveya:
sudo dmesg -TBunun nedeni Linux’un kernel mesajlarına erişimi güvenlik nedeniyle kısıtlayabilmesidir.
📊 Dmesg VDS Sunucularda Neden Önemlidir?
VDS üzerinde bir uygulama çalışmadığında problem her zaman uygulamanın kendisinden kaynaklanmaz.
Örneğin:
Uygulama
↓
Servis
↓
Kernel
↓
Disk / Network / RAM / CPUzincirinin herhangi bir noktasında problem olabilir.
Dmesg özellikle kernel seviyesindeki olayları görmenize yardımcı olur.
Örneğin:
- Disk I/O hatası
- Network interface problemi
- OOM olayı
- Dosya sistemi uyarısı
- Sürücü problemi
- Kernel warning
- Donanım algılama sorunu
gibi olaylarda değerli bilgiler sağlayabilir.
Genel VDS performans analizi için VDS Performans Sorunu Nedir? Yavaşlayan Sunucuyu Analiz Etme rehberimizi de kullanabilirsiniz. Bu içerikte CPU, RAM, disk, I/O ve çalışan process’lerin birlikte analiz edilmesi anlatılıyor.
🧩 Dmesg ile Ulimit Arasında Nasıl Bir İlişki Var?
ulimit, process’lerin belirli kaynakları kullanabileceği limitleri yönetirken dmesg kernel seviyesinde oluşan mesajları incelemek için kullanılır.
Örneğin bir uygulama kaynak limitine takıldığında:
ulimit -nile açık dosya limitini kontrol edebilirsiniz.
Gerçek servis limitlerini ise:
cat /proc/PID/limitsüzerinden inceleyebilirsiniz.
Ayrıntılı resource limit analizi için ulimit Nedir? Linux Sunucuda Dosya ve Process Limitleri Rehberi içeriğimizi inceleyebilirsiniz.
Burada önemli nokta:
ulimit
↓
Process kaynak limitleri
dmesg
↓
Kernel mesajlarışeklinde iki farklı seviyeyi temsil etmeleridir.
🛠️ En Faydalı Dmesg Komutları
Günlük Linux sunucu yönetiminde en çok işinize yarayabilecek komutları tek yerde toplayalım.
Tüm kernel mesajları
dmesgOkunabilir tarih bilgisi
dmesg -TSon 50 mesaj
dmesg -T | tail -n 50Hata mesajları
dmesg -T | grep -i errorWarning mesajları
dmesg -T | grep -i warningOOM kayıtları
dmesg -T | grep -Ei "oom|out of memory|killed process"Disk mesajları
dmesg -T | grep -Ei "disk|ata|sda|sdb|nvme"Network mesajları
dmesg -T | grep -Ei "network|ethernet|link"USB mesajları
dmesg -T | grep -i usbCanlı takip
dmesg -wSayfa sayfa inceleme
dmesg -T | less🧪 Gerçek Bir Dmesg Analiz Senaryosu
Bir VDS üzerinde MySQL’in zaman zaman kapandığını düşünelim.
İlk olarak servis durumuna bakıyoruz:
systemctl status mysqlServisin neden durduğunu anlamak için:
journalctl -u mysqlile servis loglarını inceliyoruz.
Ardından kernel tarafında bellek problemi olup olmadığını kontrol ediyoruz:
dmesg -T | grep -Ei "oom|out of memory|killed process"Eğer:
Out of memory: Killed process 1234 (mysqld)gibi bir kayıt varsa problem doğrudan MySQL servisinin kendisinden kaynaklanmıyor olabilir.
Bu durumda:
free -hile RAM ve Swap durumunu,
ps aux --sort=-%mem | headile yüksek RAM tüketen process’leri incelemek gerekir.
Böylece:
Systemctl
↓
Servis çalışıyor mu?
Journalctl
↓
Servis ne hata veriyor?
Dmesg
↓
Kernel seviyesinde ne oldu?
free / ps
↓
Kaynak durumu nasıl?şeklinde sistematik bir teşhis süreci oluşturabiliriz.

⚠️ Dmesg Çıktısını Yorumlarken Nelere Dikkat Edilmeli?
Dmesg çok güçlü bir araçtır ancak çıktıyı doğru yorumlamak gerekir.
1. Her error kritik değildir
Kernel çıktısında bulunan her error kaydı fiziksel donanım arızası anlamına gelmez.
2. Tek bir mesaja bakmayın
Aynı olayla ilişkili önceki ve sonraki mesajları da inceleyin.
3. Zaman bilgisini kontrol edin
Sorun ne zaman başladıysa o zamana yakın kernel kayıtlarına odaklanın.
4. Diğer araçlarla doğrulayın
Dmesg çıktısını:
journalctl
systemctl
free
vmstat
iostatgibi araçlarla desteklemek daha sağlıklı sonuç verir.
5. Sanal sunucularda donanım mesajlarını doğru yorumlayın
VDS üzerinde fiziksel donanım doğrudan size ait olmayabilir. Bu nedenle bazı kernel mesajları sanallaştırma katmanıyla ilişkili olabilir.
❓ Sıkça Sorulan Sorular
Dmesg nedir?
Dmesg, Linux kernel tarafından oluşturulan mesajları görüntülemek için kullanılan komut satırı aracıdır.
Dmesg ne işe yarar?
Kernel, donanım, sürücü, disk, network, OOM ve çeşitli sistem olaylarını analiz etmek için kullanılır.
Dmesg nasıl çalıştırılır?
En temel kullanım:
dmesgşeklindedir. Daha okunabilir zaman bilgisi için dmesg -T kullanılabilir.
Dmesg ile OOM Killer bulunur mu?
Evet. Örneğin:
dmesg -T | grep -Ei "oom|out of memory|killed process"komutuyla ilgili kernel mesajları aranabilir.
Dmesg ile disk hatası bulunur mu?
Evet. Disk ve depolama ile ilgili kernel mesajları örneğin:
dmesg -T | grep -Ei "disk|ata|nvme|i/o error"şeklinde filtrelenebilir.
Dmesg ve Journalctl arasındaki fark nedir?
Dmesg ağırlıklı olarak kernel mesajlarını görüntüler. Journalctl ise systemd-journald tarafından toplanan sistem ve servis günlüklerini daha kapsamlı şekilde filtrelemek için kullanılır.
Dmesg canlı olarak izlenebilir mi?
Evet.
dmesg -wkomutu yeni kernel mesajlarını canlı olarak takip etmenizi sağlar.
Dmesg neden Permission Denied veriyor?
Bazı Linux sistemlerinde kernel mesajlarına normal kullanıcı erişimi sınırlandırılabilir. Bu durumda:
sudo dmesgkullanılabilir.
Dmesg çıktısı neden çok uzun?
Linux kernel çalışırken çok sayıda olay hakkında mesaj oluşturabilir. Bu nedenle grep, tail ve less gibi araçlarla çıktıyı filtrelemek daha pratiktir.
🎯 Sonuç
Dmesg nedir? sorusunun cevabı yalnızca bir Linux komutundan ibaret değildir. Dmesg, Linux kernel seviyesinde meydana gelen olayları inceleyerek sunucuda yaşanan birçok problemin kaynağına ulaşmanıza yardımcı olan önemli bir sistem yönetim aracıdır.
Özellikle VDS sunucularda:
- 🧠 OOM Killer
- 💾 Disk ve I/O problemleri
- 🌐 Network sorunları
- 🔌 Donanım ve sürücü problemleri
- 🐧 Kernel mesajları
- 🚨 Sistem uyarıları
- ⚙️ Servis problemlerinin kernel tarafı
gibi durumlarda dmesg oldukça değerlidir.
Ancak en sağlıklı analiz, tek başına dmesg çıktısına bakmak yerine Systemctl + Journalctl + Dmesg + performans araçlarını birlikte kullanmaktır.
Örneğin bir servis çalışmıyorsa:
systemctl
↓
Servisin durumunu kontrol et
journalctl
↓
Servis loglarını incele
dmesg
↓
Kernel mesajlarını kontrol et
free / vmstat / pidstat
↓
Kaynak kullanımını analiz etşeklindeki yaklaşım, özellikle Linux VDS sunucularda sorunların gerçek kaynağını bulmayı çok daha kolay hale getirir.
Bu nedenle dmesg, Linux sunucu yönetimi ve VDS sorun giderme süreçlerinde mutlaka bilinmesi gereken temel komutlardan biridir.