Zabbix ile sunucu performansinin izlenmesi Mustafa COŞAR - İsmail ARIK - Murat DOĞAN Hitit Üniversitesi Bilgi İşlem Daire Başkanlığı
Giris Sunucu sistemleri bilgi işlem merkezinin omurga ve firewall sistemlerinden sonra gelen en önemli cihazlarıdır. Sunucularda oluşabilecek anlık kesintiler ya da performans düşüklüğü, üzerlerinde kurulu olan uygulamaların sorunlarla karşılaşmasına ya da uygulamaların çalışmamasına sebebiyet vermektedir.
Monitoring (İzleme) Önemi Bilgi işlem sistemlerinde sunucuların anlık performans bilgileri hayati önem taşımaktadır. Bunlar arasında Bellek (RAM), İşlemci (CPU), Harddisk (HDD) ve Ağ (Network) kartlarının çalışma durumlarını analiz ve raporlama yapabilmek kurum ve bilgi işlem çalışanları için önem arz etmektedir.
Monitoring Neden Yapılır? Sistem ve ağ yapısını izlemek(monitoring), Sistem ve ağ yapısında oluşabilecek olası hataları ve hatalara yakın durumları öğrenmenize ve anlık müdahale ederek, sistem ve ağ yapısının çalışmasına sorun teşkil edecek durumları kontrol altında tutmanıza yardımcı olur. Böylece veri merkezinizde kurmuş olduğunuz yapının sağlıklı ve kararlı çalışması sağlanır. Ağ izleme programları, sistem sağlığını takip eden, bir terslik çıktığında uyarı üreten veya duruma göre önlem alanlar ve istatistik tutanlar olarak iki kategoriye ayrılabilir. Nagios ağınızdaki servisleri sürekli olarak takip altında tutar ve bu servislerde sıradışı bir durum oluşması halinde sizi e-posta, SMS, Jabber gibi servisler üzerinden uyarır. Yaptığınız ayarlara göre Nagios belli koşullar altında sizin belirlediğiniz bir komutu çalıştırarak duruma müdahale de edebilir. Nagios tarzı yazılımların bu güzel özelliklerine karşılık önemli bir eksikleri, oluşan durumlara ilişkin verdiği bilginin anlık olmasıdır. Nagios size sistemin o anki durumunu sunar. Her ne kadar geçmiş olayları takip edebileceğiniz bir kayıt sistemi içeriyorsa da size sistemin genel gidişatını izleyebileceğiniz istatistiki bilgiler sunmaz.
Monitoring Neden Yapılır? Örnek olarak : Sunucu(Server) ve Veri Depolama ünitelerinde(Storage); Disklerinizin kullanım oranları ve zamanla kapasite büyüme oranları nasıl? Donanımsal herhangi bir arıza durumu var mı? Gün içerisinde işlemci (CPU) bellek (memory) kullanım durumları? Bazı uygulamalar yada kullanılmayan servisler gereksiz yoğunluklar oluşturuyor mu?
Monitoring Neden Yapılır? Disk doluluk oranının %90’lara ulaştı mı? Sunucuların ethernet kartlarının yoğunluk durumları ? Web sayfalarının hızları ve cevap verme süreleri nedir ? FTP, Web, Mail servisleri çalışıyor mu? ….. Kısaca veri merkezinde olup bitenleri bilmek ve anlık müdahalelerde bulunmak adına monitoring yapılır.
ZABBIX ile Sunucu Performansının İzlenmesi İstatistiksel izleme yazılımları işte tam olarak Nagios gibi anlık izleme yazılımlarının bu eksiğini kapatırlar. İstatistiksel bir izleme yazılımı size ağ üzerinde izlediğiniz sistemlerin günlük, haftalık, aylık ve yıllık hareket biçimlerine ilişkin raporlar sunar. Bu raporlar sayesinde sisteme daha geniş bir açıdan bakarak sistem ihtiyaçlarını daha kesin bir biçimde saptamanız ve ileride oluşabilecek problemlere ilişkin daha sağlıklı projeksiyonlar yapmamız mümkün olur. http://izzetaltinel.com/post/detay/29/Munin_Nedir_.html
Zabbix nedir? Zabbix, BT altyapı bileşenlerinin performansı için tasarlanmış enterprise seviyede açık kaynaklı kodlu uygulama izleme yazılımıdır. Zabbix ile oldukça başarılı izleme ve yönetme senaryoları kurabilir. Zabbix ile sisteminizdeki sunucuları, network cihazlarını, printer vb. aygıtları izleyebilir. Ftp, http, snmp vb. servisleri izleyerek oluşacak durumlara göre bildirim alabilir. Önceden tanımlanan olaylara göre sistem yöneticisine e-mail, jabber ya da sms ile bildirimler gönderilebilir.
Zabbix Yazılımının Genel Özellikleri Bu yazılımın bilgi işlem faaliyetleri için önemli sayılabilecek bazı özellikleri şu şekilde verilebilir. GPL ile lisanslama Gerçek zamanlı grafik Yüksek verimlilik ve kullanılabilirlilik Web üzerinden kolay kurulum ve yapılandırma Veritabanında tarihsel bilgiler saklama Ağ cihazlarını otomatik keşif Stabil çalışma Güvenli kullanıcı doğrulama (AD/LDAP) entegrasyonu ile kullanıcılara izinler ve yetkiler tanımlanabilme Veritabanı : MySQL, PostgreSQL, MongoDB, Oracle, ya da SQLite
Zabbix nasıl çalışır Zabbix yazılımı CPU, memory ve port durumlarını da monitör edebilen bir yazılımdır. Apache, Mysql ve Php ile beraber çalışır. Snmp protokolü kullanan Zabbix yazılımı TCP 10050 portunu kullanır. Sunucu tarafına Zabbix Server modülünün, performansın izleneceği client tarafına da Zabbix agent modülünün kurulması gerekmektedir. Client sunuculara yüklenen agent vasıtasıyla istenen Windows ve Linux platformundaki tüm sunucuların performans bilgileri monitör edilebilmektedir. İstenildiği şekilde grafiksel raporlar üretilebilmektedir.
Zabbix ön paketlerin yüklenmesi #yum clean all #yum repolist #yum install httpd httpd-devel #yum install mysql mysql-server #yum install php php-cli php-common php-devel php-pear php-gd php-mbstring php-mysql php- xml
Zabbix ön paketlerin yüklenmesi
Mysql paketlerinin yüklenmesi CentOS/RHEL 6: # rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_ 64/zabbix-release-2.2-1.el6.noarch.rpm CentOS/RHEL 5: # rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/5/x86_ 64/zabbix-release-2.2-1.el5.noarch.rpm #yum install zabbix-server-mysql zabbix-web- mysql zabbix-agent zabbix-java-gateway
Mysql kurulumu # mysql_secure_installation komutu kullanılarak mysql kurulumu yapılır. > Create Database zabbix Character Set Utf8; >GRANT ALL PRIVILEGES on zabbix.* to 'zabbix'@'localhost' IDENTIFIED BY 'SECRET_PASSWORD'; > FLUSH PRIVILEGES; > quit #mysql -u zabbix -p zabbix < /usr/share/doc/zabbix- server-mysql-2.2.6/create/schema.sql #mysql -u zabbix -p zabbix < /usr/share/doc/zabbix- server-mysql-2.2.6/create/images.sql # mysql -u zabbix -p zabbix < /usr/share/doc/zabbix- server-mysql-2.2.6/create/data.sql
Php yapılandırması “/etc/httpd/conf.d/zabbix.conf” dosyası içiresinde timezone ayarlarının aşağıdaki gibi yapılandırılması gerekmektedir. PHP paketlerinin kurulumu sonrasında “/etc/php.ini” dosyası default olarak aşağıdaki değerler gelecektir, max_execution_time = 600 max_input_time = 600 memory_limit = 256M post_max_size = 32M upload_max_filesize = 16M php_value date.timezone Asia/Istanbul ya da php_value date.timezone Europe/Istanbul
Servislerin yeniden başlatılması # chkconfig httpd on ; service httpd restart # chkconfig mysqld on ; service mysqld start # chkconfig zabbix-server on ; service zabbix- server start
Konfigurasyon ayarları http://sunucuipsi/zabbix/setup.php
Konfigurasyon ayarları
Zabbix Server Monitor Ekrani
windows zabbix agent kurulumu Kurulum için öncelikle ihtiyacınız olan Zabbix Agent dosyalarıdır. Agent dosyalarına http://www.zabbix.com/download.php sayfasında yer alan Zabbix “pre-compiled agents” başlığı altında bulunan paketlerden sunucu sistemine uygun olan agent dosyalarının indirilmesi gerekmektedir. zabbix_agentd.conf dosyasının içeriği aşağıdaki gibi olmalıdır. Server= [zabbix server ip] Hostname= [Hostname of client system] ListenPort=10050 DebugLevel=3 LogFile=C:\Zabbix\zabbix_agentd.log
windows zabbix agent kurulumu Server: Zabbix sunucusunun full adı veya IP adresi (zabbix.alanadiniz.com gibi) Hostname: Zabbix sunucuda bu bilgisayar için vereceğiniz unique isimdir. Örneğin MailServer ListenPort: Zabbix sunucunuzun isteklerini hangi porttan dinleyeceğini seçebilirsiniz. Standard olarak 10050 portu kullanılır. DebugLevel: Olası sorunları bulmanıza yarayacak log kayıt düzeyidir. Varsayılan düzey 3 olarak gelmektedir. Düzey 3 olduğunda hataları kaydeder. Tüm süreçleri log’layarak sorun çözmek için bu düzeyi 4 yapabilirsiniz. LogFile: Logları nereye kaydedeceğini belirten satırdır.
windows zabbix agent kurulumu Yönetici olarak Command satırı çalıştırıldıktan sonra C:\Zabbix klasörü içerisine girilerek C:\cd zabbix> zabbix_agentd.exe --install ( install yap) C:\cd zabbix> zabbix_agentd.exe --install -s (otomatik starta ekle)
LINUX zabbix agent kurulumu CentOS/RHEL 6: # rpm -Uvh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/z abbix-release-2.2-1.el6.noarch.rpm # yum install zabbix zabbix-agent Ubuntu 12.04 LTS: # wget http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/ma in/z/zabbix-release/zabbix-release_2.2- 1+precise_all.deb # dpkg -i zabbix-release_2.2-1+precise_all.deb # apt-get update # apt-get install zabbix-agent
LINUX zabbix agent kurulumu “/etc/zabbix/zabbix_agentd.conf “ dosyasında yapılması gereken değişiklikler, Server=[zabbix server ip] Hostname=[ Hostname of client system ] DebugLevel=3 ListenPort=10050 LogFile=/var/log/zabbix/zabbix_agentd.log Konfigurasyon dosyasının içeriği tamamlandıktan sonra agent servisinin çalıştırılması gerekmektedir. # /etc/init.d/zabbix-agent start # /etc/init.d/zabbix-agent stop # chkconfig zabbix-agent on
Hitit üniversitesinde zabbix kullanımı
Uyarı (trigger) ekranı
CPU – Yük grafiği
Ethernet kullanim grafiği
Network cihaz grafiği
Web sayfası grafikleri
Sistemin ayakta kalma süresi
ÖZEL EKRAN
Alınan Son veriler
Alınan Son veriler
En iyi sistem izleme araçları Top 5 best system monitoring tools www.thegeekstuff.com - 2009
Yazılım karşılaştırması - 2013 Feature Nagios Zenoss Zabbix Basic features (CPU, disk, memory) YES Auto discovery Partial License Free Inventory Support No Plug in support Web Dashboard Good Excellent Windows Monitering SNMP Trapping Syslog Monitering Trend Analysis Google Maps View NO Graphical Reports User friendly configuration Performance and reliability Medium High Low Plug-in API support Security Monitering http://community.scmgalaxy.com/blog/view/41160/a-comparison-of-nagios-zenoss-and-zabbix - 2013 http://kkovacs.eu/zabbix-vs-nagios
Alternatif sunucu monıtor yazılımları Nagios Core Nagios Core, açık kaynaklı, bir ağ ve sistem izleme yazılımıdır. Bir ağdaki bileşenlerde ortaya çıkan problemleri ön tanımlı kritik seviyelere ulaşmadan önce sistem yöneticilerine iletir ve problemler ile ilgili çözümler ortaya koyabilir.
Cacti Cacti, açık kaynak kodlu, network üzerinde bulunan cihazların bellek, disk, ağ bantgenişliği kullanımı CPU yükü gibi bilgilerini web arabiriminde grafiksel olarak gösteren bir uygulamadır. Network üzerinde bilgiler toplamak için SNMP ve RRDTool uygulamasını kullanmaktadır.
ICINGA Zabbix Icinga Hazır denetimler içerir. Denetim eklemek betik yazmayı gerektirir. Gelişmiş grafik çizme özelliği vardır. Grafik çizmek için ek uygulamaya ihtiyaç duyar. Web arayüzü özelleştirilebilir. Salt okunur yapıda bir arayüzü vardır. Kullanıcılara yetkilendirme yapabilir. Yetkilendirme özelliği yok. Autodiscovery özelliği var. Autodiscovery özelliği yok.
MUNIN
ZENOSS Zenoss yaptığı işe göre sistem kaynaklarını fazla tüketiyor.
Opmanager Uçtan uca ağ izleme yazılımıdır. Kritik yönlendiriciler, Wan linkleri, anahtarlar, güvenlik duvarları, VoIP çağrı yolları, fiziksel ve sanal sunucular, domain denetleyicileri ve diğer BT altyapı cihazları gibi BT kaynaklarını kapsayan gelişmiş hata ve performans yönetimi işlevselliği sağlar.
SONUÇLAR Zabbix yazılımı ile bilgi işlem sistem odasında kullanılan fiziksel ve sanal sunucuların CPU, HDD, RAM, ethernet kartı ve disk kapasiteleri monitör edilebilmekte, sunuculardan alınan değerler grafiksel olarak görüntülenebilmekte ve bu değerler üzerinden raporlama ve analiz yapma olanağı sunulmaktadır. Bu analiz ve raporlar yardımıyla doğru zamanda ve doğru bileşene acil müdahale ve bakım onarım süreci hızlanmaktadır.
SONUÇLAR Kurulumu ve yapılandırması kolay olan Zabbix programının GPL ile lisanslanması sayesinde kurumlara herhangi ek bir maliyeti getirmediğinden ücretli paket yazılımlara nispeten karar ve destek anlamında ikna edici bir özelliğe sahiptir. Yazılım tarafından üretilen anlık uyarı mesajlarının mail adresine yönlendirilmesi sayesinde program başında olunmasa bile kontrol sağlanmış olmaktadır. Özel konfigürasyonlar yardımıyla farklı izleme ve raporlama seçenekleri de yapılandırılabilir.
Monitoring sonucu Soruna daha kısa sürede müdahale Daha kısa sürede çözüm Analiz ve optimizasyon Performanslı çalışan sunucular.
TEŞEKKÜRLER Mustafa COŞAR - İsmail ARIK - Murat DOĞAN Hitit Üniversitesi Bilgi İşlem Daire Başkanlığı