SNMP ile ağ cihazlarını izlemek: OID bulmaktan alarma kadar adımlar
Beceri rehberi

SNMP ile ağ cihazlarını izlemek: OID bulmaktan alarma kadar adımlar

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 6 dk okuma

SNMP ile switch, router ve yazıcı izleme: OID bulma, snmpwalk, sürüm ve kimlik seçimi, arayüz keşfi ve sık hataları örneklerle öğrenin.

SNMP neden hâlâ ağ izlemenin temelidir?

Anahtarlar, yönlendiriciler, yazıcılar ve kesintisiz güç kaynakları gibi cihazlara genellikle bir izleme ajanı kuramazsınız. Üreticinin kapalı işletim sistemi ek yazılım kabul etmez. Basit Ağ Yönetim Protokolü (SNMP) bu boşluğu doldurur: cihaz, kendi durumuna dair sayaçları ve değerleri standart bir ağaç yapısında sunar, izleme sistemi de bu değerleri düzenli aralıklarla sorar.

Zabbix belgeleri SNMP izlemeyi tam da bu cihaz türleri için önerir: yazıcılar, anahtarlar, yönlendiriciler ve UPS cihazları. Kontroller yalnızca UDP üzerinden yapılır. Bu önemli bir ayrıntıdır; güvenlik duvarında UDP trafiğine izin verilmediyse izleme sessizce başarısız olur.

SNMP ile başlıca şu tür bilgiler alınır: durum değerleri (arayüz açık mı kapalı mı), sayaçlar (arayüzden geçen bayt, hata paketleri) ve cihaz bilgileri (ad, konum, çalışma süresi). İyi bir ağ izleme kurulumu bunları birleştirir: bant genişliği kullanımı için sayaçlardan hız hesaplanır, kayıp ve hata için hata sayaçları izlenir, bağlantı kopmaları için arayüz durumuna bakılır.

OID, MIB ve SNMP ağacı: temel kavramlar

Cihazdaki her veri noktası, nesne tanımlayıcısı (OID) denen bir adrese sahiptir. OID, noktalarla ayrılmış sayılardan oluşan bir ağaç yoludur. Bu sayıları ezberlemek gerekmez, çünkü yönetim bilgi tabanı (MIB) dosyaları bu sayıları anlamlı adlarla eşleştirir. Örneğin arayüz tanımı için ifDescr, arayüze giren bayt sayacı için ifHCInOctets gibi adlar kullanılır; bunlar IF-MIB içinde tanımlıdır.

Bir OID genellikle şu kısımlardan oluşur: nesnenin ağaçtaki yeri ve sonda yer alan dizin. Zabbix belgelerindeki örnekte son sayı bağlantı noktası dizinidir. Yani aynı sayaç adı, cihazdaki her arayüz için farklı bir dizinle tekrar eder.

İzleme sunucusunda MIB dosyalarının kurulu olması önerilir; böylece değerler doğru biçimde görüntülenir. Üreticiye özgü nesneler (yazıcı toner seviyesi, UPS pil durumu) üreticinin kendi MIB dosyasında tanımlıdır ve genelde üretici sitesinden indirilir. Standart nesneler yeterliyse üretici MIB'ine gerek kalmaz.

OID'yi bulma: snmpwalk ve snmpget ile adım adım

Elinizdeki cihazın hangi OID'leri sunduğunu keşfetmenin en güvenilir yolu komut satırı araçlarıdır. Zabbix belgelerinin önerdiği akış şöyledir:

  • snmpwalk ile cihazın nesneleri listelenir. Örneğin arayüz tablosuna bakarak hangi arayüzün hangi dizine sahip olduğunu görürsünüz.
  • İlgilendiğiniz nesne için snmpget -On komutu sayısal OID'yi verir. Belgelerdeki örnekte IF-MIB::ifHCInOctets nesnesinin bir arayüz için sayısal karşılığı bu şekilde elde edilir.
  • Elde edilen OID, izleme öğesinin SNMP OID alanına yazılır.

İki ipucu zaman kazandırır. Birincisi, sayaçlarda yüksek kapasiteli (HC ile başlayan) sürümleri tercih edin; hızlı bağlantılarda eski sayaçlar çok çabuk taşar ve yanlış hız hesaplanır. İkincisi, snmpwalk çıktısını bir dosyaya kaydedin: cihaz ailesini tanıyıp yeni bir şablon yazarken bu dosya sizin referansınız olur. Zabbix sunucusunun SNMP desteğiyle derlenmiş olması da şarttır; yoksa SNMP öğeleri çalışmaz.

Sürüm ve kimlik bilgisi seçimi

SNMP'nin üç yaygın sürümü vardır: SNMPv1, SNMPv2c ve SNMPv3. Kimlik doğrulama yaklaşımı sürüme göre değişir.

SNMPv1 ve SNMPv2c yalnızca bir topluluk dizesi (community string) ister; genellikle varsayılan olarak "public" gelir. Topluluk dizesi düz metin olarak ağda dolaşır ve bir parola kadar bile koruma sağlamaz. Bu yüzden varsayılan değeri değiştirin ve yönetim ağının dışına açmayın.

SNMPv3 çok daha güvenlidir. Bağlam adı, güvenlik adı ve güvenlik düzeyi gerekir. Güvenlik düzeyi şu seçeneklerden biridir: noAuthNoPriv, AuthNoPriv ve AuthPriv. Kimlik doğrulama ve gizlilik (şifreleme) için protokol ve parola cümleleri tanımlanır. Desteklenen protokoller net-snmp sürümüne ve derlemeye bağlıdır. Belgeler tuzak bir ayrıntıya işaret eder: yanlış gizlilik parolası zaman aşımı hatası verir, diğer yanlış kimlik bilgileri genel bir hata üretir; her koşulda arayüz kullanılamaz görünür.

Kurumsal ortamda kural açıktır: cihaz destekliyorsa SNMPv3 AuthPriv kullanın. Kullanıcı makroları bağlam adı, güvenlik adı ve parola alanlarında çözümlenir; parolaları öğenin içine yazmak yerine makroyla verin.

Zabbix'te ilk SNMP öğesini kurmak

Zabbix belgelerindeki temel akış üç adımdır:

  • Host'u oluşturun ve ona bir SNMP arayüzü ekleyin: cihazın IP adresi ya da DNS adı, port ve SNMP sürümü ile kimlik bilgileri girilir.
  • Bu arayüze bağlı, türü SNMP agent olan bir öğe oluşturun ve OID'yi SNMP OID alanına yazın.
  • Veri tipini ve gerekiyorsa ön işlemeyi ayarlayın.

Sayaçlar için sürekli artan bir değer geldiğinden, ham değerin kendisini grafiklemek anlamsızdır. Sayaç öğesine "saniye başına değişim" ön işlemesi uygulanır; elde edilen sonuç bayt cinsinden hızdır. Bit cinsinden gösterim için ek bir çarpan ön işlemesi eklenir.

Gelişmiş yöntem walk[OID listesi] anahtarıdır. Bu anahtar bir alt ağacın tüm değerlerini tek seferde çeker ve bağımlı öğeler için ana öğe görevi görür. Böylece cihaza yüzlerce ayrı sorgu göndermek yerine tek istek atılır. SNMPv2c ve SNMPv3 için bu işlemlerde yerel GetBulk istekleri, SNMPv1 için GetNext kullanılır. Arayüz başına ayarlanan en fazla tekrar değeri (varsayılanı belgelerde belirtilmiştir) çok yükseltilirse kontrol zaman aşımına uğrayabilir.

Arayüzleri otomatik keşfetmek

Bir anahtarda onlarca bağlantı noktası olabilir ve her biri için elle öğe açmak sürdürülemez. Zabbix'in düşük seviyeli keşfi, SNMP için de çalışır. Eski biçimde, SNMP OID alanına şu şekilde bir anahtar yazılır: discovery[{#MAKRO_A}, oid_a, {#MAKRO_B}, oid_b]. Her makro adı, anlamlı değerler üreten bir OID ile eşlenir.

Belgelerdeki örnekte ifDescr ve ifPhysAddress nesneleri kullanılır. snmpwalk çıktısında arayüz adları "WAN", "LAN1" ve "LAN2" gibi göründüğünde, keşif her dizin için {#SNMPINDEX}, {#IFDESCR} ve {#IFPHYSADDRESS} makrolarını içeren bir kayıt üretir. {#SNMPINDEX} yerleşik makrodur ve keşfedilen varlıkların gruplanmasında dizin değerini taşır.

Sonra bu makrolar öğe, tetikleyici ve grafik prototiplerinde kullanılır. Giriş ve çıkış trafiği için ayrı ayrı öğe prototipi, arayüz hata paketleri için başka bir prototip, arayüz durumu için bir tetikleyici prototipi tanımlanır. Keşfedilen her arayüz için gerçek öğeler oluşur. Güncel sürümlerde walk tabanlı keşif ve bağımlı öğelerle daha az sorgu atan yapı da kurulabilir; ayrıntılar için kullandığınız sürümün belgesini kontrol edin. Gereksiz arayüzleri (sanal, kullanılmayan) filtre ile dışarıda bırakmak alarm gürültüsünü azaltır.

Alarm tasarımı ve sık hatalar

SNMP izlemede şu tetikleyici türleri sık işe yarar: cihaza ulaşılamıyor, kritik bir arayüz kapalı, arayüzde hata ya da doluluk eşiği aşıldı. Tetikleyicide sabit sayı yerine kullanıcı makrosu kullanın; uç bağlantı noktaları ile yukarı bağlantı noktaları aynı eşiği taşımamalıdır.

Tekrar eden hatalar şunlardır:

  • Güvenlik duvarında UDP'yi unutmak: Kontroller yalnızca UDP ile yapılır, bu nedenle sorgu portu açık olmalıdır.
  • Varsayılan topluluk dizesi: Güvenlik açığıdır. Değiştirin, tercihen SNMPv3 kullanın.
  • Dizin kayması: Bazı cihazlar yeniden başlayınca arayüz dizinlerini değiştirir. Dizin tabanlı öğeler yanlış arayüze bakabilir; arayüz adına göre eşleme yapan yöntemleri tercih edin.
  • Çok uzun zaman aşımı: Belgelere göre walk ve get öğeleri birkaç kez yeniden denenir; uzun bir zaman aşımı, ulaşılamayan cihazlarda sonuçların gecikmesine yol açar.
  • Sayaç taşması: Eski, düşük kapasiteli sayaçlar hızlı arayüzlerde çabuk sıfırlanır; yüksek kapasiteli sayaçları kullanın.
  • SNMPv3 motor kimliği: Her SNMPv3 cihazı benzersiz bir motor kimliğine sahip olmalıdır. Motor başlatma sayısını kalıcı tutmayan cihazlarda SNMP önbelleğini temizlemek gerekebilir.

Yeni bir cihaz ailesini izlemeye alırken küçük başlayın: önce ulaşılabilirlik, sonra arayüz durumu, sonra trafik. Her aşamada gerçek bir cihazda çıktıyı snmpwalk ile karşılaştırarak doğrulayın.

Bu beceriyi Mindset programında nerede çalışırsınız?

Mindset kataloğundaki Zabbix ile Kurumsal Altyapı İzleme eğitiminin müfredatında Ağ, Veritabanı ve Uygulama İzleme başlıklı bir modül ve Host Yönetimi ve Veri Toplama Yöntemleri başlıklı bir modül bulunur. SNMP ile ağ cihazı izleme, bu modüllerin kesiştiği noktada çalışılır: veri toplama yöntemini seçmek, ardından ağ cihazlarına uygulamak.

Eğitim, ağ yöneticileri, sistem yöneticileri ve bir NOC ya da operasyon merkezi kuran ekipler için uygundur. Kurumsal bağlamda kazanım, farklı üreticilerin cihazlarının ortak bir şablon mantığıyla izlenmesi ve alarmların tek merkezde toplanmasıdır.

İlgili Mindset programı

Zabbix ile Kurumsal Altyapı İzleme

Sık sorulanlar

Sık sorulan sorular

SNMP için cihaza ajan kurmam gerekir mi?

Hayır. SNMP, cihazın kendi içinde sunduğu bir protokoldür; izleme sunucusu cihaza UDP üzerinden sorgu gönderir. Bu nedenle anahtar, yönlendirici, yazıcı ve UPS gibi ajan kuramayacağınız cihazlar için uygundur. Cihazda SNMP servisinin açık ve yapılandırılmış olması yeterlidir.

SNMPv2c ile SNMPv3 arasındaki temel fark nedir?

SNMPv2c yalnızca düz metin olarak giden bir topluluk dizesi ister. SNMPv3 ise güvenlik adı, kimlik doğrulama ve şifreleme sunar; AuthPriv düzeyinde hem doğrulama hem gizlilik sağlanır. Cihaz SNMPv3 destekliyorsa kurumsal ortamlarda tercih edilmelidir.

OID'yi nereden bulurum?

Cihaza snmpwalk ile sorgu atıp nesneleri listeleyin, ilgilendiğiniz nesne için snmpget -On ile sayısal OID'yi alın. Standart nesneler IF-MIB gibi MIB dosyalarında adlarıyla tanımlıdır; üreticiye özgü nesneler için üreticinin MIB dosyasına bakılır.

Trafik sayacı neden saçma değerler gösteriyor?

Sayaçlar sürekli artan toplamlardır. Ham değeri grafiklemek yerine saniye başına değişim ön işlemesi uygulamak gerekir. Eski düşük kapasiteli sayaçlar hızlı arayüzlerde çabuk taştığından, yüksek kapasiteli sayaç nesnelerini kullanın. Taşmayı önlemek için yüksek kapasiteli sayaç nesnelerini seçmek ve değişimi hesaplatmak en güvenilir yoldur.

SNMP trap ile sorgulama arasında ne fark var?

Sorgulamada izleme sunucusu cihaza düzenli olarak sorar. Trap ise cihazın olay olunca izleme sistemine kendiliğinden gönderdiği bildirimdir. İkisi birbirini tamamlar: sorgulama sürekli ölçüm, trap ise anlık olaylar için uygundur. Zabbix'te trap, ayrı bir öğe türüyle ele alınır.

SNMP ile Ağ Cihazı İzleme: OID'den Alarma Adım Adım