Ubuntu 12.04 Bulut Sunucuda Cacti Sunucu İzleme Kurulumu
Giriş
Sunucu ve ağ altyapısı yönetimi, günümüzün dijital dünyasında kritik öneme sahiptir. Sistemlerin kesintisiz ve optimum performansla çalışmasını sağlamak, olası sorunları proaktif bir şekilde tespit etmek ve kapasite planlaması yapmak için kapsamlı bir izleme çözümü şarttır. Cacti, bu ihtiyaçları karşılamak üzere tasarlanmış, açık kaynaklı ve web tabanlı güçlü bir ağ grafikleme çözümüdür. RRDtool (Round Robin Database tool) üzerine inşa edilen Cacti, CPU kullanımı, bellek tüketimi, disk G/Ç, ağ trafiği gibi çeşitli metrikleri toplar, saklar ve anlaşılır grafikler halinde görselleştirir. Bu makalede, Ubuntu 12.04 işletim sistemine sahip bir bulut sunucu üzerinde Cacti’nin adım adım nasıl kurulacağını ve temel yapılandırmasının nasıl yapılacağını detaylı bir şekilde inceleyeceğiz. Ubuntu 12.04 her ne kadar eski bir sürüm olsa da, bu makale spesifik olarak bu ortamda kurulum ihtiyacı olan kullanıcılara yönelik hazırlanmıştır.
Cacti, özellikle zaman serisi verilerini izlemek ve görselleştirmek için idealdir. Sistem yöneticilerine, ağ performansındaki eğilimleri analiz etme, darboğazları belirleme ve uzun vadeli kapasite planlaması yapma yeteneği sunar. Basit SNMP (Simple Network Management Protocol) cihazlarından karmaşık sunucu sistemlerine kadar geniş bir yelpazede izleme yeteneği sunarak, altyapınızın nabzını tutmanızı sağlar. Kurulum süreci, bir LAMP (Linux, Apache, MySQL, PHP) yığınının kurulmasını, SNMP servislerinin yapılandırılmasını ve Cacti’nin kendisinin entegrasyonunu içerir. Bu adımları dikkatlice takip ederek, Ubuntu 12.04 bulut sunucunuzda kendi Cacti izleme sisteminizi başarıyla kurabileceksiniz.
Ön Gereksinimler ve Sistem Güncellemesi
Cacti kurulumuna başlamadan önce, Ubuntu 12.04 bulut sunucunuzun temel gereksinimlerini karşıladığından emin olmalıyız. Bu gereksinimler, yeterli işlem gücü, bellek ve disk alanı gibi donanımsal faktörlerin yanı sıra, güncel yazılım paketlerini de kapsar. Sunucuya SSH üzerinden root veya sudo yetkilerine sahip bir kullanıcı ile erişebildiğiniz varsayılmaktadır.
İlk adım olarak, sistemdeki paket listesini güncelleyelim ve mevcut paketleri yükseltelim. Bu, olası bağımlılık sorunlarını önlemeye ve en güncel güvenlik yamalarını almanıza yardımcı olacaktır:
sudo apt-get update
sudo apt-get upgrade -y
Bu komutlar, sunucunuzun paket bilgilerini tazeler ve kurulu tüm paketleri en son kararlı sürümlerine yükseltir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vererek işlemi kesintisiz hale getirir.
LAMP Yığını Kurulumu
Cacti, web tabanlı bir uygulama olduğu için bir web sunucusu, bir veritabanı ve PHP yorumlayıcısına ihtiyaç duyar. Bu bileşenler toplu olarak LAMP yığını olarak bilinir.
Apache Web Sunucusu Kurulumu
Apache, dünya genelinde en yaygın kullanılan web sunucularından biridir ve Cacti için mükemmel bir seçimdir. Kurulumu oldukça basittir:
sudo apt-get install apache2 -y
Kurulum tamamlandıktan sonra, web tarayıcınızdan sunucunuzun IP adresine giderek Apache’nin çalışıp çalışmadığını kontrol edebilirsiniz. Varsayılan bir “It works!” sayfası görmelisiniz.
MySQL Veritabanı Sunucusu Kurulumu
Cacti, tüm yapılandırma verilerini ve izleme meta verilerini saklamak için bir veritabanına ihtiyaç duyar. MySQL, bu amaç için ideal ve Cacti tarafından desteklenen bir veritabanı sistemidir.
sudo apt-get install mysql-server mysql-client -y
Kurulum sırasında MySQL root kullanıcısı için bir parola belirlemeniz istenecektir. Bu parolayı güvenli bir yerde sakladığınızdan emin olun. Kurulumdan sonra, veritabanı sunucunuzun güvenliğini artırmak için mysql_secure_installation komutunu çalıştırmanız şiddetle tavsiye edilir:
sudo mysql_secure_installation
Bu komut, root parolasını yeniden ayarlama, anonim kullanıcıları kaldırma, uzaktan root girişi devre dışı bırakma ve test veritabanını kaldırma gibi güvenlik adımlarında size rehberlik edecektir. Genellikle tüm sorulara “evet” yanıtı vermek iyi bir uygulamadır.
PHP Kurulumu ve Gerekli Modüller
Cacti, PHP ile yazılmıştır, bu nedenle sunucuda PHP’nin kurulu olması ve Cacti’nin ihtiyaç duyduğu belirli modüllere sahip olması gerekir.
sudo apt-get install php5 php5-mysql php5-snmp php5-gd libapache2-mod-php5 -y
Bu komut, PHP5’i, MySQL ile iletişim kurmak için php5-mysql‘i, SNMP verilerini işlemek için php5-snmp‘yi ve grafik oluşturmak için php5-gd‘yi kurar. libapache2-mod-php5 ise Apache’nin PHP kodunu yorumlamasını sağlar.
PHP kurulumu tamamlandıktan sonra, Apache’nin yeni PHP modüllerini yüklemesi için yeniden başlatılması gerekir:
sudo service apache2 restart
PHP’nin doğru şekilde çalıştığını test etmek için /var/www dizininde bir info.php dosyası oluşturabilirsiniz:
sudo nano /var/www/info.php
Dosyanın içine aşağıdaki içeriği ekleyin:
Kaydedip çıktıktan sonra, web tarayıcınızdan http://your_server_ip/info.php adresine gidin. PHP yapılandırma bilgilerini içeren bir sayfa görmelisiniz. Güvenlik nedeniyle, bu dosyayı Cacti kurulumu tamamlandıktan sonra silmeyi unutmayın.
SNMP (Simple Network Management Protocol) Kurulumu
Cacti’nin izleme verilerini toplayabilmesi için SNMP protokolüne ihtiyacı vardır. SNMP, ağ cihazlarından ve sunuculardan bilgi toplamak için kullanılan standart bir protokoldür. Cacti sunucusunun kendisinden veri toplamak için snmpd (SNMP daemon) servisini kurup yapılandırmamız gerekmektedir.
sudo apt-get install snmp snmpd snmp-mibs-downloader -y
* snmp: SNMP istemci araçlarını içerir (örneğin snmpwalk).
* snmpd: SNMP ajanını çalıştıran sunucu tarafı daemon’dır.
* snmp-mibs-downloader: SNMP MIB (Management Information Base) dosyalarını indirir, bu da cihazlardan gelen verilerin daha anlamlı okunmasını sağlar.
snmpd servisi yüklendikten sonra, varsayılan yapılandırma dosyası genellikle sadece localhost üzerinden erişime izin verir. Cacti’nin sunucunun kendi IP adresinden veya diğer cihazlardan veri toplayabilmesi için bu dosyayı düzenlememiz gerekecek.
sudo nano /etc/snmp/snmpd.conf
Bu dosya içerisinde bazı değişiklikler yapmamız gerekiyor:
1. AGENTOPTS satırını bulun (veya ekleyin) ve udp:161,udp6:161 yerine udp:161 veya udp:161,tcp:161 gibi dinleyeceği adresleri belirtin. Genellikle varsayılan olarak tüm arayüzlerde dinlemesi için AGENTOPTS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a" satırını kullanabilirsiniz.
2. rocommunity veya rwcommunity satırlarını bulun. Varsayılan olarak yorum satırı yapılmış olabilirler. Aşağıdaki gibi bir satır ekleyerek veya mevcut olanı düzenleyerek bir “community string” tanımlayın. “public” yerine daha güvenli bir dize kullanmanız önerilir:
rocommunity public
Bu satır, “public” community string’i ile salt okunur (read-only) erişime izin verir.
3. MIB’lerin yüklenmesini sağlamak için, dosyanın en üstüne veya uygun bir yere aşağıdaki satırı ekleyebilirsiniz:
mibs : ALL
Değişiklikleri kaydedip çıktıktan sonra snmpd servisini yeniden başlatın:
sudo service snmpd restart
SNMP’nin doğru çalıştığını test etmek için sunucunun kendisinden bir snmpwalk komutu çalıştırabilirsiniz:
snmpwalk -v 2c -c public localhost IP-MIB::ipAdEntIfIndex
Eğer komut çıktı veriyorsa (örneğin IP adresleri ve arayüz indeksleri), SNMP servisi düzgün çalışıyor demektir.
RRDtool Kurulumu
Cacti, topladığı verileri depolamak ve grafiklere dönüştürmek için RRDtool’u kullanır. RRDtool, zaman serisi verilerini verimli bir şekilde depolayan ve işleyen özel bir veritabanı sistemidir. Cacti’nin düzgün çalışabilmesi için RRDtool’un kurulu olması zorunludur.
sudo apt-get install rrdtool -y
Bu komut RRDtool’u ve gerekli bağımlılıkları kuracaktır. Kurulum genellikle hızlıdır ve herhangi bir özel yapılandırma gerektirmez.
Cacti Kurulumu
Tüm bağımlılıklar kurulduktan sonra, sıra Cacti’nin kendisine geldi.
Cacti Dosyalarını İndirme ve Taşıma
Cacti’nin en son kararlı sürümünü Cacti resmi web sitesinden indirebilirsiniz. Ubuntu 12.04 döneminde genellikle 0.8.x sürümleri kullanılıyordu. Bu makalede örnek olarak cacti-0.8.8b sürümünü kullanacağız.
cd /tmp
wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
tar -zxvf cacti-0.8.8b.tar.gz
sudo mv cacti-0.8.8b /var/www/cacti
Bu komutlar, Cacti arşivini indirir, açar ve web sunucunuzun erişebileceği /var/www/cacti dizinine taşır.
Cacti Veritabanı Yapılandırması
Cacti için özel bir veritabanı ve kullanıcı oluşturmamız gerekiyor. Bu, Cacti’nin MySQL sunucusuna güvenli bir şekilde erişmesini sağlayacaktır.
MySQL’e root kullanıcısı olarak giriş yapın:
mysql -u root -p
MySQL root parolanızı girin. Ardından aşağıdaki SQL komutlarını çalıştırın:
CREATE DATABASE cacti;
GRANT ALL ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'cactipassword';
FLUSH PRIVILEGES;
EXIT;
* CREATE DATABASE cacti;: Cacti için cacti adında yeni bir veritabanı oluşturur.
GRANT ALL ON cacti. TO 'cactiuser'@'localhost' IDENTIFIED BY 'cactipassword';: cactiuser adında yeni bir MySQL kullanıcısı oluşturur, bu kullanıcıya cacti veritabanı üzerinde tam yetki verir ve cactipassword olarak belirlediğiniz bir parola atar. (Güvenlik için cactipassword yerine güçlü bir parola kullanmalısınız.)
* FLUSH PRIVILEGES;: MySQL’in yeni yetkileri hemen tanımasını sağlar.
Şimdi Cacti’nin veritabanı şemasını oluşturduğumuz cacti veritabanına aktarmamız gerekiyor:
mysql -u cactiuser -p cactipassword cacti < /var/www/cacti/cacti.sql
Bu komutta cactipassword yerine yukarıda belirlediğiniz parolayı kullanmalısınız.
Cacti Yapılandırma Dosyası
Cacti'nin veritabanı bağlantı bilgilerini bilmesi gerekir. Bu bilgiler config.php dosyasında saklanır.
sudo nano /var/www/cacti/include/config.php
Bu dosyayı açın ve aşağıdaki satırları kendi veritabanı bilgilerinizle güncelleyin:
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactipassword";
$database_port = "3306";
database_username ve database_password değerlerinin, MySQL'de oluşturduğunuz cactiuser ve parolanızla eşleştiğinden emin olun.
Dosya ve Dizin İzinleri
Cacti'nin RRDtool grafiklerini oluşturabilmesi ve log dosyalarını yazabilmesi için belirli dizinlere yazma iznine sahip olması gerekir. Apache web sunucusunun çalıştığı kullanıcı (www-data) bu dizinlere erişebilmelidir.
sudo chown -R www-data:www-data /var/www/cacti
sudo chmod -R 775 /var/www/cacti/rra
sudo chmod -R 775 /var/www/cacti/log
* İlk komut, /var/www/cacti dizininin ve tüm alt dizinlerinin sahipliğini www-data kullanıcısına ve grubuna atar.
* İkinci ve üçüncü komutlar, RRDtool verilerinin depolandığı rra dizinine ve Cacti loglarının tutulduğu log dizinine www-data kullanıcısının ve grubunun yazma izni olmasını sağlar.
Web Tabanlı Cacti Kurulumu
Artık Cacti'nin web tabanlı kurulum sihirbazını başlatmaya hazırız. Web tarayıcınızı açın ve sunucunuzun IP adresini takip eden Cacti dizini ile erişin:
http://your_server_ip/cacti
Cacti kurulum sihirbazı sizi aşağıdaki adımlarda yönlendirecektir:
1. Welcome to Cacti: İlk karşılama ekranı. İleri'ye tıklayın.
2. Installation Type: "New Install" seçeneğini seçin ve İleri'ye tıklayın.
3. Directory and File Permissions: Cacti, tüm gerekli dosya ve dizinlerin yazma izinlerini kontrol edecektir. Her şey yeşil renkte görünmelidir. Eğer herhangi bir hata varsa, yukarıdaki izin adımlarını kontrol edin. İleri'ye tıklayın.
4. MySQL Database Settings: config.php dosyasında belirttiğiniz veritabanı bağlantı bilgilerini burada göreceksiniz. Doğru olduklarından emin olun ve İleri'ye tıklayın.
5. Cacti Paths: Cacti, rrdtool, php, snmpwalk, snmpget gibi temel araçların yollarını otomatik olarak algılamaya çalışacaktır. Genellikle varsayılan yollar doğrudur. Her şeyin doğru olduğunu kontrol edin ve İleri'ye tıklayın.
6. Installation Complete: Kurulum tamamlandığında bir özet ekranı göreceksiniz. "Finish" butonuna tıklayarak kurulumu bitirin.
Kurulum tamamlandıktan sonra, Cacti giriş ekranına yönlendirileceksiniz. Varsayılan kullanıcı adı admin ve varsayılan parola da admin'dir. İlk girişinizde bu parolayı değiştirmeniz istenecek ve bu kritik bir güvenlik adımıdır.
Cacti Poller Yapılandırması
Cacti, izleme verilerini düzenli aralıklarla toplamak için bir "poller" (veri toplayıcı) kullanır. Bu poller, cmd.php betiği aracılığıyla çalışır ve genellikle bir cron işi olarak ayarlanır. Bu sayede Cacti, belirli aralıklarla otomatik olarak veri toplayabilir ve grafiklerini güncelleyebilir.
www-data kullanıcısı için bir cron işi oluşturalım:
sudo crontab -e -u www-data
Bu komut, www-data kullanıcısının cron tablosunu düzenlemek için bir düzenleyici açacaktır. Açılan dosyaya aşağıdaki satırı ekleyin:
/5 * php /var/www/cacti/cmd.php > /dev/null 2>&1
Bu satır, Cacti poller'ını her 5 dakikada bir çalıştıracaktır. > /dev/null 2>&1 kısmı, komutun çıktısını ve hata mesajlarını susturarak cron loglarının şişmesini engeller. Bu cron işi, Cacti'nin düzenli olarak veri toplamasını ve grafiklerini güncellemesini sağlar.
Cacti Web Arayüzünde İlk Yapılandırma
Cacti kurulumunu tamamladık ve poller'ı ayarladık. Şimdi Cacti web arayüzüne giriş yaparak temel yapılandırmaları yapalım.
Varsayılan Parolayı Değiştirme
Cacti'ye ilk kez admin/admin kullanıcı adı ve parolasıyla giriş yaptığınızda, sistem sizden parolanızı değiştirmenizi isteyecektir. Bu, güvenliğiniz için atılması gereken ilk ve en önemli adımdır. Güçlü bir parola belirlediğinizden emin olun.
Cihaz Ekleme
Cacti'nin izlemeye başlaması için cihazları eklemeniz gerekir. İlk olarak Cacti sunucunun kendisini izlemeye başlayabiliriz.
1. Cacti arayüzünde sol menüden Console -> Devices'a gidin.
2. Sağ üst köşedeki Add butonuna tıklayın.
3. Aşağıdaki alanları doldurun:
* Description: Sunucu Adı (örneğin "Ubuntu Cacti Sunucusu")
* Hostname: localhost veya sunucunuzun IP adresi
* Host Template: "Generic SNMP Host" seçeneğini seçin. Bu şablon, temel CPU, bellek ve ağ arayüzü izlemesi için gerekli veri kaynaklarını ve grafik şablonlarını otomatik olarak yükleyecektir.
* SNMP Version: "Version 2" (veya "Version 2c") seçin.
* SNMP Community: public (veya snmpd.conf dosyasında belirlediğiniz community string).
* SNMP Port: 161 (varsayılan)
* SNMP Timeout: 500 (varsayılan)
4. Formu doldurduktan sonra Create butonuna tıklayın.
5. Cihaz oluşturulduktan sonra, cihaz listesinde yeni eklediğiniz cihazı göreceksiniz. Cihazın durumunun yeşil bir simgeyle "Up" olduğunu ve SNMP bilgilerinin doğru bir şekilde alındığını kontrol edin. Eğer "Unknown" veya kırmızı bir simge görüyorsanız, SNMP yapılandırmanızı ve ağ bağlantısını kontrol etmeniz gerekebilir.
Grafik Oluşturma
Cihazı ekledikten sonra, bu cihaz için grafikler oluşturabiliriz.
1. Cihaz listesinden yeni eklediğiniz cihazın üzerine tıklayın.
2. Açılan sayfanın alt kısmında "Associated Graph Templates" veya "Create Graphs for this Host" gibi bir bölüm göreceksiniz.
3. Buradan izlemek istediğiniz grafikleri seçin (örneğin CPU Kullanımı, Bellek Kullanımı, Disk Alanı, Ağ Arayüzleri).
4. Seçtikten sonra Create veya Add butonuna tıklayın.
5. Grafiklerin oluşturulduğunu ve "Graph Management" bölümüne eklendiğini göreceksiniz.
Grafik Ağaçları (Graph Trees)
Grafik ağaçları, izlediğiniz cihazları ve grafikleri düzenli bir şekilde organize etmenizi sağlar.
1. Sol menüden Console -> Graph Trees'e gidin.
2. Sağ üst köşedeki Add butonuna tıklayarak yeni bir ağaç oluşturun (örneğin "Sunucularım").
3. Oluşturduğunuz ağaca tıklayın.
4. "Add Item" butonuna tıklayarak ağaca cihazlar veya grafikler ekleyebilirsiniz. "Host" seçeneğini seçip az önce eklediğiniz Cacti sunucusunu ağaca ekleyin.
5. Artık sol menüdeki "Graphs" sekmesine gittiğinizde, oluşturduğunuz ağaç yapısını ve altında izlediğiniz tüm grafikleri görebilirsiniz. Grafikler ilk başta boş olabilir; verilerin toplanması ve grafiklerin oluşması için birkaç poller döngüsünün (5-10 dakika) geçmesi gerekebilir.
Yaygın Sorun Giderme
Cacti kurulumu sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:
Grafikler Boş veya Hiç Oluşmuyor
* İzinler: /var/www/cacti/rra ve /var/www/cacti/log dizinlerinin www-data kullanıcısı tarafından yazılabilir olduğundan emin olun. (sudo chmod -R 775 /var/www/cacti/rra ve sudo chmod -R 775 /var/www/cacti/log).
* Cron Job: crontab -e -u www-data komutuyla cmd.php için cron işinin doğru ayarlandığından ve çalıştığından emin olun. Manuel olarak php /var/www/cacti/cmd.php komutunu çalıştırarak bir hata olup olmadığını kontrol edebilirsiniz.
* Cacti Logları: Cacti'nin kendi log dosyasını kontrol edin: /var/www/cacti/log/cacti.log. Burada poller ile ilgili hatalar veya veri toplama sorunları hakkında bilgi bulabilirsiniz.
* SNMP Servisi: İzlenen cihazda (bu durumda Cacti sunucusunun kendisi) snmpd servisinin çalıştığından ve doğru yapılandırıldığından emin olun. snmpwalk -v 2c -c public localhost komutunu çalıştırarak SNMP verilerinin alınıp alınmadığını test edin.
* RRDtool Yolları: Cacti web arayüzünde Console -> Configuration -> Settings -> Paths sekmesindeki RRDtool yollarının doğru olduğundan emin olun.
Web Arayüzü Erişim Sorunları
* Apache Servisi: Apache'nin çalıştığından emin olun: sudo service apache2 status. Gerekirse sudo service apache2 restart ile yeniden başlatın.
* Güvenlik Duvarı: Sunucunuzda bir güvenlik duvarı (örn. ufw) etkinse, 80 (HTTP) portunun açık olduğundan emin olun: sudo ufw allow 80.
* Apache Logları: Apache hata loglarını kontrol edin: /var/log/apache2/error.log ve /var/log/apache2/access.log.
* PHP Hataları: PHP'nin bellek limiti veya diğer yapılandırma sorunları, Cacti arayüzünde hatalara neden olabilir. php.ini dosyasını (/etc/php5/apache2/php.ini) kontrol ederek memory_limit gibi ayarları gerektiğinde artırabilirsiniz.
MySQL Bağlantı Hataları
* MySQL Servisi: MySQL sunucusunun çalıştığından emin olun: sudo service mysql status.
* Cacti config.php: /var/www/cacti/include/config.php dosyasındaki veritabanı kullanıcı adı, parola ve ana bilgisayar bilgilerinin doğru olduğundan emin olun.
* MySQL Kullanıcısı Yetkileri: cactiuser kullanıcısının cacti veritabanı üzerinde gerekli yetkilere sahip olduğunu MySQL'e bağlanarak kontrol edin.
Sonuç
Bu makalede, Ubuntu 12.04 bulut sunucu üzerinde Cacti sunucu izleme sisteminin baştan sona kurulumunu ve temel yapılandırmasını detaylı bir şekilde ele aldık. LAMP yığınını kurmaktan, SNMP servislerini yapılandırmaya, Cacti dosyalarını dağıtmaya ve web arayüzü üzerinden ilk cihazı eklemeye kadar tüm adımları takip ettik. Cacti, sunucu ve ağ altyapınızın performansını görselleştirerek, olası sorunları proaktif bir şekilde tespit etmenize ve daha iyi kapasite planlaması yapmanıza olanak tanıyan paha biçilmez bir araçtır.
Kurulum sürecinin, özellikle eski bir işletim sistemi olan Ubuntu 12.04'te dikkatli adımlar gerektirdiğini gördük. Doğru bağımlılıkların kurulması, dosya izinlerinin ayarlanması ve cron işinin yapılandırılması, Cacti'nin sorunsuz çalışması için kritik öneme sahiptir. Karşılaşılabilecek yaygın sorunlara yönelik çözüm önerileri de, kurulum sonrası olası aksaklıkların giderilmesine yardımcı olacaktır.
Cacti'nin potansiyeli oldukça geniştir. Bu temel kurulumun ardından, daha fazla cihaz ekleyebilir, farklı veri toplama yöntemlerini (örneğin SSH veya özel betikler) kullanabilir, gelişmiş şablonlar ve eklentilerle işlevselliğini genişletebilirsiniz. Sürekli izleme, sağlıklı ve istikrarlı bir IT altyapısının temel taşıdır ve Cacti bu yolda size güçlü bir destek sağlayacaktır. Unutmayın, iyi bir izleme sistemi, herhangi bir altyapı yöneticisinin en iyi dostudur.
