Merhaba bu yazımda sizlere linux sunucularda basit ama bir o kadarda pratik işinize yarayacak linux sorun çözme adımlarını anlatacağım.Bu sadece örnek fikir vermesi açısından hazırladığım bir yazıdır.Basit bir senaryodan örnek aldım , sorunu arayacağımız yerleri anlatmak istedik.Sorun çözme adımlarının sırası özellikle sizi çözüme çabuk ulaştıracak sırayla oluşturmuştur.
Troubleshoot adımlarında en önemli olan basitten karmaşığa doğru düşünce algoritmamızı oluşturmamızdır.
Örnek sorun; Linux sunucuma erişemiyorum , websitesi veya servisler gelmiyor.
Çözüm;
İlk olarak linux sunucumuza ssh üstünden bağlanamıyorsak ,vmware esx üstünden veya fiziksel ise ILO veya IDRAC üstünden bağlanmayı denemeliyiz.
Sunucumuza login olduğumuzda OS hakkında detaylı bilgimiz yoksa ilk bakmamız gereken yer OS distrosu olacaktır. Çünkü sorun ile ilgili google üstünde arama yaparken ilgili OS distrosu bizi çözüme çabuk ulaştıracaktır.
Linux üzerinde OS öğrenmek için benim en çok kullandığım komut
cat /etc/*release
Resim-1
OS hakkında bilgi aldığımıza göre sistemde sorun çözme adımlarımıza geçelim;
Eğer sunucumuzu monitoring etmiyorsak ilk bakmamız gereken yer ,kalan disk alanıdır.
Hemen login olduğumuz sistemde df –kh yaparak kalan alanı kontrol etmeliyiz.Eğer disk alanında %100 doluluk varsa muhtemelen sunucu bu yüzden erişilemez olmuştur.
Resim-2
Eğer disk üzerinde doluluk yoksa , ilgili servislerin ve sshın devre dışı kalması bize tek bir şeyi düşündürecektir , sunucu üzerinde ki firewall kontrol edilmelidir.
Genelde linux sunucularda ilk kurulumlarda stop edilen firewalllar disable edilmeden bırakılıyor ve sunucular reboot sonrasında firewall yüzünden servislerimiz erişilemez durumda oluyor.
systemctl status firewalld ile firewall kontrol edilir Ubuntu ise ufw statuse bakılmalıdır.
Resim-3
Firewall devre dışı görünüyor. SSH erişiminin kapalı olması ssh configte değişiklik olduğunu akıllara getiriyor. Öncelikle bir servisin çalışıp çalışmadığı kontrolunu aşağıdaki sırayla kontrol etmemiz en doğrusu olacaktır.
systemctl status servis adı
Resim-4
Eğer çalışıyorsa ;
Network üstünden ilgili portu listener durumda mı ?
netstat –tulpn | grep :22
sadece 22. Portu görüntülemek için bu komutu kullandım apache servisi olsaydı 80 veya 443 ü kontrol etmeliydim.
Resim-5
Networksel olarakta sunucu katmanında bir sorun olmadıgına göre sshd servisinin config dosyasını kontrol etmek en doğrusu olacaktır. Linuxta herşey dosya olduğu için her servis hakkında kolayca config editleyebilmemiz mümkündür.
Sshd servisinin config dosyasını pathini ben biliyorum ,ya bilmediğim bir servis olsaydı bulmak için aşağıdaki komutu kullanabilirsiniz.
man service adı veya locate servis adı
Örnek; man firewalld
Resim-6
man sshd
Resim-7
Ssh servisinin config dosyasının yerini bulduğuma göre gerekli ayarlar tam mı diye kontrol edelim
vi /etc/ssh/sshd_config
Servisle ilgili ayarlarda sorun görülmüyor,
Resim-8
Bundan sonra bakılması gereken journalctl ve en son log dosyaları kalıyor log dosyalarında çıktılardan ise google üstünde araştırma yaparak sonuca ve çözüme ulaşmayı amaçlıyoruz.
Ssh ile ilgili logları kontrol etmek için,
journalctl -u ssh
Herhangi bir sonuç elde edemediysek
En son logları incelemek için journalclt –xe yapılır
Yine hataya ilişkin bir bulgu elde edemediysek
/var/log dosyaları arasına girilir
Burda tersine bir listeleme yapılır en son log dosyalarının yazıldığı dosyaları görmemiz için bu komut çok önemlidir.
ls –latr
Resim-9
Bu listelemeye göre en son cron ve messages log dosyalarına yazılma olmuştur.
Bu dosyaların incelenmesi ve hatanın çözümüne burdan devam edilmesi gerekmektedir.
Bu yazıyı sadece örnek olması ve yol göstermesi açısından linux ile uğraşan meslektaşlarım için yazdım.
Umarım yararlı olur.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar:
www.mshowto.org
Tags: Linux Sunucularda Troubleshooting