25 Haziran 2014 Çarşamba

Windows Task Manager yerine "System Schedular" kullanmak.

Merhaba,

Windows'un task manager ına uzun yıllardır şüpheyle bakmışımdır. Ya hang olduysa, ya çalışmazsa, durursa... Bir sürü problem çıkarmıştır bana.

Windows task managera alternatif bulabilir miydim ?

Yakın zamanda geliştirdiğim network otomasyon scriptlerini zamanlayacak bir araç arayışına başlamıştım. Bir süre webde dolaştıktan sonra "System Schedular" uygulamasını farkettim.
Windows serverlar üzerinde çalışabilen bir uygulama olduğu için hemen indirip kurdum.Tüm eventleri kolayca planlayabiliyorsunuz. Oldukça güvenilir ve stabil. Üzerinde onlarca planlanmış işi eksiksiz çalıştırabiliyor. Saatlik işlerden tutunda 24 saat boyunca çalışacak dakikalık işlerde bile problem yaratmıyor.

Özellikleri;


 
 
Ana ekranında planladığınız tüm işleri takip edebiliyorsunuz. Son çalışma zamanı ve birdahaki çalışma zamanını görebiliyorsunuz.
 
Yeni bir iş oluştururken eski planlanmış işten kopyalama yapabiliyorsunuz.
 
İşi manuel çalıştırmanız mümkün.
 
Çalıştırılacak scripte yada programa parametre aktarabiliyorsunuz.
 
Günlük, aylık, yıllık, dakikalık, günün belli dakikaları, ayın belli günleri gibi pek çok planlama seçeneği mevcut.
 
 
 
 
 Splintware ürünü ücretsiz olarak kullanılabilmektedir.
 
Teşekkürler,
Cem Selmanoğulları
 
 
 
 
 


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ı

16 Haziran 2014 Pazartesi

Script yazarak ping atmak

Merhaba,

Daha önceki yazmızda Perl kütüphanelerinden yararlanarak bir PING MONITOR yazmıştık.

Şimdi ise hiçbir kütüphane kullanmadan direkt olarak bir script ile ping atmayı deneyelim.

Ping atalım. Sonucu bir text dosyasına alalım. Text dosyasındaki sonucu inceleyelim.

  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::Ping;
  4. my $ipdurum = "UP";
  5. my $file = "C:\\pinggecici.txt";
  6. unlink $file;
  7. system("ping 10.1.1.10 >> C:\\pinggecici.txt");
  8. open (MYFILE, 'C:\\pinggecici.txt')
  9. while (<MYFILE>) {
  10.     chomp;
  11.     $line = $_;
  12.     if($line =~ m/100% loss/)
  13.     {
  14.         $pingdurum = "DOWN";
  15.         $ipdurum = "DOWN";
  16.      } else {
  17.          pingdurum = "UP";
  18.      }
  19. }
Teşekkürler,
Cem Selmanoğulları

Ping monitor (Perl Script)

Merhaba,

Basit bir ping monitor nasıl yazılır, görelim.

Genelde tercihim perl script dilidir. Diğer dillerde de yazmak mümkündür.
Perl kütüphanelerini kullanabilir yada kendimiz de direkt olarak yazabiliriz.
Öncelikli olarak perl Net::Ping kütüphanesinin kullanımını görelim.

5 adet ip adresine ping attırıp sonucu almaya çalışalım.

Bu 5 ip adresi pinglenecek sonuç ekrana bastırılacak. Ayrıca C:\ipsonuclari.txt isimli dosyaya yazılacak.

Öncelikle 5 ip adresini bir dizide toplayacağız. Sonrasında bu dizi içinde bir for döngüsü ile dönüp her ip adresini pingleyeceğiz.

  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::Ping;
  4. my $ip1 = "10.1.1.1";
  5. my $ip2 = "10.1.1.2";
  6. my $ip3 = "10.1.1.3";
  7. my $ip4 = "10.1.1.4";
  8. my $ip5 = "10.1.1.5";
  9. my $ip_durum = "";
  10. my @array = ($ip1,$ip2,$ip3,$ip4,$ip5);
  11. foreach (@array) {
  12.     my $ipadres = $_; 
  13.     chomp($ipadres);
  14.     print $_."\n"
  15.     my $p = Net::Ping->new(icmp);
  16.     if($p->ping($ipadres)) {
  17.         print "BASARILI";
  18.         $ip_durum = $ip_durum." ".$ipadres.":OK ";
  19.     } else {
  20.     print "BASARISIZ";
  21.     $ip_durum = $ip_durum." ".$ipadres.":BASARISIZ ";
  22.     }
  23. }
  24. print $ip_durum;
  25. my $dosyasil = "C:\\ipsonuclari.txt";
  26. unlink $dosyasil;
  27. open(MYFILE, '>> C:\\ipsonuclari.txt');
  28. print MYFILE $dosyasil
  29. close (MYFILE);

Buradaki önemli noktalardan birisi new(icmp); fonksiyonunun çalışabilmesi için bu scriptin hem icmp paketleri göndermeye hem de gelen cevapları dinlemeye iznimizin olmasıdır.
Aksi takdirde ping atılamayan bazı ip ler ayakta gibi görünecektir.

Teşekkürler,
Cem Selmanoğulları

6 Haziran 2014 Cuma

Kısaca ben...

Merhaba,

Uzun zamandır yeni bir blog açıp birikimlerimi paylaşmak istiyordum. Daha önce birkaç denemem iş yoğunluğum nedeni ile yarıda kalmıştı. Aslında iş yoğunluğumda çok bir değişiklik yok... Yinede son bir denemeye varım dedim. Belki bu seferki bloğumu yaşatabilirim.

Kendimden kısaca bahsedeyim;

1978 İstanbul doğumluyum. İTÜ Matematik Mühendisliği bölümü mezunuyum, üzerine Sabancı Üniversitesi'nde Bilişim Teknolojileri alanında yüksek lisans yaptım.

Çocukluk yıllarımdan buyana bilgi teknolojileri ile iç içe oldum. Kodlama ile tanışmam 20 sene öncesine dayanır. Yine hemen hemen aynı dönemler ilk bilgisayarımı almam, gelecek mesleğime ısınmamı sağladı. Sonrasında internet çağıyla birlikte herşey hızlandı, tabiri caiz ise uçtu gitti... Biranda kendimi bir firmada BT uzmanı olarak çalışırken buldum.

Geçen yıllar süresince çeşitli firmalarda ve serbest olarak yazılım, donanım, sistem ve network işleri yaptım. Tabiri caiz ise mutfakta iyice piştim. Bir süre sonra profesyonel hizmetler alanında çeşitli projeler yaptım. Birçok ürün ve proje konusunda danışmanlıkta bulundum. Bu aşamada monitoring ve otomasyon konusuna ilgim iyice artt ve profesyonel kariyerimi bu alana yönelttim. HP, CA, SolarWinds, ManageEngine, Quest gibi çeşitli firmaların izleme ve otomasyon araçlarının büyük firmalarda kurulum ve işletim desteğinin verilmesini sağladım. Bir süre sonra Türkiye'de bu ürünlerin genellikle geldiği gibi müşteriye kurulduğu ve ekstra geliştirmeler ile müşterilere uyarlanmasında sıkıntı yaşandığını farkettim. Bunu farketmem daha çok mühendislik bilgisi gerektirecek araçlar kullanarak var olan ürünlerin müşteri ortamına adapte edilmesi konusunda önümü açtı. Artık kurulan ürünlerin API lerini, WEB Servislerini, Veri Tabanlarını ve çeşitli scripting dillerini kullanarak sıradanlaşan monitoring ve otomasyon ürünleri konusunda şirketlerin ihtiyaçlarını daha iyi karşılar hale gelmiştim.

Halen IT yönetim araçları ve kendi geliştirdiğim yazılımlar ile sistem&network izleme, otomasyon ve network provisioning projeleri ile ilgilenmekteyim.

Yetkinliklerimden kısaca bahsetmem gerekirse;

→ [Infrastructure Management & Automation / Service Asurance Solutions]

• Network Automation and Provisioning with scripting, program development and 3rd party tools like HP Network Automation.
• Network Provisioning interface development.
• Network configuration change management.
• Developing visual dashboards and early warning systems, from concept to design for monitoring with PHP, Perl, Expect, TCL.
• Network&Server&Client monitoring. Incident, Event, Alert, Fault Management. Performance Reporting. Service level monitoring and root cause analysis.
• Developing Webservice and API integration softwares.
• HP NNMi Network Node Manager, HP Server Automation, HP Network Automation, HP Site Scope, HP OVO. -Installation, Management, POC-
• CA Spectrum -Installation, Management, POC-
• Monitoring & Automation with Manage Engine OpManager
• Solarwinds NPM, SAM, NTA, NCM, WPM, VNQM, UDT -Installation, Management, POC-
• Quest Foglight.
• UC4 Automic Workload Automation
• Automation with Puppet
• Conceptual knowledge on uCMDB, Opetation Orchestration, BSM (Business Service Management)

→ [Programming Languages]

• Perl, Expect, Vbscript, TCL Script, Linux Shell Script
• Java, C
• HTML, Javascript, AJAX, CSS, XML
• SQL, PL/SQL

→ [Network Administration]

• Installing, commissioning and configuring Huawei & Cisco Switchs-Routers
• Network Cabling
• Routing
• PRTG, Wireshark

→ [Operating Systems]

• MS Windows clients, servers
• Linux (Apache Web, Samba File, FTP, Squid, IPtables)

→ [Database]

• MySQL
• Entry level MS SQL Server, Oracle

→ [Security]

• System and Network Security
• IDS, IPS, Web Filtering
• Password and Session Management


√ Vendors 

 CA, Cisco, 3COM, HP, Huawei, ,Microsoft, Quest, Fluke Networks, UC4, Manage Engine, SolarWinds


Cem Selmanoğulları