You are here: Home » Linux » Cacti Kurulumu

Cacti Kurulumu

09 Şubat 2011 | Leave a comment(4) Go to comments

Cacti, ağınızda bulunan cihazlar için aktif izleme yapabileceğiniz yani bu aktif network cihazlarının ram kullanımı, cpu kullanımı, disk kullanımı, ağ kullanımı, sistem yükü gibi değerlerini grafiksel olarak bir web arayüzünde size raporlayabilen bir ağ izleme yazılımıdır. Bilgileri alabilmek için SNMP kullanır ve aldığı bu bilgilerden anlamlı grafikler oluşturabilmek için rrdtool aracını kullanır. Eğer Cacti’yi tüm paketleri derleyerek kurmak istiyorsanız 2006 yılında yazılmış şu yazıya bir göz atabilirsiniz. (Cacti-El-Kitabi) Biz kurulumu “yum” paket yöneticisini kullanarak gerçekleştireceğiz. Bu sayede çok daha hızlı ve kolay bir şekilde kurulumu tamamlayabileceğiz.

Kurulum işlemine başlayabiliriz. Kurulum için ben Centos 5.5 32-bit işletim sistemini kullanacağım. Daha önce 64-bit Centos üzerinde de kurdum herhangi bir sorunla karşılaşmadım. Diğer sürümler için de bu adımları uygulayabilirsiniz belki sadece rrdtool kurulumunu derleyerek yapmak zorunda kalabilirsiniz fakat onu da derleyerek kurmak gerçekten kolay.

Evet Cacti, aslında php ile yazılmış dinamik bir web uygulaması olarak düşünülebilir. Dolayısıyla öncelikle çalışan bir web sunucumuz olmalı. Bu sunucunun üzerinde php ve mysql desteği aktiflenmiş olmalı. Daha sonra Cacti için gerekli paketleri kurmaya devam edebiliriz.

Centos 5.5 üzerinde default Desktop kurulumu ile web sunucu olarak apache yani httpd kurulmuş olarak geliyor. Yine de her ihtimale karşı siz şu komutları vererek web sunucu tarafında ihtiyacımız olan paketlerin tamamını kurun.

[root@endersys ~]# yum install httpd php mysql mysql-server php-mysql

Yukarıdaki komut ile kurdugumuz paketler sırasıyla şöyle : apache web sunucu paketi, php paketi, mysql client paketi yani mysql sunucuya baglantı işlemini sağlayacak paket, mysql database sunucu paketi, php üzerinde mysqlin çalışmasını sağlayacak paket

Bu durumda browserınızın adres çubuğuna 127.0.0.1 yazarak web sunucunuzun çalıştığını görebilirsiniz. Sizi resimndeki gibi bir sayfa karşılıyorsa web sunucunuz çalışıyor demektir. Kurduğumuz apache ve mysql servislerinin sunucu reboot olsa bile başlangıçta otomatik olarak başlamasını sağlamak için aşağıdaki komutları girmeliyiz.

[root@endersys ~]# chkconfig mysqld on
[root@endersys ~]# chkconfig httpd on

Daha sonra Cacti’nin son sürümünü sitesinden indirerek web sunucumuzun gösterdiği default pathe sıkıştırılmış dosyayı açalım.

http://www.cacti.net/download_cacti.php Bu sayfadaki Cacti for Linux/Unix linkini tıklayarak son sürümü indirebilirsiniz ya da aşağıda yazdığım kodlar arasında wget ile başlayan satırı kullanarak da indirme işlemini gerçekleştirebilirsiniz.  (bu yazıyı yazdığımda son stable sürüm Cacti 0.8.7g)

[root@endersys ~]# cd /var/www/html/
[root@endersys ~]# wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz
[root@endersys ~]# tar xzvf cacti-0.8.7g.tar.gz
[root@endersys ~]# mv cacti-0.8.7g cacti

Cacti için kullanacağımız veritabanını oluşturalım ve az önce açtıgımız dosyalar arasında cacti.sql dosyasının içerisindeki tüm tablo ve diğer tanımlamaları, oluşturduğumuz veritabanına aktaralım. Daha sonra mysql üzerinde oluşturduğumuz “cactiuser” kullanıcısına mysql tarafında gerekli tüm izinleri verelim ve cactiuser kullanıcısının şifresini cactiuser yapalım.

[root@endersys ~]# mysqladmin create cacti
[root@endersys ~]# mysql cacti < /var/www/html/cacti/cacti.sql
[root@endersys ~]# mysql -u root mysql
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘cactiuser’;
mysql> flush privileges;
mysql> exit

Eğer mysql kurulumunu ilk defa yapmıyorsanız muhtemelen yukarıdaki komutlar çalışmayacaktır. Yukarıdaki komutlar yerine mysql ve mysqladmin komutlarını aşağıdaki parametrelerle çalıştırırsanız sıkıntı olmayacaktır. ” -u [kullanıcıadı] -p ” paramtetreleri ilgili kullanıcıyla bağlan ve şifre sor anlamında kullanılır. Her yazdığınız komuttan sonra ilgili kullanıcının şifresini sizden isteyecektir.

[root@endersys ~]# mysqladmin -u root -p create cacti
[root@endersys ~]# mysql -u root -p cacti < /var/www/html/cacti/cacti.sql
[root@endersys ~]# mysql -u root -p mysql
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘cactiuser’;
mysql> flush privileges;
mysql> exit

Evet şimdiye kadar olan bölümde web sunucusunu php ve mysql destekli olarak çalıştırdık daha sonra cactiyi web sunucumuzun web folderında açtık ve mysql database oluşturup cactinin ihtiyaç duydugu tabloları ve izinleri ayarladık.  Şimdi ise cacti’nin config dosyasını oluşturduğumuz veritabanı ve kullanıcı bilgilerine göre düzenleyip rrdtool ve SNMP için gerkeli paketlerin kurulumunu gerçekleştireceğiz .

Önce rrdtool ve snmp paketlerinin kurulumunu gerçekleştirelim. Rrdtool paketini normalde Centos’un üzerinde gelen yum repository ile yüklemek mümkün değil fakat yeni bir repo tanımlayarak rrdtool paketini yum ile kolayca yükleyebiliriz.

rrdtool kurulumu için kullanacağımız repo tanımını yapalım. Aşağıdaki komut ile yeni bir repo conf dosyası oluşturuyoruz.

[root@endersys ~]# vi /etc/yum.repos.d/dag.repo

Daha sonra oluşturdugumuz bu dosyanın içerisine aşağıdaki satırları ekliyoruz.

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1

Evet yeni repository’mizi tanımladık. Artık yum ile rrdtool kurulumunu gerçekleştriebiliriz.

[root@endersys ~]# yum install rrdtool

Oluşturdugunuz bu repository’i bir daha kullanmak istemiyorsanız aşağıdaki komut ile silebilirsiniz.

[root@endersys ~]# rm /etc/yum.repos.d/dag.repo

Şimdi de SNMP araçları için gerekli olan paketimizi kuralım.

[root@endersys ~]# yum install net-snmp-utils

Evet son olarak Cacti’nin config dosyasını aşağıdaki gibi düzeltiyoruz.

vi ile config.php dosyasını açıyoruz

[root@endersys ~] vi /var/www/html/cacti/include/config.php

Daha sonra aşağıda belirttiğim satırları bulup değiştiriyoruz.

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";

Evet artık cacti’yi web üzerinden yapılandırabiliriz. Browserınızın addres satırına http://127.0.0.1/cacti yazarak cacti sayfasına ulaşabilirsiniz.Resimdeki gibi bir sayfa sizi karşılamış olmalı. Next diyerek bir sonraki adıma geçebilrisiniz. Yeni bir kurulum yaptığımız için bir sonraki sayfadan da Next seçeneği ile bir sonraki sayfaya geçin.  Bu sayfadaki tüm gereksinimler sağlanmış olmalı. Eğer herhangi bir gereksinim kırmızı ile işaretlenmiş olursa Cacti düzgün çalışmayacaktır. Eğer yukarıdaki adımları doğru uyugladıysanız herhangi bir sorunla karşılaşmamamış olmalısınız. Finish seçeneği ile kurulumu tamamlayabilirsiniz. Cacti’nin login sayfasına hoşgeldiniz 🙂 Cacti’nin default kullanıcı adı ve şifresi “admin” “admin” olarak belirlenmiştir ve ilk login olduğunuzda sizden şifrenizi değiştirmenizi isteyecektir.

Son olarak daha önce açtığımız cacti dosyalarının arasında yer alan poller.php dosyasını crontabtan her 5 dakikada bir çalışacak şekilde yapılandırıyoruz.Bu sayede her 5 dakikada bir gelen bilgilerin rrdtool ile grafiksel ortama aktarılmasını sağlamış oluyoruz.  poller.php dosyasının çalışması önemli çünkü bu dosya doğru şekilde crontabtan çağrılmassa grafikler oluşmayacaktır.

crontab dosyasını vi ile açıp içine aşağıdaki girdiyi yazıp kaydederek kapatıyoruz.

[root@endersys ~]# vi /etc/crontab

*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1

Bu aşamadan sonra grafikleriniz oluşmaya başlamalı. Eğer grafikleriniz oluşmuyorsa yukarıdaki komutu elle çalıştırarak /var/www/html/cacti/log/cacti.log dosyasının içeriğini kontrol edebilirsiniz. poller.php dosyası her çalıştıgında cacti.log dosyasına çalıştığı zaman bilgisini yazar. Bu şekilde crontaba girdiğiniz girdinin çalışıp çalışmadığını da gözlemleyebilirsiniz. Elle çalıştırmak için şu
komutu kullanabilirsiniz.

[root@endersys ~]# php /var/www/html/cacti/poller.php > /dev/null 2>&1

Evet artık Cacti kullanıma hazır. Default olarak kendisi “Graphs” tabı altında localhost için memory usage, load average, logged in users ve processes grafiklerini oluşturuyor. Siz de istediğiniz bir sunucu için istediğiniz grafiği oluşturabilirsiniz. Unutmayın grafiğini oluşturmak istediğiniz sunucu üzerinde SNMP aktfilenmiş olmalıdır.

Eğer SNMP güvenliği ilk aşamada sizin için önemli değilse izlenecek olan sunucu üzerinde şu şekilde SNMP’yi aktifleyerek Cacti’ye izlenecek yeni sunucular ekleyebilirsiniz.

SNMP Utils paketini kurarak SNMP araçlarına sahip oluyoruz.

[root@endersys_xen ~]# yum install net-snmp-utils

Varolan snmpd.conf dosyanızı snmpd.conf.org olarak adlandırarak yedeğini alıyoruz.

[root@endersys_xen ~]# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.org

Yeni bir snmpd.conf dosyası oluşturuyoruz ve içine aşağıdaki satırları ekliyoruz.

[root@endersys_xen ~]# vi /etc/snmp/snmpd.conf
rocommunity  public
syslocation  "ENDERSYS DATA CENTER ISTANBUL"
syscontact   admin@admin.com

Ve son olarak snmpd servisini restart ediyoruz.

[root@endersys_xen ~]# /etc/init.d/snmpd start

SNMP’nin çalıştığını görmek için cactiyi kurduğunuz sunucu üzerinden diğer sunucuya snmpwalk yapabilirsiniz.

[root@endersys_xen ~]# snmpwalk -v 1 -c public -O e 10.0.0.110
SNMPv2-MIB::sysDescr.0 = STRING: Linux endersys_xen 2.6.18-92.1.17.el5
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (16748) 0:02:47.48
SNMPv2-MIB::sysContact.0 = STRING: admin@admin.com
SNMPv2-MIB::sysName.0 = STRING: endersys_xen
SNMPv2-MIB::sysLocation.0 = STRING: "ENDERSYS DATA CENTER ISTANBUL"
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
...
...

Ve evet çalışıyor 🙂 İşte örnek bir rrd resmi

Umarım faydalı bir paylaşım olmuştur. Yeni bir yazıda görüşmek dileğiyle…

 

NOT: Eğer Cacti’nin web arayüzüne erişemiyorsanız aşağıdaki komut ile firewallu devre dışı bırakabilirsiniz. (Centos 6 için bu gerekiyor)

[root@endersys_xen ~] service iptables stop
Filed under

Linux

| Tags:

  1. merhaba öncelikle detaylı anlatım için teşekkürler şöyle bir sorunla karşılaştım
    (GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘cactiuser’;) yazdığım zaman
    (ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘cactiuser’’ at line 1) hatasını dönüyor. ne yapmalıyım bu noktada kaldım
    Teşekkürler

    • Hakan Çakıroğlu

      Aslında sorun olmaması lazım. Tahminim tırnak işaretleri yüzündne böyle bir sorun yaşıyor olabilirsiniz. Copy paste sonrası tırnakları elle düzeltebilir misiniz? Aslında bu komut ile yapılan şu : cacti veritabanı üzerindeki tüm objelere cactiuser’ı için full yetki veriyorsunuz.

  2. cihan bey merhaba . SQL 42000 hatası sql server servisinin çalışmadığını belirtir.
    service mysqld status ile bakıp çalışmıyorsa (running demiyorsa yani)
    service mysqls start ile mysql i aktif edebilirsiniz. chkconfig mysqld on ile başlangıçta çalışmasını sağlayabilirsiniz.saygilarimla.

  3. Hocam merhaba,
    Detaylı anlatımınız teşekkürler. Herşeyi sizin anlattığınız gibi yaptım herhangi bir sorun çıkmadı ancak grafik kısmına geçtiğimde grafikler gelmiyor resim görüntülenemiyor gibi bir işaret (kırık resim şeklinde) geliyor. İnternette yaptığım araştırmalar sonucu yeki problemi gibi anladım, işin içinden çıkamadım. Bende sadece root user’ı var var crontab’ı /etc/crontab altından güncelliyorum. Yardımcı olabilir misiniz?

Reply to cihan ¬
Cancel reply


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.