Exchange Server

Exchange Server Sorun Çözümü için Kolay Log Toplama Yöntemi – Exchange Log Collector Script

Özellikle Exchange Server 2013 sonrasında loglama alt yapısında pek çok değişiklik oldu. Özellikle kendi kendine yönetim ve iyileştirme politikasının bir ürünü olan “Managed Availability” kavramını çok ciddi manada sistemin log üretmesine neden oldu.

http://www.cozumpark.com/blogs/exchangeserver/archive/2015/03/01/exchange-server-2013-managed-availability.aspx

Öncelikle 2010 uzmanları bu loglar ile sık sık dolan C disklerinden dolayı tanıştı, daha çok neden bu kadar çok log üretildiğini araştırdılar, sonuca ulaşınca ise genelde otomatik temizleme komutlarını zamanlanmış görev yapıp sorundan kurtuldular. Ancak gelin görün ki zaman içerisinde sorun çözümlemek için bu logların hayati önemi olduğunu anladılar. Durum böyle olunca logların silme sürelerini en azından son 7 günden 30 güne yükselttiler. Buraya kadar hayat güzel gidiyordu ancak yine başka bir sorun ile karşı karşıya kaldık. Çok büyük yapılarda özellikle bildiğiniz gibi sorunların çözülmesi için yeniden kurmak, silmek tekrar oluşturmak gibi kobi çözümleri çok kabul edilen çözümler değildir. Şimdi bir kobi çalışanı iseniz sakın alınmayın bu sektörün bir gerçeği. Bende kobide çalıştım ve çok iyi biliyorum. Eğer sarf edeceğiniz efor, alacağınız danışmanlığın ücreti karşılığını bulmayacak ise bu kadar uzman bir personel veya danışmana gerek yoktur. Ancak bir mail kesintisi ile milyonları kaybeden veya kaybedeceği prestijin telafisi olmayan kurumlar için bu tarz iletişim alt yapılarındaki kesiniler kabul edilemez. Bir sorunun bu nedenle kök neden araştırması çok önemlidir. Bir uzman olarak sizlerin de çok iyi bildiği gibi sorun çözmek için öncelikle teşhisi iyi koymak lazım, bunun için de iyi bir analiz yani log okumak lazım. Makalemin başında anlattığım dağınık yapı itibari ile büyük bir exchange sunucu ortamı için bu kadar bilgiyi toplamak son derece zor olacaktır.

Ama her türlü zorlukta imdadımıza yetişen powershell burada da hayatımızı kurtarıyor. Aşağıdaki linkten edineceğiniz log collector komut seti sayesinde tüm exchange loglarını merkezi olarak alabilir ve daha sonra sorun çözümlemek için kullanabilirsiniz.

https://github.com/dpaulson45/ExchangeLogCollector

Peki nasıl kullanıyoruz. Öncelikle bildiğiniz gibi exchange server çok fazla log üretiyor ve siz merkezi olarak birden çok sunucu log dosyasını bir sunucu üzerine toplamak istiyorsanız öncelikle yeterli boş alanınızın olduğunu kontrol edin. Benim tavsiye yanlış hesaplama durumuna karşılık C diskinizin dolması = işletim sisteminizin her an mavi ekran vermesi ve bir daha normal açılmamasına yol açabilir. Ondan en temizi bir yönetim sunucusu gibi bir sunucuda komutu çalıştırmanız veya gerçekten yeterli yerinizin olduğundan emin olduktan sonra çalıştırmanızı öneririm.

İlk komutumuz aşağıdaki gibidir;

.\ExchangeLogCollector.ps1 -AllPossibleLogs

Bu komutu çalıştırdıktan sonra komutu çalıştırdığınız sunucu üzerindeki tüm varsayılan logları toplayıp aşağıdaki dizine yerleştirecektir;

C:\MS_Logs_Collection

Not: Ortalama 1000 kullanıcı ve iki MBX sunucu olan bir exchange server ortamında tek bir sunucu için bu komut ortalama 30GB log topladı, tabiki bu sizin kullanıcı, mail alma gönderme sayısı, ekleri, DAG yapısı vb pek çok değişkene göre değişir ancak fikir vermesi açısından paylaşmak istiyorum ki olası bir disk boş yer sorunu yaşamayın.

clip_image002

Bir uyarı sonrası “y” tuşuna basarak toplama işlemi için onay verebilirsiniz.

clip_image004

Not: remote toplama için exchange server minimum 2012 ve üstü bir OS de çalışmalı. 2008 ve 2008 R2 üzerinde ise bu log toplama işlemini remote yapamazsınız.

clip_image006

Log toplama işlemi başladı.

clip_image007

Tamamlandıktan sonra sıkıştırma özelliği ile logların sıkıştırılmış halini görebilirsiniz;

clip_image008

İçeriği ise aşağıdaki gibidir;

clip_image009

Eğer daha belirli bir log için çalışmak istiyorsanız aşağıdaki gibi bir komut çalıştırabilirsiniz

.\ExchangeLogCollector.ps1 -DatabaseFailoverIssue -Servers EXCH1,EXCH2 -FilePath Z:\Data\Logs

Bu durumda ilgili sunucular için DB failover loglarını ilgili path’ e toplar.

clip_image011

clip_image013

Log toplama işleminde bir detay gözünüze çarpmış olabilir. Log dizini için 15GB boş alan gereksinimi vardır.

clip_image015

Kısa bir süre sonra log toplama işinin bittiğini görebiliyoruz. Burada yine önemli bir nokta var, her iki sunucu için ilgili loglar yerel disklerinde toplandı ancak sonra uzak sunucudaki bu loglar network üzerinden komutu çalıştırdığınız sunucuya kopyalandı.

Uzak sunucu diskinin durumu bu şekilde;

clip_image017

Klasör hala orada duruyor, ama komutu çalıştırdığım sunucu D diski ise her iki ya da kaç exchange sunucu için çalıştırmış iseniz onların log klasörünü görebilirsiniz;

clip_image019

Bir diğer örnek ise IIS ve RPC logları için kullanılabilir

.\ExchangeLogCollector.ps1 -Servers EXCH1,EXCH2 -IISLogs -RPCLogs

Ancak IIS loglar için son 3 günlük ( bu varsayılan ayardır, sonuçta amaç sorun çözmek için log toplamak olduğu için bu şekilde çalışıyor, siz isterseniz komutu güncelleyebilirsiniz) veri toplanmaktadır.

Eğer daha fazla parametre öğrenmek istiyorsanız aşağıdaki link’ i kullanabilirsiniz.

https://github.com/dpaulson45/ExchangeLogCollector

Umarım faydalı bir makale olmuştur. Bir sonraki makalemde görüşmek üzere.

 

 

 

 

Hakan Uzuner

2002 yılından beri aktif olarak bilişim sektöründe çalışmaktayım. Bu süreç içerisinde özellikle profesyonel olarak Microsoft teknolojileri üzerinde çalıştım. Profesyonel kariyerim içerisinde eğitmenlik, danışmanlık ve yöneticilik yaptım. Özellikle danışmanlık ve eğitmenlik tecrübelerimden kaynaklı pek çok farklı firmanın alt yapısının kurulum, yönetimi ve bakımında bulundum. Aynı zamanda ÇözümPark Bilişim Portalı nın Kurucusu olarak portal üzerinde aktif olarak rol almaktayım. Profesyonel kariyerime ITSTACK Bilgi Sistemlerinde Profesyonel Hizmetler Direktörü olarak devam etmekteyim.

İlgili Makaleler

Bir Yorum

Bir yanıt yazın

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

Başa dön tuşu