Giriş: Neden Sunucu İzleme?
Modern BT altyapılarında sunucuların kesintisiz ve verimli çalışması kritik öneme sahiptir. Bir sunucudaki performans düşüşü, hizmet kesintisi veya kritik bir kaynakta tükenme durumu, iş süreçlerini doğrudan etkileyebilir ve ciddi maliyetlere yol açabilir. İşte tam bu noktada, kapsamlı bir sunucu izleme çözümü devreye girer. Zabbix, açık kaynaklı ve oldukça güçlü bir izleme aracı olarak, sunucularınızın durumunu anlık olarak takip etmenizi, potansiyel sorunları proaktif bir şekilde tespit etmenizi ve otomatik alarm mekanizmalarıyla sizi bilgilendirmenizi sağlar.
Bu blog yazısında, Zabbix kullanarak sunucuları nasıl izleyeceğimizi ve kritik olaylar için etkili alarm yapılandırmalarını adım adım inceleyeceğiz. Amacımız, Zabbix’in gücünü kullanarak altyapınızın sağlığını her zaman kontrol altında tutmak ve olası sorunlara karşı hızlıca aksiyon alabilmektir.
Zabbix ile Sunucu İzlemeye Başlama
Zabbix kurulumunuzun tamamlandığını varsayarak, mevcut bir sunucuyu Zabbix’e ekleme ve temel izleme yapılandırmalarını anlatacağız.
Sunucu (Host) Ekleme
İzlemek istediğimiz sunucuyu Zabbix’e “Host” olarak eklememiz gerekiyor. Bu genellikle Zabbix Agent aracılığıyla yapılır. İlk olarak, izlemek istediğiniz sunucuya Zabbix Agent’ı kurduğunuzdan ve yapılandırdığınızdan emin olun.
Zabbix web arayüzünden aşağıdaki adımları izleyerek bir host ekleyebilirsiniz:
- Zabbix arayüzünde
Configuration->Hostsbölümüne gidin. - Sağ üst köşedeki
Create hostbutonuna tıklayın. - Aşağıdaki bilgileri doldurun:
- Host name: Sunucunun görünen adı (örneğin,
web-server-01). - Visible name: (Opsiyonel) Görünür ad.
- Groups: Sunucunun ait olacağı grup (örneğin,
Linux servers). Bu, gruplama ve izin yönetimi için önemlidir.
- Host name: Sunucunun görünen adı (örneğin,
InterfacesbölümündeAddbutonuna tıklayın veAgentseçeneğini seçin.- IP address: Sunucunun IP adresi.
- Port: Zabbix Agent’ın dinlediği port (varsayılan:
10050).
Addbutonuna tıklayarak işlemi tamamlayın.
Şablon (Template) Atama
Host’u ekledikten sonra, Zabbix’in sunucu hakkında hangi verileri toplayacağını ve hangi koşullarda alarm üreteceğini tanımlayan bir şablon atamanız gerekir. Zabbix, çoğu işletim sistemi için hazır şablonlarla gelir (örneğin, Template OS Linux by Zabbix agent).
Host ayarlarınızı düzenlerken (veya yeni host oluştururken) Templates sekmesine gidin:
Link new templatesbölümünde arama çubuğunu kullanarak uygun şablonu (örneğin,Template OS Linux by Zabbix agent) bulun ve seçin.Addbutonuna tıklayarak şablonu linkleyin.- Host ayarlarınızı kaydetmek için
UpdateveyaAddbutonuna tıklayın.
Bu şablon, otomatik olarak CPU kullanımı, disk alanı, ağ trafiği gibi birçok öğeyi (item), bu öğeler için tetikleyicileri (trigger) ve grafik (graph) yapılandırmalarını host’unuza uygulayacaktır.
Öğeler (Items) ve Tetikleyiciler (Triggers)
Şablonlar, temel olarak “Öğeler” ve “Tetikleyiciler”den oluşur:
- Öğeler (Items): Zabbix’in sunucudan topladığı belirli veri parçalarıdır. Örneğin,
system.cpu.load[all,avg1]bir CPU yükü öğesidir veyavfs.fs.size[/home,pfree]‘/home’ dizininin boş yüzdesini toplar. - Tetikleyiciler (Triggers): Öğelerden gelen veriler belirli bir eşiği aştığında veya bir koşulu karşıladığında bir “problem” durumu oluşturan mantıksal ifadelerdir. Örneğin, CPU yükü son 5 dakikada belirli bir değeri aşarsa veya disk alanı %10’un altına düşerse bir tetikleyici aktif hale gelebilir.
Örnek bir tetikleyici ifadesi:
{web-server-01:vfs.fs.size[/,pfree].last()}<10
Bu ifade, web-server-01 adlı host'taki kök dizinin (/) boş alanı (pfree) son kontrolünde %10'un altına düştüğünde bir problem durumunu tetikler.
Alarm Yapılandırması ve Bildirimler
Bir tetikleyici bir "problem" durumuna geçtiğinde, Zabbix'in bu durumu ilgili kişilere bildirmesi gerekir. Bu sürece "Eylemler (Actions)" denir ve genellikle medya türleri ve kullanıcılarla birlikte yapılandırılır.
Medya Türleri (Media Types) Oluşturma
Zabbix, e-posta, SMS, Slack, PagerDuty gibi farklı medya türleri aracılığıyla bildirim gönderebilir. Bir e-posta medya türü oluşturalım:
Administration->Media typesbölümüne gidin.Create media typebutonuna tıklayın.- Name:
Email(veya açıklayıcı bir ad) - Type:
Email - SMTP sunucu ayarlarınızı yapılandırın:
- SMTP server: E-posta sunucunuzun adresi (örneğin,
smtp.gmail.com). - SMTP port: E-posta sunucunuzun portu (örneğin,
587). - SMTP helo: (Opsiyonel)
- SMTP email: Zabbix'in bildirimleri göndereceği e-posta adresi.
- Connection security:
SSL/TLSveyaSTARTTLS(sunucunuza göre). - Authentication:
Username and password. - Username: E-posta hesabının kullanıcı adı.
- Password: E-posta hesabının şifresi.
- SMTP server: E-posta sunucunuzun adresi (örneğin,
- Ayarları kaydetmek için
Addbutonuna tıklayın.
Kullanıcıları (Users) Yapılandırma
Bildirimleri alacak kullanıcıları tanımlamamız ve onlara medya türlerini atamamız gerekiyor.
Administration->Usersbölümüne gidin.- Mevcut bir kullanıcıyı düzenleyin veya
Create userbutonuna tıklayarak yeni bir kullanıcı oluşturun. Mediasekmesine geçin.Addbutonuna tıklayın.- Type: Az önce oluşturduğunuz
Emailmedya türünü seçin. - Send to: Kullanıcının e-posta adresi.
- Severity: Bu kullanıcıya hangi ciddiyetteki (severity) alarmların gönderileceğini seçin (örneğin,
Warning,Average,High). - Use if severity is: (Varsayılan olarak hepsi seçili olabilir)
- Period: Bildirimlerin gönderileceği zaman dilimi (örneğin,
1-7,00:00-24:00tüm gün/tüm hafta).
- Type: Az önce oluşturduğunuz
Addbutonuna tıklayarak medyayı ekleyin ve kullanıcı ayarlarını kaydetmek içinUpdatebutonuna tıklayın.
Eylemler (Actions) ile Otomatik Bildirimler
Eylemler, bir tetikleyici problem durumuna geçtiğinde ne yapılacağını tanımlar. Bildirim gönderme en yaygın eylem türüdür.
Configuration->Actions->Trigger actionsbölümüne gidin.Create actionbutonuna tıklayın.- Action tablosu:
- Name:
Sunucu Disk Dolu Alarmıgibi açıklayıcı bir ad verin. - Subject: Bildirim e-postasının konusu (örneğin,
PROBLEM: {TRIGGER.NAME} on {HOST.NAME}). - Message: E-posta içeriği. Zabbix makrolarını kullanarak dinamik bilgiler ekleyebilirsiniz.
Problem detected! Host: {HOST.NAME} ({HOST.IP}) Trigger: {TRIGGER.NAME} Severity: {TRIGGER.SEVERITY} Status: {TRIGGER.STATUS} Original event ID: {EVENT.ID} Item value: {ITEM.VALUE} Problem URL: {TRIGGER.URL} Problem time: {EVENT.TIME} Problem date: {EVENT.DATE} - Name:
- Conditions tablosu: Bu, eylemin ne zaman tetikleneceğini belirler.
Addbutonuna tıklayın. Örneğin:Trigger severity>=Warning(Sadece Warning ve üzeri alarmlar için)Host group=Linux servers(Sadece Linux sunucularına özel)Trigger namelikedisk space(Sadece disk alanı ile ilgili tetikleyiciler için)
- Operations tablosu: Eylem tetiklendiğinde yapılacakları belirler.
Addbutonuna tıklayın.- Step:
1-1(İlk adım) - Operation type:
Send message - Send to Users: Daha önce yapılandırdığınız kullanıcıyı seçin (örneğin,
Admin). - Send only to: Kullanıcının medya türünü seçin (örneğin,
Email). - Default message: İşaretli bırakın veya özel bir mesaj şablonu kullanın.
- Step:
- Olası sorunları bildirmek için farklı adımlar ve gecikmeler (escalations) ekleyebilirsiniz. Örneğin, 5 dakika sonra hala problem devam ediyorsa ikinci bir kullanıcıya bildirim gönder gibi.
- Ayarları kaydetmek için
Addbutonuna tıklayın.
Örnek Senaryo: Disk Alanı Uyarısı
Şimdi bir örnekle pekiştirelim: Bir Linux sunucusundaki kök dizinin (%/%) boş alanının %10'un altına düşmesi durumunda e-posta ile bildirim almak istiyoruz.
- Host Ekleme ve Şablon Atama: Yukarıdaki adımları izleyerek sunucunuzu ekleyin ve
Template OS Linux by Zabbix agentşablonunu atayın. Bu şablon,vfs.fs.size[/home,pfree]gibi disk alanı öğelerini ve tetikleyicilerini içerir. - Öğe Kontrolü:
Configuration->Hosts-> İlgili host ->Itemssekmesine giderekvfs.fs.size[/home,pfree]öğesinin aktif olup olmadığını ve veri topladığını doğrulayın. - Tetikleyici Kontrolü: Aynı host'un
Triggerssekmesine giderek "Free disk space is less than 10% on /" benzeri bir tetikleyicinin var olduğunu ve durumununOKolduğunu doğrulayın. Bu tetikleyici varsayılan olarak şablon tarafından gelecektir. - Medya Türü ve Kullanıcı Yapılandırması: Yukarıdaki adımları izleyerek bir e-posta medya türü ve bu medya türünü kullanan bir kullanıcı yapılandırın.
- Eylem Oluşturma: Yukarıdaki "Eylemler (Actions)" bölümünü kullanarak yeni bir eylem oluşturun.
- Name:
Disk Alanı Kritik Alarmı - Conditions:
Trigger severity>=AverageHost group=Linux serversTrigger namelikeFree disk space is less than 10% on(bu, disk alanı tetikleyicilerini hedefleyecektir)
- Operations:
Send messagetoAdmin(veya ilgili kullanıcı) viaEmail.
- Name:
Artık, eğer seçtiğiniz sunucudaki herhangi bir dosya sisteminin boş alanı %10'un altına düşerse, Zabbix size otomatik olarak bir e-posta bildirimi gönderecektir.
En İyi Uygulamalar
- Eşik Değerleri Dikkatli Belirleyin: Çok düşük eşik değerleri "gürültü" (false positives) yaratırken, çok yüksek değerler gerçek sorunları kaçırmanıza neden olabilir. Ortamınıza uygun eşik değerlerini belirlemek için biraz gözlem yapın.
- Eylemleri Ölçeklendirin (Escalations): Kritik alarmlar için kademeli bildirimler (escalations) yapılandırın. Örneğin, ilk 5 dakika bir kişiye bildirim gönder, yanıt gelmezse sonraki 10 dakika başka bir kişiye ve üst yöneticiye bildirim gönder gibi.
- Problem Giderme Talimatları: E-posta bildirimlerine, sorunu gidermek için atılabilecek ilk adımları içeren kısa talimatlar veya bir bilgi bankası bağlantısı ekleyin.
- Bakım Modu (Maintenance): Bakım çalışmaları sırasında gereksiz alarmları önlemek için ilgili host'ları veya host gruplarını bakım moduna alın.
- Şablonları Kullanın: Benzer sunucular için şablonları kullanarak yapılandırma tutarlılığını sağlayın ve yönetim yükünü azaltın.
Sonuç
Zabbix, kapsamlı sunucu izleme ve esnek alarm yapılandırması yetenekleriyle BT altyapınızın sağlığını güvence altına almanız için güçlü bir araçtır. Bu makalede ele aldığımız temel adımları izleyerek, sunucularınızı etkili bir şekilde izleyebilir, potansiyel sorunları proaktif bir şekilde tespit edebilir ve otomatik bildirimlerle hızlıca müdahale edebilirsiniz. Doğru yapılandırılmış bir Zabbix sistemi, operasyonel verimliliği artırır, kesinti sürelerini azaltır ve sistem yöneticilerine gönül rahatlığı sağlar.
