Centos 7 üzerine Cacti 1.2.2 Kurulumu
Translate This Page:
Bu makalemizde IT nin kullandığı cihazların sistem takibini kolaylıkla yapabilmek için yazılmış açık kaynak web tabanlı bir ağ izleme ve sistem izleme yazılımı olan cactiyi inceleyeceğiz.
Cacti, bir kullanıcının RRDtool’u kullanarak elde edilen veriler üzerinde grafikler oluşturması için düzenli aralıklarla hizmetleri anlama olanağı tanır. Genellikle, ağ bant genişliği kullanımı, CPU yükü, çalışan işlemler, disk alanı vb. Gibi metriklerin zaman serisi verilerini grafiklemek için kullanılır.
Cacti sistem ve ağ cihazları izleme yazılımı, SNMP (Simple Network Management Protocol) protokolünü kullanarak, izlemek istenen cihazdan aldığı snmp sorgularının cevabına göre grafikler oluşturarak sistem ve ağ cihazlarını izlememizi(monitoring etmemizi) sağlar. SNMP protokolü sayesinde ağ trafiği, port trafiği, kullanıcı, sistem yükü, disk kapasitesi, bellek kullanımı vb. gibi bilgileri kolay anlaşılır bir grafik ekranla sunar.
Cacti sistem ve ağ cihazları izleme yazılımı, grafik ekran olarak RRdTool, veri tabanı olarak ise MySQL&MariaDb kullanır. Php web yazılım dili kullanılarak yazılmıştır. İstenildiğinde özelleştirilebilir.
Cacti uygulaması yukarıdaki Diagramda görüldüğü Network içerisindeki Neredeyse tüm unsurlar ile etkileşim içinde çalışabilmektedir. Grafik ekrandaki veri kaynaklarını ise, zamanlanmış görevlerde tanımlanan script sayesinde 5 dk lık sorgular sonucunda veritabanına yazacaktır. Grafik ekranlardaki bilgiler ise veri tabanından güncellenerek son ana kadar olan bilgiyi verecektir. Oluşturulan bu grafiklerin birkaç şekilde gösterimleri mevcuttur. Ön izleme, hiyerarşik veya ağaç(tree) yapısı şeklinde görüntülenebilir.
Cacti, GPL kapsamında da lisanslı olan bir başka izleme sistemidir.RRDTool’un veri depolama ve grafik oluşturmadaki gücünden yararlanmak için tasarlanmış bir ağ grafik çözümüdür.
Cihazların CPU yükü grafiklerini, RAM kullanımını ve farklı ana bilgisayarlardan toplanan diğer bilgileri görüntülemesini sağlar.
Güçlü ve esnek SNMP desteği sayesinde Linux, Free BSD, Windows hostlar , Yazıcılar ,Swithcler , Routerlar, UPS cihazları ve Firewallar olmak üzere SNMP desteği olan tüm cihazlar için anlaşılabilir takip edilebilir grafikler oluşturmaya yarayan çok güçlü bir izleme çözümüdür.
Cactinin içerdiği temel bileşenler :
- unlimited graph items
- auto-padding support for graphs
- graph data manipulation
- flexible data sources
- data gathering on a non-standard timespan
- custom data-gathering scripts
- built-in SNMP support
- graph templates
- data source templates
- host templates
- tree, list, and preview views of graph data
- user-based management and security
Terminal Kaydını izlemek için tıklayınız.
Kurulum için gerekli yazılımlar aşağıdaki gibidir;
- MySQL/MariaDB : Cacti verilerinin depolanması için gerekli veritabanı.
- NET-SNMP Server : SNMP (Simple Network Management Protocol) Ağ yönetimi için kullanılan bir protokoldür
- NET-SNMP : Php ile SNMP verilerini kullanmak için gerekli
- Apache / lighttpd / ngnix sunucusu: Web sunucusu PHP ve RRDtool ile oluşturulan grafiklerin gösterilebilmesi için
İlk olarak Centos sunucumuzun güncellemelerini yapıyoruz.
sudo yum update -y
Selinux(Security Enhanced Linux) Configurasyonu
Cacti uygulamasını çalıştırmak için selinux u kapamamız gerekiyor aşağıdaki komut ile Selnux durumunu görüntüleyebilirsiniz.
[root@cacti]# sestatus
Selinux’ı aşağıdaki komutları uygulayarak disable ediyoruz.
[root@cacti]# nano /etc/selinux/config #Karşımıza gelen ekranda SELINUX=enforcing satırını aşağıdaki şekilde değitiriyoruzSELINUX=disabled SELINUX=enforcing satırını aşağıdaki şekilde değitiriyoruz SELINUX=disabled
1-) Apache Kurulumu
[root@cacti ~]# yum -y update [root@cacti ~]# yum -y install httpd [root@cacti ~]# systemctl start httpd [root@cacti ~]# systemctl enable httpd
2-) SNMP and RRDTool(round-robin database tool) Kurulumu
[root@cacti ~]# yum -y install net-snmp rrdtool net-snmp-utils [root@cacti ~]# systemctl start snmpd [root@cacti ~]# systemctl enable snmpd.service
3-) PHP Kurulumu
Remi reposunu makinemize ekliyoruz.
Cacti uygulaması PHP’nin 5.3’ten büyük olan tüm sürümlerini destekler. Ancak makalemizde, PHP v5.3 kullanım ömrünün sonuna ulaştığından PHP 7.1’i yükleyeceğiz. PHP’nin en son sürümünü yüklemek, uygulamanın maksimum güvenliğini ve performansını sağlayacaktır.
CentOS’un varsayılan YUM deposu PHP 7.1 dahil değildir, bu nedenle sisteminize Webtatik deposu eklemeniz gerekir. Webtatik veri havuzu, EPEL veri havuzunun çalışmasını gerektirir. EPEL deposunu kurmak için aşağıdaki komutu çalıştırın.
#Web Static Repostory ekliyoruz. [root@cacti ]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm [root@cacti ]# yum -y update
Artık Php 7 sürümünü yükleyebiliriz.
[root@cacti ]# yum -y install php71w php71w-snmp php71w-mysqli php71w-cli php71w-ldap php71w-xml php71w-session php71w-sockets php71w-pcre php71w-gd php71w-dom php71w-posix php71w-mbstring
Php Versiyon kontrolümüzü “php -v” ile yapıyoruz çıktımız aşağıdaki gibi olacaktır.
[root@cacti ~]# php -v PHP 7.1.27 (cli) (built: Mar 10 2019 16:23:55) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologie
Şimdi PHP’de birkaç konfigürasyon yapılandırmanız gerekecektir. Sık kullandığınız metin editörünü kullanarak PHP yapılandırma dosyasını php.ini dosyasını açın açın. Ben nano editör kullanıyorum. Eğer Centos 7 minimal versiyon kurduysanız ve nano editör yoksa, aşağıdaki komut ile yükleye bilirsiniz.
[root@cacti ]# yum -y install nano
Php ini dosyamızın(/etc/php.ini) içerisindeki aşağıda belirttiğim alanları düzenleyeceğiz.
date.timezone = Europe/Istanbul memory_limit = 400M max_execution_time = 60
Bu işlem için aşağıdaki komutları çalıştırıyoruz.
[root@cacti ~]# sudo sed -i 's#;date.timezone =#date.timezone = Europe/Istanbul#' /etc/php.ini [root@cacti ~]# sudo sed -i 's#memory_limit = 128M#memory_limit = 400M#' /etc/php.ini [root@cacti ~]# sudo sed -i 's#max_execution_time = 30#max_execution_time = 60#' /etc/php.ini
4-) MariaDB Server kurulumu ve Secure modda parola belirleme
Maria DB kurulumu için aşağıdaki komutları çalıştırıyoruz
[root@cacti ~]# yum -y install mariadb mariadb-server [root@cacti ~]# systemctl start mariadb [root@cacti ~]# systemctl enable mariadb
MariaDB kurulduktan sonra default olarak herhangi bir parola bulunmaz parola boş tur Enter diyerek DB ye bağlabilirsiniz bu da bir güvenlik riski oluşturu bunun için MariaDB ye bir user ve parola tanımlayarak güvenli bir şekilde bağlanılmasını sağlayacağız.
MariaDB yi güvenli yüklemek için aşağıdaki komutu çalıştırıyoruz.
[root@cacti ~]#mysql_secure_installation
5-) Cacti Database işlemleri
Cacti Uygulamamız için MariaDB üzerinde bir kullanıcı ve veri tabanı oluşturacağız. MariaDB üzerinde oluşturacağımız veri tabanı bilgileri aşağıdaki gibi olacak.
DBName =cacti_db DBUser =cacti_user DBPassword = cacti1234 ->Buraya siz istediğiniz bir parolayı verebilirsiniz.
işlemlerimize başlayabiliriz az önce kurduğumuz maria DB ye bağlanıyoruz.
[root@cacti ~]# mysql -u root -p
#Cacti adında bir DB oluşturuyoruz. MariaDB [(none)]> CREATE DATABASE cacti_db; Query OK, 1 row affected (0.00 sec) #cacti adında bir user ve parola oluşturuyoruz. MariaDB [(none)]> CREATE USER 'cacti_user'@'localhost' IDENTIFIED BY 'cacti1234'; Query OK, 0 rows affected (0.00 sec) #Cacti_user hesabına cacti_db database i için full yetki veriyoruz. MariaDB [(none)]> GRANT ALL PRIVILEGES ON cacti_db.* TO 'cacti_user'@'localhost'; Query OK, 0 rows affected (0.00 sec) #yetki tanımlaması yapıyoruz. MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye [root@cacti ~]#
Ayrıca saat dilimi tablosunu doldurmanız gerekir. Saat dilimi tablolarını doldurmak için aşağıdaki komutu çalıştırın.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Tablolar üzerinden Cacti kullanıcı hesabına(cacti_user) seçme erişimi sağlamamız gerekiyor. MySQL komut istemine tekrar kullanarak giriş yapıyoruz.
[root@cacti mysql]# mysql -u root -p MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO 'cacti_user'@'localhost'; MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit
6-) Database Otimizasyonu
Daha iyi performans için veritabanı parametrelerini değiştirmemiz gerekiyor.
[root@cacti]# nano /etc/my.cnf.d/server.cnf
Dosyamızda [mysqld] tag inden sonra aşağıdaki kod demetini ekliyoruz.
collation-server = utf8_general_ci init-connect='SET NAMES utf8' character-set-server = utf8 max_heap_table_size = 128M max_allowed_packet = 16777216 tmp_table_size = 64M join_buffer_size = 64M innodb_file_per_table = on innodb_buffer_pool_size = 512M innodb_doublewrite = off innodb_additional_mem_pool_size = 80M innodb_lock_wait_timeout = 50 innodb_flush_log_at_trx_commit = 2
Cacti uygulamamızı kurmadan önce buraya kadar kurulumunu yaptığımız servislerin durumlarının kontrolünü yapıyoruz.
[root@cacti]# systemctl status httpd [root@cacti]# systemctl status snmpd [root@cacti]# systemctl status mariadb
7-) Cacti kurulumu ve configurasyon
Şuan Cacti için gerekli ön hazırlıkları tamamladık cacti apache üzerinde çalışacağı için apache server üzerindeki yayın yapan dizine gidiyorum.
[root@cacti]# cd /var/www/html
Cactinin şuanki son versiyonu cacti-1.2.2 aşağıdak linkten cacti paketini indiriyoruz.
[root@cacti html]# wget http://www.cacti.net/downloads/cacti-1.2.2.tar.gz
Bu link üzerinden son çıkan sürümleri manuel olarak buradan kontrol edebilirsiniz.
Aşağıdaki komut ile indirdiğimiz tar.gz uzantılı dosyayı extrack edip zipten çıkarıyoruz.
[root@cacti html]# tar xzvf cacti*.tar.gz
Dosyamızın adıcı cati olarak revize ediyoruz
[root@cacti html]# mv cacti-1*/ cacti/
Cati folderımızın içerisine giriyoruz.
[root@cacti html]# cd /var/www/html/cacti
İndirmiş olduğumuz cacti dosyasının içinde cacti için gelen bir sql veritabanı dosyası var bunu bizim MariaDB üzerinde oluşturduğumuz “cacti_db” isimli DB ye import ediyoruz.
[root@cacti cacti]# mysql cacti_db < cacti.sql -u root -p
Veritabanında import ettiğimizce göre cacti’nin config dosyasında DB bilgilerini güncelleyebiliriz.
[root@cacti cacti]# nano /var/www/html/cacti/include/config.php
$database_type = 'mysql'; $database_default = 'cacti_db'; $database_hostname = 'localhost'; $database_username = 'cacti_user'; $database_password = 'cacti1234'; $database_port = '3306'; $database_ssl = false; $database_ssl_key = ''; $database_ssl_cert = ''; $database_ssl_ca = '';
Dosyamızın edit hali aşağıdaki gibi olmalıdır.
8-) Cacti Cron task
Cron ugulamamızı açıyoruz.
[root@cacti]# nano /etc/cron.d/cacti
Dosya içeriğine aşağıdaki parametreyi ekliyoruz.
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>
Cron Servisini restart ediyoruz.
[root@cacti]# systemctl restart crond
Ctrl + O ile kayıt edip çıkıyoruz.
9-) Firewall Configurasyonu
Aşağıdaki komutu kullanarak uygulamanın sahipliğini web sunucusu kullanıcısına vermeniz gerekir.
[root@cacti]# chown -R apache:apache /var/www/html/cacti
Eğer Firewall Kullanıyorsanız Firewall üzerinde 80 portu için gerekli izinleri aşağıdaki komut ile verebilirsiniz.
[root@cacti]# firewall-cmd --permanent --zone=public --add-service=http [root@cacti]# firewall-cmd --reload
Eğer FirewallD servisini devre dışı bırakmanız gerekiyorsa aşağıdaki komutları kullanabilirsiniz.
[root@cacti]# systemctl stop firewalld [root@cacti]# systemctl disable firewalld
makinemizi restart edebiliriz eğer kapamak istemiyorsanız aşağıdaki tüm servisleri restart ediyoruz.
systemctl restart httpd.service systemctl restart mariadb.service systemctl restart snmpd.service
10-) Cacti Web Configurasyon
Komut ekranında yapacağımız kurulum işlemlerini tamamladık şimbi browserımızı açarak cacti web arayüzüne bağlanıyoruz.
http://Server-IP/cacti
Server IP adresimizi yazdığımızda bizi aşağıdaki gibi cacti nin login ekranı karşılayacak.
Default user name ve password “admin” dir. Giriş yapıyoruz.
Aşağıdaki gibi bir lisans anlaşması geliyor bunun bir GPL(General Public License) Free Lisans olduğunu kabul ederek devam ediyoruz.
Karşımıza sistemsel olarak ön configurasyonları kontrol eden bir ekran geliyor burada sadece Maria DB nin versiyonunu güncellememize dair bir öneride bulunuyor bizim için önemli bir durum değil şu an ki stabil versiyon bizim kurduğumuz versiyon çünkü devam ediyoruz.
Burada yüklenecek türü seçmemizi istiyor “New Primary Server” diyerek devam ediyoruz.
Aşağıdaki ekranda grafikleri oluşturacak dataların kaç dk bir çekileceğinzi hangi network aralığının taranacağı gibi ayarlamalar var ben değiştirmeden devam ediyorum.
Default gelen templateleri bize listeliyor eğer sizin elinizde buradaki cihazların dışında farklı bir ürün varsa bunun template’ini cacti forumdan bularak import edebilirsiniz böylelikle elinizdeki cihaza dair daha detaylı ve sağlıklı izleme grafikleri oluşturabilirsiniz.
Yüklemeyi doğruluyoruz.
Aşağıdaki gibi bir doğrulama işlemi başlıyor.
İşlemin tamamlandı bilgisi ve logları aşağıdaki gibi bize raporlanıyor.
Kurulumu tamamladıktan sonra artık cactiyi kullanmaya başlayabiliriz bizi aşağıdaki gibi bir ekran karşılıyor.
Cacti kurulumu bu kadar.