SNMP

Günlük hayatımızda çevremizde sayısız cihaz bulunmaktadır. Bu cihazlar, ister evimizde ister iş yerimizde olsun, doğru ve sorunsuz bir şekilde çalıştığında hayatımızı kolaylaştırır. Ancak bu cihazların düzenli ve hatasız şekilde çalışmaya devam edebilmesi için bazı sistemlerle sürekli olarak izlenmeleri gerekir. Bu sistemler sayesinde cihazların anlık durumları takip edilir, herhangi bir problem oluştuğunda erken fark edilerek gerekli önlemler alınabilir.

Bu amaçla kullanılan yöntemlerden biri de SNMP (Simple Network Management Protocol) adı verilen haberleşme protokolüdür. SNMP sayesinde ağ üzerindeki cihazların durumu kolayca izlenebilir ve yönetilebilir.

Bu yazıda SNMP’nin ne olduğu, nasıl çalıştığı ve neden kullanıldığı basit bir şekilde anlatılacaktır.

SNMP’nin Temel Çalışma Mantığı

SNMP, temel olarak bir yönetici (manager) ve birçok ajan (agent) cihaz arasında geçen iletişimden oluşur. Buradaki “yönetici”, ağdaki tüm cihazları izleyen ve kontrol eden merkezi yazılımdır. “Ajan” ise modem, switch, yazıcı, sunucu gibi ağ cihazlarının üzerinde çalışan ve cihazın durum bilgilerini yöneticilere aktaran küçük bir yazılım parçasıdır.

Bu sistem şu şekilde çalışır:

  • Ajan cihazlar, kendi durumları hakkında bilgileri toplar. Örneğin: internet hızını, cihaz sıcaklığını, bağlantı durumunu veya CPU kullanımını ölçer.
  • Yönetici, belirli aralıklarla bu bilgilere erişmek için ajanlara istek (sorgu) gönderir.
  • Ajan cihazlar, bu isteklere cevap vererek bilgileri yöneticilere iletir.

SNMP’nin Temel Bileşenleri

  1. Manager (Yönetici): Ağdaki tüm cihazların bilgilerini toplayan ve merkezi olarak yöneten sistem.
  2. Agent (Ajan): Ağ cihazları üzerinde çalışan ve cihazın bilgilerini yöneticilere aktaran yazılım.
  3. MIB (Management Information Base): Ajan cihazlarda bulunan bilgilerin düzenli bir şekilde tutulduğu veri tabanı gibidir. Yönetici buradan hangi bilgilerin okunabileceğini bilir.

SNMP hakkında temel bir fikir sahibi olduktan sonra, yine çok yaygın olarak kullanılan diğer haberleşme protokolleriyle SNMP’yi karşılaştırmak faydalı olacaktır. Özellikle Modbus, hem endüstride çok sık kullanılması hem de cihazlar arası veri iletişimini sağlaması açısından SNMP ile zaman zaman karıştırılabilmektedir. Ancak her iki protokolün kullanım amacı ve çalışma alanı birbirinden farklıdır. SNMP ve Modbus, her ikisi de cihazlardan veri almak ve bazı durumlarda cihazlara komut göndermek için kullanılan protokollerdir. Ancak SNMP daha çok bilgi teknolojileri (IT) dünyasında ağ cihazlarını izlemek ve yönetmek için geliştirilmiştir. Modbus ise endüstriyel otomasyon alanında, özellikle PLC, RTU ve sensör gibi ekipmanlarla haberleşmek amacıyla tercih edilir.

Şimdi haberleşmenin nasıl gerçekleştiğini daha net anlayabilmek için Siemens S7-1500 PLC ile TIA PORTAL yazılımı üzerinden bir örnek yapalım. TIA Portal içerisinde SNMP için MODBUS’ta olduğu gibi hazır bir blok bulunmamaktadır. O yüzden öncesinde SNMP kütüphanesini indirmemiz gerekiyor.

Bu kütüphane için link: https://support.industry.siemens.com/cs/document/109780503/libraries-for-communication-for-simatic-controllers?dti=0&lc=en-TR

İlgili haberleşme kütüphanesini indirip yazılıma kurduğumuz zaman aşağıdaki gibi SNMP haberleşmesinde kullanabileceğimiz 4 adet fonksiyonu görebiliyoruz.

Bu fonksiyon bloklarından

LSNMP_Get:
SNMP agent cihazından belirli bir OID (Object Identifier) ile belirtilen bilgiyi almak için kullanılır. Örneğin, bir ağ cihazının CPU kullanımı veya bağlantı durumu gibi tekil veriler sorgulanır.

LSNMP_GetBulk:
Birden fazla veriyi aynı anda almak için kullanılır. Bu fonksiyon, özellikle çok sayıda OID içeren MIB tablolarındaki verilerin hızlıca çekilmesini sağlar. Örneğin, bir switch’in tüm portlarının durumlarını topluca sorgulamak için idealdir.

LSNMP_Set:
SNMP agent cihazına veri yazmak veya yapılandırma değiştirmek için kullanılır. Örneğin, bir cihazın çalışma parametresini değiştirmek için bu fonksiyon kullanılır.

LSNMP_SendTrap:
Agent cihazın, yöneticiyi bir olay veya hata hakkında bilgilendirmek için gönderdiği asenkron mesajdır. Bu fonksiyon, cihazın önemli durum değişikliklerini yöneticiye anında bildirmesi için kullanılır.

Bu fonksiyonlar ile SNMP protokolünün temel haberleşme işlemlerini gerçekleştirmek mümkündür. Yazılımda doğru parametrelerle çağrıldığında, ağ üzerindeki cihazların durumu izlenebilir ve gerektiğinde kontrol sağlanabilir.

Yukarıda örnek oluşturulan bir Get bloğunda community public herkesin görebileceği (okuyabileceği) genel bilgi erişimi için, private ise cihaz üzerinde değişiklik yapabilen daha özel bir yetki için kullanılır. oID verinin okunacağı veya yazılacağı adresin bilgisi gibi düşünülebilir. connParam kısmında tanımlayacağımız datanın içinde haberleşeceğimiz cihazın IP’si gibi haberleşme parametreleri olması gerekmektedir. varBinding’e tanımlayacağımız datada ise okuduğumuz veya yazacağımız verileri yazmak için kullanacağımız datayı eklememiz gerekiyor.

Bir yanıt yazın

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