Her sistem yöneticisinin başlıca yetilerinden biri olan “Hatayı Bulma, anlama ve düzeltme” yaptığımız işin en önemli kısımlarından biridir. Herkes bir konuda çok iyi seviyede bilgi sahibi olabilir ancak herkes her konuda ileri seviye bilgi sahibi olamaz. Ne demek istediğimi biraz daha detaylı anlatmaya çalışayım; zaten çok bilgili olduğumuz bir konuda muhtemel hataları ve sebepleri tahmin etmemiz mümkün olduğu için bu problemlerle karşılaşmadan önlemlerimizi alırız. Ancak hepimizin bildiği gibi verdikleri ilanlarda açıkça Voltran arayan firmalar olduğu sürece hepimizin bir çok konuya bölünmesi gerekiyor ve zaman zaman hiç bilmediğimiz deryalarda dahi kendimizi bulabiliyoruz. Böyle durumlarda karşılaştığımız problemleri çözebilmek için hepimizin sahip olması gereken skill kesinlikle az önce yazmış olduğum “Hatayı Bulma, anlama ve düzeltme” adımlarından ilk ikisidir.  Aslında bu üçlüyü “Hatayı bulmak ve ayıklamak” olarak iki parçaya ayırabiliriz, zira bir kez hatayı bulduğumuzda artık çözüm sürecine geçmiş oluruz ki yeterli imkan ile çözülemeyecek problem olmadığını düşünmekteyim.

Bu konuda interneti talan ettiğimizde bir çok methodun varlığından haberdar oluruz, kimileri uzun uzun bunları detaylandırır, kimileri kısa ve sonuç odaklı çözümler önerir, benim de kendimce uyguladığım adımlar mevcut, bunları paylaşmakta herhangi bir sıkıntı görmüyorum;

  1. Problemle karşılaşma

Problemin sonuçları ile karşılaşıncaya kadar problemden haberdar değilsek bu noktada bir hatamız olduğunu bilmeli ve bunu bir kenara ders niyetine yazmalıyız. Zira tecrübelerimizden ders almanın birçok konuda faydalı olduğu inancını taşıyorum. Problemi önceden tespit edebilmenin bazı methodları mevcut, örneğin monitoring araçları. Bu araçları ve raporlarını düzenli kontrol etmek olasık bottleneckleri ve gelebilecek sorunları erken görmemizi sağlar. Ben bunun için şu tooları kullanıyorum;

MuninZabbixMmonit, ek olarak son kullanıcıya verdiğiniz servisleri bir son kullanıcı gibi deneyimleyecek perl, python veya ne ile yazabiliyorsanız bir bot çok makbule geçer.

Problemin sonuçları ile karşılaştığımız andan itibaren olası etki alanını (etkilenen ve devamında etkilenebilecek servisleri, kullanıcıları vb.) belirlemeli ve bu doğrultuda aksiyon almalıyız.

2. Problemi anlama

Problemi anlamak için öncelikle güncel logları (işletim sistemine ait olan, servislere ait olan mümkünse IPMI üzerinden donanıma ait olan loglar) sonrasında ise geçmişe dönük logları incelemek, monitor toollarının grafiklerinden faydalanmak, linux için var olan diğer araçları kullanmak öncelikli hareketler olmalıdır. Etkilenen server, service vb. ürün/programları mümkünse production seviyesinden çıkartıp arka planda daha rahat hareket edebileceğimiz bir ortama taşımalıyız. Sorunun donanım, network veya program seviyesinde olup olmadığını anlamak yine önceliklerimiz arasında yer almalıdır. Örnek olarak; storage üzerinde I/O sorunu görüyor olabiliriz, muhtemelen disklerden bir veya fazlası arızalanmış olabilir öte yandan çalışan program alakasız bir şekilde I/O’u tüketiyor olabilir. Burada anlık çözüm yerine sorunun gerçek sebebini bulmanın ne kadar önemli olduğunu görebilirsiniz.

Bu adım için en çok kullandığım ürünler;

iotophtopatop, ntop, iftop, ethtool, free, df, dmesg ve diğer logları detaylı incelemek

3. Problemi tanımlama

Takip ettiğimiz log dosyaları, grafikler ve diğer araçlar bize o an ve geçmişte sistemimiz üzerinde neler olup bittiğine dair detaylı bilgiyi vereceklerdir. Bu noktada bir dedektif gibi çalışarak iplerin uçlarını birbirine doğru bağlamalı ve hataya sebep olan gerçek sebebi net bir şekilde tanımlayabilmeliyiz. Yoksa daha öncede söylediğim gibi restart ettim düzeldi cümlesi aynı sorunun ileride tekrarlayacağına ve belkide daha kötü sonuçlara yol açabileceğiniz unutmamalıyız.

Bu noktada kullandığım araçlar;

perf-tools

3. Problemin çözümü

Bu noktada artık çok konuşulacak birşey kalmıyor.

Yukarıda günlük hayatta sürekli kullandığım program ve komutları paylaştım, herhangi birine faydamız dokunursa ne mutlu.

Sevgiler,

Fikri DAL

Categories:

No responses yet

Bir yanıt yazın

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