otomasyonp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
otomasyonp etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

22 Ocak 2022 Cumartesi

Grafana nedir ? Veri görselleştirme. Dashboard oluşturma.

Merhaba,

Bugün son yılların popüler opensource uygulamalarından biri olan ve Grafana Labs tarafından sunulan Grafana'dan bahsetmek istiyorum. Bu yazımda Grafana'yı tanıtmaya yönelik giriş seviyesi bilgiler vermeye çalışacağım. Daha sonraki yazılarımda ise daha derinlemesine inceleme ile ürün yönetimine dair konulara değinerek detaylı dashboardlar oluşturmayı planlıyorum.

"Dashboard anything. Observe everything."

Web tabanlı veri görselleştirme ve raporlama uygulaması olarak özetleyebileceğimiz bu güçlü uygulama pekçok büyük firma tarafından kullanılmaktadır. Şirketler altyapılarını izlemek ve operasyonel verimliliklerini arttırmak için Grafana'yı kullanmaktadır. Verilerin toplanması, yönetilmesi ve görüntülenmesini otomatikleştirdiği için izleme ve analizi oldukça kolaylaştırır. Bölüm ve takım yöneticileri, analistler, mühendisler karar verme mekanizmalarında Grafana'dan sıklıkla yararlanmaktadır. Anlık durum tespiti ve ileriye dönük planlamaların yapılması anlamında doğru verilere ulaşılıp doğru kararlar verilmesinde oldukça etkin bir rol oynamaktadır. Güvenlik analizi ekipleri tarafından da kullanılabilen Grafana kullanıcıların dijital ayak izlerinin takibi konusunda da fayda sağlamaktadır. Birçok veritabanı ile entegre olup veri çekebilen uygulama gerçekten gözalıcı grafikler, tablolar ve dashboardlar oluşturabilmektedir. Grafana ile verileriniz nerede olursa olsun sorgulama, ölçme, görselleştirme ve raporlama işlerinizi yapabilirsiniz. Operasyonel ölçümleriniz ile ilgili grafik ve raporlar oluşturabilirsiniz. İşin içine Telegraf ve InfluxDB araçlarını da kattığınızda Grafana sistemini oldukça güçlü ve yönetimi kolay bir izleme sistemine çevirmeniz de mümkün.


Grafana sistemi Linux, Windows ve MacOS üzerinde çalıştırılabilmektedir. Grafana ile fiziksel ve sanal sunucu ve ağ sistemleri ile ilgili çeşitli dashboardlar oluşturabilirsiniz, raporlamalar yapabilirsiniz. Sunucular ve ağınızı izleyebilirsiniz. Cloud üzerindeki birçok servisi takip edebilirsiniz. Çeşitli uygulamaları ve loglarını takip edebilirsiniz. Anlık durum yada geriye dönük verileri izleyebileceğiniz grafikler ile trendlere bakabilirsiniz. Zaman bazlı kıyaslamalar ve trendleri izleyebileceğiniz grafikler yaratabilirsiniz. Sistemlerin performans verilerini raporlayabilirsiniz. Kapasite planlamalarınızı takip edip geriye dönük grafikler ile raporlamalar yapabilir kapasite ve kullanım trendlerini izleyebilirsiniz. Envanter bilgilerinizi takip edebilirsiniz.  

Grafana ile dakikalar içinde profesyonel dashboardlar hazırlamanız mümkün. Tabi bunun için biraz SQL bilginizin de olması gerekiyor. 

Çekilecek veriler için SQL sorguları yazmanız gerekiyor. Ama bu gözünüzü korkutmasın, çok temel SQL sorguları ile harika dashboardlar ortaya çıkarabiliyorsunuz.



Alttaki dashboard bir sunucu ile ilgili çeşitli metrikleri görselleştirmektedir.


Bir dashboard alttaki şekilde bağımsız panellerden oluşmaktadır.



Her bir panel ayrı bir SQL sorgusu sonucu oluşan verilerden görselleştirilmektedir.

Yukarıdaki MEM panelinin detayına baktığımızda alttaki şekilde iki SQL cümlesi ile oluşturulduğunu göreceksiniz.


SQL cümlesini manuel yazmak istemeyenler için ise basitleştirilmiş bir editör de sunulmaktadır.


Alttaki örnekte SQL Serverdan çekilecek veriler için yazılmış bir SQL sorgusu görmektesiniz.


Verileri panelde Time Series, yani zamana bağlı değişen grafik şeklinde gösterebildiğimiz gibi tablo olarak da çekilen verilerin ham hali ile de gösterebiliriz. 
Altta grafikle gösterilen verilerin tablo ile gösterimini görmektesiniz.


Yine altta tablo formatında bir panel görmekteyiz.


Grafana'nın sağladığı çeşitli visualization seçenekleri ile yapacağınız görselleştirmeler hayallerinize kalmış. 
Birkaç farklı visualization örneğini altta paylaşmak isterim.







Visualization seçeneklerini alttaki şekilde listeleyebiliriz.

Verileri CSV dosyası olarak indirmeniz de mümkündür.


Ayrıca herhangi bir paneli "Share" özelliği sayesinde paylaşabilirsiniz. "Share Panel" çeşitli paylaşım opsiyonları sunmaktadır.


Direkt olarak panel link url sini paylaşmanın yanısıra panelin imaj olarak oluşturulmuş resim dosyasına da ulaşmak mümkündür. 
Bunun yanısıra "Snapshot" paylaşımı ile panelin o anki hali public olarak bir link ile paylaşılacaktır. 
Bu link adresini bilen herkes bu panelin o anki görüntüsüne erişebilecektir. 

Embed özelliği sayesinde ise panel bir iframe olarak Grafana sistemi dışında başka bir web sitesinin 

kodları içine gömülebilmekte ve diğer sitelerde görüntülenebilmektedir. 

Bu işlem bildiğimiz HTML için iframe gömme işlemi ile aynıdır.


Grafana sistemi anlık ve geriye dönük olarak verileri, trend grafiklerini ve tabloları gösterebilmektedir. 
Ayrıca belli bir zaman aralığı içinde panel ve dashboardlar özelleştirilebilmektedir.


Ayrıca "Cycle View Mode" özelliği ile dashboardlar bir ekrana yansıtılarak belli periyodlarda döngüsel olarak gösterilebilmektedir.

Dashboardlar üzerinde gösterilen veriler detaylı olarak filtrelenebilmektedir. 

Oluşturulacak filtre değişkenleri birbirleri ile ilişkilendirilerek anlık olarak dashboardlar üzerindeki verileri filtrelemek mümkündür.


Filtreleme işlemleri için Dashboard ayarları içinde Variables kısmında değişken tanımlamaları yapılabilmektedir. 
Her bir değişken diğer değişken ile ilişkilendirilebilirken kendine ait bir SQL sorgusu ile eşleşmektedir.


500 tane sunucunuz ve her sunucu üzerinde 3 adet network interface iniz olduğu bir senaryoda sadece operasyon bölümüne ait sunucuların dashboard üzerinde gösterilmesini sağlayabilirsiniz. Yada sadece belli sunucuların sadece eth1 network interface kullanımlarının dashboard üzerinde gösterimi sağlanabilir.

Grafana sisteminde alarm oluşturmak da mümkündür. Belli kriterlere göre alarmlar oluşturulup kriterler gerçekleştiğinde yada belli eşikler geçildiğinde sistemin alarm üreterek mesaj göndermesi sağlanmaktadır.


Tablo ve grafik verilerinde yine treshold belirlenerek alarm durumlarının görsele yansıtılması da mümkündür.



Grafana sistemi kullanıcı ve kullanıcı grupları yönetimi ve yetkilendirilmesi konusunda da oldukça yeterli özellikler sunmaktadır. Ldap entegrasyonu yapılabilmektedir. Dashboardları oluşturacağınız kullanıcı ve takımlara göre yetkilendirerek kimlerin göreceği yada düzenleyebileceği konularında özelleştirebilirsiniz. Ayrıca dashboarları bir klasör yapsında gruplayarak yetkilendirmeleri dashboard grupları üzerinde de uygulayabilirsiniz. Ayrıca organizasyon bazlı ana ayrımlar yapmak da mümkündür. 

Grafana'nın en güzel özelliklerinden birisi ise grafana.com üzerinden daha önce hazırlanmış dashboardları import edebiliyor olmanızdır. Yani herhangi bir geliştirme yapmadan ve SQL sorgusu yazmadan size uygun hazır dashboardları ücretsiz olarak saniyeler içinde devreye alabilirsiniz.


Grafana.com üzerinden ID sini alacağınız dashboardı hemen import edip kullanmaya başlayabilirsiniz.

Örnek vermek gerekirse yüzlerce linux makine ile ilgili onlarca bilginin görselleştirildiği bir dashboardı hızlıca sisteminizde devreye alabilirsiniz. Dashboard ve panel dizaynı ile uğraşmanıza gerek olmadan.

Grafana sistemi dışarıdan web sayfalarının da dashboard panel olarak sisteme eklenmesine izin vermektedir. Buda Grafana sistemi daha da genişletebilmenize imkan vermektedir. Bir projede müşterimiz bazı scriptleri çalıştırarak çıktıları olan grafikleri Grafana üzerinde bir dashboard olarak görüntülemek istediğini belirtmişti. Normal şartlarda Grafana'da bu tarz bir tetikleyerek grafik oluşturma yapısı yok. Fakat dışarıda oluşturduğumuz bir web sayfası formatını Grafana formatına yakın bir formatta hazırlayarak sisteme entegre ederek müşterinin isteğini gerçekleştirme şansımız olmuştu.

Sıkça sorulan sorulardan biri ise Grafana üzerindeki grafik ve tablo panelleri kullanarak sıfırdan yeni bir web sitesi tasarımı yapabilir miyiz? Kendi web şablon tasarımlarını kullanmak isteyen bazı firmalardan bu şekilde istekler gelebiliyor. Teknik olarak yapılması mümkün fakat Grafana'nın kullanıcı yetkilendirme sistemini devre dışı bırakmış oluyorsunuz. Yeni oluşturacağınız web sitesinde kendi kullanıcı yetkilendirmelerinizi yaptıktan sonra neden olmasın. Paneller iframe olarak dışarıya aktarılabiliyor. Bu şekilde yeni oluşturacağınız web sitesinin içine hertürlü gömmeniz mümkün. Tabi burada Grafana tarafında bir güvenlik açığı olur mu sorusu da akla gelmektedir. Çünkü panelleri dışarıya açabilmek için anonymous kullanıcı otantikasyonunu açmanız anlamına gelmektedir. Buda Grafana'yı herkese açtığınız anlamına gelmektedir. Bunu aşmanın yolu ise Grafana sunucusu ile yeni web sitesini oluşturacağınız sunucu arasında point to point bir iletişim kurmak ve Grafana'ın web portuna sadece bu web sunucusunun erişebilmesini sağlamak. Böylece kullanıcılar yeni web sitesine erişirken Grafana sunucusuna erişemeyecek fakat Grafana'daki panelleri yeni web sunucusu görüntüleyerek kullanıcılara iletebilecektir. Bu şekilde Grafana'dan tamamen farklı bir web uygulaması hazırlanabilir ve sistemi kullananlar arka planda Grafana'nın olduğunun farkında bile olmayacaktır.

Grafana backend bir HTTP API hizmeti de sunmaktadır. Böylece farklı araçlar ile entegrasyon yada otomasyon işleri bu API aracılığı ile kolaylıkla yapılabilmektedir. Dashboard oluşturma, kaydetme, kullanıcı yaratma, takım yaratma ve yönetme, data source update, alarmların alınması, playlist oluşturulması, silinmesi, snapshot alınması ve silinmesi gibi işlemleri bu API aracılığı ile yapabilmekteyiz.

Grafana sistemi çeşitli pluginlerin kullanımı ile daha da yetenekli hale gelmektedir. CloudWatch, Elasticsearch, Google Cloud, Graphite, Jaeger, Microsoft SQL Server, MySQL, OpenTSDB, Prometheus, Tempo, Zipkin gibi pekçok datasource kullanımını mümkün kılmaktadır. Bunlar dışında alttaki data sourcelar konusunda pluginler ile desteğe sahiptir.





Grafana uygulamasını kendi sunucularınıza kurabilir yada Grafana Cloud hizmetinden faydalanabilirsiniz.

AWS tarafında Amazon'un sunduğu Amazon Managed Grafana servisi de son günlerin popüler servislerinden biri haline gelmiş durumda. AWS tarafından 2 tür lisans sağlanmakta. Editör ve Görüntüleyici lisansları. AWS fiyat listelerine baktığımızda 20 Editör ve 30 görüntüleyici lisansı için aylık olarak alttaki şekilde bir hesap çıkarıldığını görüyoruz.

Monthly Charges = 20 * $9.00 (Editor license) + 30 * $5.00 (Viewer license) = $330.00



Alttaki görsellerde AWS tarafındaki Grafana ekranlarından örnekleri görebilirsiniz.



Grafana kullanan bazı firmalara Siemens, Salesforce, SNYK, Dell, Tripadvisor, TomTom, JPMorgan, Dapper, Citi, Roblox, Unity, Redis, Wix, Booking.com, DigitalOcean, Stackoverflow, Ebay, Tinder, Verizon, Bloomberg, PayPal kuruluşlarını örnek verebiliriz.


Grafana docker imajını indirmek için TIKLAYIN.


Grafana'yı hemen denemek için Demo sayfasına gidebilirsiniz.

https://play.grafana.org/

 



Teşekkürler,

Cem Selmanoğulları





29 Aralık 2014 Pazartesi

UC4 Automic ve Puppet ile Otomasyon

Merhaba,

UC4 Automic ve Puppet altyapı otomasyon ürünlerinin birlikte kullanımı ile ilgili basit bir örneği kabaca şekillendirmeye çalışacağım.

Sabah saat 3:00 AM. Herkes uykuda. Aklınıza çılgın bir web projesi fikri geliyor. Uyku tutmuyor, hemen bir domain almalı ve projeye başlamalı...

Müşteri olarak siz istediğiniz domain ismi ve sunucu özelliklerini belirtmelisiniz ve sonrasında tek yapacağınız kredi kartı bilgilerinin sağlanması olmalı. Akabinde 20 dakika gibi kısa bir sürede sunucunuz ve domaininizin hazır olduğuna dair bir email ve sms alacak ve sitenizi yayınlamaya başlayacaksınız.

Nasıl ? Çok mu hızlı ? Eskiden 3 gün süren işlemlere göre gayet hızlı diyebiliriz.

Üstelik insan kaynaklı hatalar ve birşeylerin unutulması riskinden uzak.

Arka planda bunu kim yapıyor ? Tabiki UC4 ve Puppet gibi entegre çalışan otomasyon sistemleri.

Puppet güçlü bir altyapı otomasyonu sunarken işin workflow tarafını UC4 Automic hallediyor.

Bahsettiğim senaryonun workflow unu alttaki gibi şekillendirmek mümkün.

Kabaca belirttiğim Automic ve Puppet adımlarını detaylandırmak mümkün.


UC4 Automic tüm adımları paralel yada seri çalışacak şekilde sıralıyor ve belli koşullara ve önşartlara göre başka adımları tetikliyor. Bu tetiklenen adımlar Automic üzerinde yeni bir iş olabileceği gibi birçok işi içeren başka flowlar da olabilir. Gerekli durumlarda ise altyapı otomasyonunu üstlenen Puppet devreye giriyor ve kendine düşen görevleri tamamlayarak Automic in bir sonraki adımına hazır hale getiriyor.

Bu işleri yaparken, her iş bittikten sonra işin düzgün tamamlanıp tamamlanmadığını tespit eden adımları da Puppet yada Automic scriptleri ile yaparak Automic job larını beslemek mümkün.



22 Aralık 2014 Pazartesi

Altyapı Otomasyon Araçları - Puppet & Chef

Merhaba,

Bugün son zamanların popüler altyapı otomasyon araçlarından bahsetmek istiyorum. CFEngine, Bcfg2, Puppet ve Chef gibi ürünler bulut, sanal ve fiziksel ortamların otomasyonunda sıkça kullanılmaktadır




Altyapı yönetimi yapan ekiplerin işlerini rahatlatan bu ürünler son zamanlarda yazılımcıların da dikkatini çekmeye başladı. Ürünlerin yazılım projelerine de dahil edildiğini görmek mümkün. Özellikle yazılımcılar ile alt yapı yönetimi yapan uzmanlar arasında kalan bölgede bu araçların güzel işler yaptığını görüyoruz.








Bu ürünlerden benim ilgimi en çok çeken Puppet ve Chef e kısa bir bakış atmak istiyorum.

CHEF :

2009 yılından bu yana kullanılmakta olan Chef in Puppet tan etkilendiğini söylemek mümkün. Ubuntu, Debian, Rhel, Centos, Fedora, MAC OS, Windows, MS Windows Server gibi geniş bir yelpazede ürünü destekliyor. Temelde geliştirme Ruby scripting dili domaininde yapılmakta, buda Ruby bilen kişilerin Chef i kullanmasını kolaylaştırıyor. 



Birbiri ile iletişim halinde 3 modül içermektedir. Chef sunucusu, node lar ve Chef Workstation. Chef sunucusu çoklu node ortamlarını yönetebilecek konfigurasyon datası içerir.Bu konfigurasyonlar ve kaynaklar gerektiğinde node lar tarafından istenir. Chef otomasyon adımlarını içeren reçeteleri  üzerinde tutar. Birden fazla reçete (Recipe) ve şablon (Template) CookBook ları oluşturur. Kullanıcılar "Knife" ismi verilen bir CLI aracılığı ile Chef ile etkileşime geçerler.Belirlenen bir otomasyon reçetesinin bir yada çoklu node ortamına uygulanması mümkündür. Bir otomasyon reçetesi uygulanırken diğer reçeteleri de çağırarak uygulamaya koyabilir.







Alttaki çizimden anlaşılacağı üzere CookBook ları workstationda düzenleyip Knife ile Chef sunucusuna göndeririz. Chef istemcisi belli periyodlarda yapılandırma bilgilerini sunucudan alarak node lar üzerinde uyguluyor.





Chef komponentlerini detaylı listeleyecek olursak;

ComponentDescription
AttributesDescribe node data, such as the IP address and hostname.
Chef clientDoes work on behalf of a node. A single Chef client can run recipes for
multiple nodes.
Chef SoloAllows you to run Chef cookbooks in the absence of a Chef server.
CookbooksContain all the resources you need to automate your infrastructure and
can be shared with other Chef users. Cookbooks typically consist of
multiple recipes.
Data bagsContain globally available data used by nodes and roles.
KnifeUsed by system administrators to upload configuration changes to the
Chef Server. Knife is used for communication between nodes via SSH.
Management consoleChef server's web interface for managing nodes, roles, cookbooks,
data bags, and API clients.
NodeHosts that run the Chef client. The primary features of a node, from Chef's
point of view, are its attributes and its run list. Nodes are the component
to which recipes and roles are applied.
OhaiDetects data about your operating system. It can be used stand-alone,
but its primary purpose is to provide node data to Chef.
RecipeThe fundamental configuration in Chef. Recipes encapsulate collections of
resources that are executed in the order defined to configure the nodes.
Repository (Chef repository)The place where cookbooks, roles, configuration files, and other artifacts for
 managing systems with Chef are hosted.
ResourceA cross-platform abstraction of something you're configuring on a node.
For example, users and packages can be configured differently on different
OS platforms; Chef abstracts the complexity in doing this away fro
m the user.
RoleA mechanism for grouping similar features of similar nodes.
Server (Chef server)Centralized repository of your server's configuration.
[Tablo http://www.ibm.com/ sitesinden alınmıştır.]

Chef ile yapılabilecek basit bir örneği ele alacak olursak;
Networkünüzdeki tüm windows, linux, unix sunucularınız ile router ve güvenlik cihazlarınızda NTP konfiurasyonu yapmak istiyorsunuz. NTP konfigurasyonu olmayanlara eklenecek, var olanlarsa ise bu konfigurasyon yenilenecek. Bu işi Chef ile hazırlayacağınız otomasyon reçeteleri ile hızlıca halletmeniz mümkün olacaktır. Onlarca cihazdan binlerce cihaza konfiurasyon yapmak için aynı reçeteleri kullanarak hem zamandan kazanacak hem de insan kaynaklı dikkatsizlikler ile oluşabilecek hataların önüne geçeceksiniz.

Chef ile neler yapabiliriz;

Hayallerinizle sınırlı olmakla birlikte altta birkaç başlık sayabiliriz.

- Sunucu başlatma/kapatma
- Sunucu üzerine uygulama kurma
- Sunucu üzerinde uygulama yönetimi
- Sunucu üzerinde konfigurasyon yönetimi
- Sunucu envanter yönetimi
- Sunucu üzerinde şirket politikalarına uyumluluk kontrolleri
- Kurulacak uygulama öncesi ortam isterlerinin hazırlanması
- Yeni sunuculara işletim sistemi kurulumu...

PUPPET :
Puppet ın 2005 yılı civarından buyana kullanıldığını görüyoruz. Google, Oracle gibi firmalar altyapı yönetiminde bu aracı kullanmaktadır. Chef e göre daha zor bir öğrenme süreci olan Puppet çok geniş bir yelpazede işletim sistemini desteklemektedir. Kullanıcı topluluklarının Chef e göre çok daha geniş ve aktif olduğunu söylemek mümkün. 


Puppet "Puppet Master" isimli bir ana sunucuyu kullanır. Bu sunucu node lar ve gruplar arasında konfigurasyonları merkezileştirir. Örnek vermek gerekirse üzerinde Apache çalışan linux makinelerinizi Puppet Master üzerinde gruplayabilirsiniz. Puppet Agent yönetilen sistemler üzerinde çalışır. Böylece herhangi bir otomasyon işini yada konfigurasyon değişikliğini bir yada birden fazla grup içinde makinelere aynı anda uygulama şansına sahip olursunuz. 





Puppet "Facter" ismi verilen bir araca sahiptir. Facter sistem metadatasını tutar ve sunucular arasında filtrelemeye izin verir. Sunucu isimleri, işletim sistem versiyonları, modelleri, ip leri gibi...
Puppet komponentlerine göz atalım.

ComponentDescription
AgentA daemon process running on a node that collects information about the node and
sends it to the Puppet master.
CatalogCompilation of facts that specifies how to configure the node.
FactsData about a node, sent by the node to the Puppet master.
ManifestDescribes resources and the dependencies among them.
ModuleGroups related manifests (in a directory). For example, a module might define how a
database like MySQL gets installed, configured, and run.
NodeA host that is managed by the Puppet master. Nodes are defined like classes but
contain the host name or fully qualified domain name.
Puppet masterThe server that manages all the Puppet nodes.
ResourceFor example, a package, file, or service.
[Tablo http://www.ibm.com/ sitesinden alınmıştır.]

Puppet "Dependency Management" özelliğini diğer otomasyon ürünlerine göre çok daha fazla geliştirmiş ve ön plana çıkarmış bir üründür. Buda özellikle kompleks ve geniş IT altyapısı olan firmalarda özellikle altyapı yönetimi yapan ve script kullanmayı tercih mühendislerin gözünde ürünü vazgeçilmez hale getirmektedir.

Puppet ile network otomasyon işleri de yapmak mümkündür. Network ve güvenlik uzmanları çoğunlukla işlerini rahatlatmak amacı ile scripting kullanmakta fakat yaptıkları bu işleri daha organize ve tekrar kullanılabilir hale getirememektedirler. Puppet bu konuda da geniş networklerin yönetiminde uzmanlara zaman kazandırmakta ve mühendisleri yaptıkları işlerde insan hatasından uzak tutmaktadır.

Puppet ile yapılabileceklere bir örnek vermek gerekirse;

Bir bankaya ait 250 şube yönlendiricilerinde onlarca satırlık ACL düzenlemesi yapmak, yeni satır eklemek, silmek, var olan ACL satırlarında değişiklik yapmak ve bu işlemleri hatasız gerekleştirmek çok uzun bir sürece yayılacak bir projedir. Puppet ile bunu çok kısa sürede yapmanız mümkündür. Bunu yaparken yapılan konfigurasyonların test edilmesi, rollback mekanizmasının oluşturulması gibi konular da Puppet ın yetenekleri arasında olacaktır.

Puppet ile yapılabilecekleri genelleyecek olursak;

- Sunucu başlatma/kapatma
- Sunucu üzerine uygulama kurma
- Sunucu üzerinde uygulama yönetimi
- Sunucu üzerinde konfigurasyon yönetimi
- Sunucu envanter yönetimi
- Sunucu üzerinde şirket politikalarına uyumluluk kontrolleri
- Kurulacak uygulama öncesi ortam isterlerinin hazırlanması
- Yeni sunuculara işletim sistemi kurulumu
- Disk/Storage/Dosya Sistemi yönetimi
- Kullanıcı/Grup yönetimi
- Yedekleme işlemleri
- Güvenlik yönetimi

Ve daha önce de belirttiğimiz gibi hayallerinizle sınırlı pek çok otomasyon işi.


Teşekkürler,
Cem Selmanoğulları

19 Aralık 2014 Cuma

HP Network Automation Ürününü Tanıyalım

Merhaba,

Uzunca süre üzerinde çalıştığım ve çeşitli projeler yaptığım HP Network Automation ürününden bahsetmek isterim. Birçoğunuz HP NA olarak da tanıyorsunuz bu ürünü. HP nin Network Management ürün ailesine ait bir ürün olan HP NA oldukça sağlam ve oturmuş bir ürün.

Birçok kişinin paralel çalışarak günler içinde yapabileceği çalışmaları saatler ve hatta dakikalar içinde yapabiliyor. 500 tane router a 1 saat içinde değişik konfigurasyonlar yapabildiğinizi hayal edin ?

Ürünün yeteneklerine göz atalım;

Konfigurasyon Değişikliği Yönetimi :

Konfigurasyonlardaki değişiklikler kaydedilir. Buna snapshot diyoruz Geriye dönük eski konfigurasyonlara erişimi sağlar. İhtiyaç anında hızlı bir şekilde eski konfigurasyona dönülür. Yeni ve eski konfigurasyonlardaki değişiklikler satır satır karşılaştırılarak gösterilir. Böylece eski konfigurasyonda nelerin değiştitildiği, silindiği, eklendiği ve bunların kimler tarafından nezaman yaptığı bilgisi tutulur.

Uyumluluk kuralları (Complience Check) :

Tüm network cihazları bu kurallara göre taranır. Uyumsuzluk durumunda alarm üretilir yada uyumsuzluğu giderecek bir aksiyon oluşturulur (Remedation Script). Örnek vermek gerekirse networkünüzde cihazlarınız üzerinde telnet ayarı kalmadığından ve sadece ssh ayarlandığından nasıl emin olabilirsiniz ? NA tüm cihazlara belli periyodlarda bağlanıp kontrol eder. Unutulan bir telnet konfigurasyonu olması durumunda uyarı verir ve konfigurasyonu düzeltir. Anlayacağınız herhangi bir cihazda telnet konfigurasyonu unutuldu ise NA bunu silecek yerine SSH konfigurasyonu yazacaktır.

Araştırmalara göre network adminleri zamanlarının %45 ine kadarını manuel operasyonlarda harcamaktadırlar. 

Networkte Manuel Hatalar :

Network çalışanlarının pekçok zaman start-up konfigurasyon ve running konfigurasyonu kaydetmeyi unuttukları gözlenmektedir. Akabinde olabilecek herhangi bir kesinti yada sistem restartında yeni konfigurasyon kaybedilecektir. Bunun önüne geçmek için bu konfigurasyonların eşit olup olmadığı hergün NA tarafından kontrol edilir. Gerekirse eşit olmayanlar eşitlenir.

> HP NNM (Network Node Manager) ile entegre edilebilir. Envanterler NNM üzerinden güncellenebilir. Ayrıca NA kendisi de Network cihazlarını keşfedebilir. Network haritalandırması yapabilir.

> ITIL, COSO, SOX, PCI,CoBIT standartlarına uyunluğu araştırıp raporlar. Uyumsuzlukları force etme imkanı sağlar.

> NA güçlü bir ACL otomasyonu sağlar. Hazır templateler yada yeni oluşturulabilecek otomasyon scriptleri ile detaylı bir ACL otomasyonu sunar.

> Cihazların IOSların saklar. Gerekli durumlarda yeni IOS yüklenmesi ve güncellenmesine olanak sağlar.
IOS versiyonları envanterini tutar ve güncelliği kontrol eder. Güncel olmayanlar durumunda raporlama yapar.

> İş akışı onay mekanizması çalıştırabilirsiniz.

> HP Server Automation ile NA entegre çalışabilir ve Serverların hangi network cihazlarındaki hangi değişikliklerden etkilendiği gibi bilgilerin üretilmesi sağlanabilir.

> Patchlerin topluca cihazlara geçilmesine  olanak sağlar.

> Güçlü bir envanter takibi ve raporlaması sunar.

> Schedule joblar yada job grupları çalıştırılabilir.

> Gelişmiş command scriptleri hazırlanıp cihazlara grup bazlı basılmasına izin verir.

> CLI komutlarınız izlenerek yaptığınız işlerin bir script halinde kaydına izin verilir. Böylece bir cihazda yaptığınız değişiklikleri başka cihazlara script olarak topluca basabilirsiniz.

> Cihazlara bağlantılar sınırlandırılabilir. Sadece SSH yada SSH-2 kullanılabilecek şekilde force edilebilir.

> Cihaz konfigurasyonları NA arayüzünden değiştirilebilir, inline commentler eklenebilir ve deploy edilebilir.


Düşünün...

Onlarca satırlık ACL tanımlamanız olan 300 ün üzerinde cihazınız var. Bu ACL lerden 23 tanesi belli kriterlere göre silinecek, 12 tanesi değiştirilecek, 6 tane yeni eklenecek. Bu düzenlemeyi elle yapmak her cihaza bağlanarak nekadar zamanınızı alır ? Network Automation ile birkaç saat içinde bu işin bittiğini düşünün. Hem de manuel yaparken oluşabilecek hatalardan uzak bir şekilde.

Bir güvenlik açığı olduğunu ve bir gecede 1500 cihaza patch geçmeniz yada konfigurasyon değişikliği yapmanız gerektiğini düşünün. Paralel çalışarak kaç kişi kaç günde halledebilir bu işi.
Ya Otomasyonla kaç saate biter bu iş ?

Teşekkürler,
Cem Selmanoğulları

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ı