perl ile otomasyon etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
perl ile otomasyon etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

19 Aralık 2014 Cuma

Üzerinde SNMP agent bulunduran tüm cihazlardan snmp verisi çekmek için basit bir script...

Merhaba,

Network cihazları, sunucular ve üzerinde SNMP agent bulunduran tüm cihazlardan snmp verisi çekmek için basit bir script paylaşmak istiyorum.

Perl Net::SNMP kütüphanesini kullandığımız bu scriptte SNMP bağlantısı kurup belirlediğimiz bir OID ye karşılık gelen değer için istekte bulunuyor ve elde ettiğimiz sonucu ekrana bastırıyoruz.

IP, Community String ve istenen OID değerini scripte arguman olarak dışarıdan veriyoruz.

Bu scripti geliştirerek basit bir monitoring uygulaması yazmak mümkün olacaktır.


use Net::SNMP;

# SNMP OID değeri arguman olarak disaridan alinir
my $OID => $ARGV[2]

# IP adresi ve SNMP community string disaridan arguman olarak alinir
($session,$error) = Net::SNMP->session(IP => $ARGV[0],Community => $ARGV[1]);
die "SNMP Baglanti Hatasi: $error" unless ($session);

# Alinan SNMP OID degeri ile SNMP istegi yapilarak sonuc degiskenine atanir
$sonuc = $session->get_request($OID);

die "SNMP Istegi Hatasi: ".$session->error unless (defined $sonuc);

$session->close;

# SNMP OID degerine karsilik gelen deger ekrana bastirilir
print "SNMP OID Degeri: ".$sonuc->{".$OID."}";

25 Haziran 2014 Çarşamba

Otomasyon Örnekleri - 1

Merhaba,

Yaptığım otomasyon işlerinden bazı örnekleri "Otomasyon Örnekleri" yazı dizisinde paylaşmaya çalışacağım.

450 tane şubesi olan bir şirket, şubelerindeki switchlere Juniper Routerlar bağlıyor. Fakat switchlerin hangi portuna bağladıkları bilgisini girmiyorlar. Bir süre sonra bazı özel konfigurasyonlar yapılacağında bu envanter kaydı eksikliği büyük probleme neden oluyor.

Amaç Juniper routerların switchin hangi portunda olduğunu öğrenmek, ilgili porta description olarak Juniper bağlantısını yazmak ve switch üzerinde port bazlı bazı tanımlar yapmak. 450 şubenin hepsini ziyaret etmek zor... Her switche tek tek bağlanıp bakmak zor.

Yazdığımız script perl ssh kütüphanelerini kullarak cihazlarla ssh bağlantısı kurmaktadır. Bir for döngüsü ile 450 tane şube switchine sıra ile bağlanmakta ve her switchte alttaki işleri yapmaktadır. Birkaç saat içinde otomatik olarak iş bitmektedir.

Switche bağlanan script mac adreslerini listeleyecek komutu çalıştırır. Tüm mac adreslerini aldıktan sonra Juniper e özel mac adresini aradan çeker. Bilindiği üzere her Vendor a özel bir mac adresi başlığı bulunmaktadır. 48 bitlik mac adreslerinin ilk 24 biti vendorlara aittir. Dolayısı ile switch üzerinde 1 adet Juniper cihaz olduğu için 1 adet Juniper mac adres olacaktır.

Mac tablosuna bakıldığında ilgili Junper mac adresinin hangi port üzerinden geldiği görünecektir. İşte bu interface Juniper router ın bağlı olduğu interfacedir. Interface bulunduğuna göre script ile gönderilecek komutlarla istenen konfigurasyonlar yapılır. Bu işlem 450 cihaz için tekrar eder ve kısa sürede tamamlanır.

Bir yada birkaç kişinin günlerce switchlere bağlanarak yapacağı bir işi çok kısa sürede başarmış oluyorsunuz.

Teşekkürler,
Cem Selmanoğulları