Open Source

Cacti Kurulum ve Konfigürasyonu

Merhaba, bu makalemizde open source network monitoring çözümlerinden biri olan cacti’nin kurulum ve konfigürasyonu üzerinde duracağız. Cacti’nin geçmişi eski yıllara dayanmasına rağmen popülerliğini ve güncelliğini korumaktadır. Büyük network yapılarından küçük yapılara kadar çözüm üretebilmektedir.

Cacti, open source ve tamamen ücretsizdir. Özelliklerine buradan erişebilirsiniz.

Kurulum

Kurulum için kullandığım işletim sistemi Ubuntu 18.04 LTS. Sistem kaynağı ortamınızın büyüklüğü ile değişmekle beraber 4 çekirdek işlemci, 8Gb ram ve 50 GB disk alanı ile 200K+ cihaz yönetilebilindiğini biliyorum.

İlk olarak işletim sistemini gücellemekle başlıyoruz.

apt-get update && apt-get upgrade -y
apt-get dis-upgrade

Sonrasında apache web server kurulumu ile devam ediyoruz.

sudo apt install -y apache2 libapache2-mod-php

Php ve paketlerini kuruyoruz.

sudo apt install -y php php-mysql php-snmp php-curl php-xml php-gd php-ldap php-mbstring php-gmp php-json php-common

Veri tabanı olarak mariadb kuruyoruz.

sudo apt install -y mariadb-server mariadb-client

Kurulum sonrası veritabanı güvenlik ayarlarına yapıyoruz.

Bu komut ile “mysql_secure_installation” temel mysql ayarlarını yapıyoruz. Bazı sorular sormaya başlıyor bunlar şöyle.

Enter current password for root (enter for none): Just press the Enter “Enter’e basıp geçiyorsunuz.”
Set root password? [Y/n]: Y “Yeni bir şifre tanımlamak isteyip istemediğinizi soruyor, yeni bir şifre tanımlayacağımız için Y ile devam ediyorum.
New password: Enter password “Yeni şifrenizi giriniz.
Re-enter new password: Repeat password “Yeni şifrenizi tekrardan giriniz.
Remove anonymous users? [Y/n]: Y “anonymous users kullanıcıları kaldırmak istiyormusunuz diyor Y ile kadırıyorum
Disallow root login remotely? [Y/n]: Y “root kullanıcının uzaktan erişim izni verilmesi ile ilgili bir soru, Y diyerek uzaktan erişimi root kullanıcısı için kapatıyorum.”
Remove test database and access to it? [Y/n]: Y “test veri tabanları ve erişimleri Y ile kaldırıyorum.
Reload privilege tables now? [Y/n]: Y “Yapılan değişiklikleri güncelliyor, Y diyoruz.

SNMP ve diğer gerekli araçları yüklüyoruz.

sudo apt install -y snmp snmpd snmp-mibs-downloader rrdtool librrds-perl

Sırada timezone ayarlarına geldi. Aşağıdaki iki dosya içersinde değişiklikleri yapıyoruz.

sudo nano /etc/php/7.4/apache2/php.ini
sudo nano /etc/php/7.4/cli/php.ini

İki dosya içinde aşağıdaki alanları bulup bu şekilde düzenliyoruz.

date.timezone = Europe/Istanbul 
memory_limit = 512M
max_execution_time = 60

mariadb üzerinde değişiklikler yapmamız gerekiyor.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

collation-server” ile başlayan satırı bulup başına “#” sembolünü ekleyerek pasif hale getiriyoruz.

Sonrasında “[mysqld]” altına şu satırları ekliyoruz.

collation-server = utf8mb4_unicode_ci
max_heap_table_size = 128M
tmp_table_size = 128M
join_buffer_size = 256M
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_buffer_pool_size = 2048M
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
innodb_io_capacity = 5000
innodb_io_capacity_max = 10000
innodb_buffer_pool_instances = 21

Dosya üzerinde yaptığımız değişlikleri kaydediyoruz ve sonrasıda aşağıdaki komut ile veri tabanı servislerini resetliyoruz.

sudo systemctl restart mysql

Sıra veri tabanı oluşturmaya geldi.

sudo “mysql -u root -p” komutu ile veritabanına giriş yapıyoruz sonrasında aşağıdaki komutlar ile veri tabanımızı oluşturuyoruz.

create database cacti;

GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'sifre';

flush privileges;

exit

Aşağıdaki komut “mysql_test_data_timezone.sql” veri tabanı dosyasının içeriye import ediyor.

sudo mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql

Sonra yeniden veri tabanına bağlanıyoruz ve aşağıdaki komutları sırasıyla giriyoruz.

GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;

flush privileges;

exit

Bu işlemlerin ardında cacti’nin son sürümünü indiriyoruz.

cd /var/www/html

sudo rm index.html

sudo wget https://www.cacti.net/downloads/cacti-latest.tar.gz

Arşivi açıyoruz ve içerisine giriyoruz sonrasında tüm dosyaları “/var/www/html/” altına kopyalıyoruz.

sudo tar zxvf cacti-latest.tar.g

sudo mv * /var/www/html/

cacti veri tabanı dosyasını mariadb içinersine import ediyoruz.

sudo mysql -u root -p cacti < /var/www/html/cacti.sql

Aşağıdaki konfig dosyasını düzenleyerek cacti veritabanı şifresini giriyoruz.

sudo nano /var/www/html/include/config.php

Aşağıdaki komutlar ile izinleri düzenliyoruz.

sudo touch /var/www/html/log/cacti.log

sudo chown -R www-data:www-data /var/www/html/*

Web erişimi için apache altında gerekli dosyaları oluşturuyoruz.

 sudo nano /etc/apache2/sites-enabled/cacti.conf

Açtığınız dosyaya aşağıdaki içeriği yapıştırıyoruz.

Alias /cacti /var/www/html
<Directory /var/www/html>
Options +FollowSymLinks
AllowOverride None
<IfVersion >= 2.3>
Require all granted
</IfVersion>
<IfVersion < 2.3>
Order Allow,Deny
Allow from all
</IfVersion>
AddType application/x-httpd-php .php
<IfModule mod_php.c>
php_flag magic_quotes_gpc Off
php_flag short_open_tag On
php_flag register_globals Off
php_flag register_argc_argv On
php_flag track_vars On
# this setting is necessary for some locales
php_value mbstring.func_overload 0
php_value include_path .
</IfModule>
DirectoryIndex index.php
</Directory>

Şimdi web tarayıcısını açıyoruz ve sunucunun ip adresini yazıyoruz.

Default kullanıcı adı ve şifre : “admin/admin

Kurulumun tamamlanmasının ardından girş yapıyoruz ve aşağıdaki ekran bizi karşılıyor.

Son olarak crontab içerisinde bellirli aralıklar ile verinin yenilenmesi için bir zamanlama oluşturuyoruz.

sudo nano /etc/cron.d/cactipoller

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

Şimdi kısa bir örnek yapalım. Yapmak istediğimiz windows server 2019’u cact’i üzerinden dilemek.

Bunun için Windows Server üzerine SNMP protokolünü kuruyoruz.

SNMP ayarlarını yapıyoruz

Şimdi Cacti üzerine gelip yeni bir aygıt ekliyorum. Bunun için sol menuden “New Device” tıklıyoruz

SNMP ayarlarını yapıyoruz

Son olarak eklediğiniz aygıt için grafik oluşturuyorsunuz bir süre sonra veriler gelmeye başlıyor.


Makalemizin sonuna gelirken cacti’i ortamlarınızda rahatça kullanıp sistemlerini takip edebilirsiniz.

Keyifli okumalar, saygılar.

İlgili Makaleler

4 Yorum

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu