Cacti, ağ ve sistem yönetimi alanında kullanılan güçlü ve kapsamlı bir açık kaynaklı monitörleme yazılımıdır. Bu araç, ağ trafiği, sunucu performansı ve diğer sistem metriklerini izlemek ve analiz etmek için tasarlanmıştır. Cacti, özellikle geniş ve karmaşık ağ altyapılarında performans verilerini grafiklerle görselleştirme yeteneğiyle dikkat çeker. Kullanıcılar, ağ cihazları ve sunuculardan SNMP (Simple Network Management Protocol) gibi protokoller aracılığıyla veri toplar ve bu verileri anlamlı grafikler ve raporlar halinde sunar. Bu sayede, sistem yöneticileri ve ağ yöneticileri, performans sorunlarını kolayca tespit edebilir ve çözüm geliştirebilirler.
Cacti’nin sunduğu görselleştirme ve raporlama özellikleri, sistem performansını sürekli izleme ve sorunları proaktif bir şekilde ele alma imkanı sağlar. Web tabanlı arayüzü sayesinde yapılandırma ve veri görüntüleme işlemleri kullanıcı dostu bir şekilde gerçekleştirilir. Ayrıca, Cacti’nin genişletilebilir yapısı ve özelleştirilebilir metrikler sayesinde, farklı ihtiyaçlara göre uyarlanabilir. Bu özellikler, Cacti’yi özellikle büyük ölçekli ağlar ve sistemler için vazgeçilmez bir yönetim aracı yapar.
Cacti Nasıl Kurulur
Bu dökümanda anlatılan cacti kurulumu Ubuntu 22.04 işletim sistemi üzerinde gerçekleştirilmiştir. Kurulum adımlarına başlarken Kurulu ve güncellenmiş bir Linux işletim sistemine sahip olduğunuzu düşünüyorum.
Öncelikle komut satırında root yetkilerini almalısınız, aksi halde her komutun başına sudo eklemeniz gerekiyor. Kurulum ve Cacti’nin çalışması esnasında gerekli olacak bağımlılıkları yüklüyoruz
apt-get install snmp php-snmp rrdtool librrds-perl unzip curl git gnupg2 -y
bağımlılıkları kurduktan sonra LAMP (Linux, Apache, Mysql, Php) paketlerinin kurulumunu yapıyoruz.
apt-get install apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-ldap php-mbstring php-gd php-gmp php-intl -y
PHP Ayarları
LAMP paketlerinin yüklenmesi tamamlandıktan sonra php.ini dosyasında bazı ayarlar yapıyoruz. İki farklı php.ini dosyası olduğundan her iksinde de aynı ayarları yapıyoruz.
nano /etc/php/8.1/apache2/php.ini
memory_limit = 512M
max_execution_time = 60
date.timezone = Europe/Istanbul
nano /etc/php/8.1/cli/php.ini
memory_limit = 512M
max_execution_time = 60
date.timezone = Europe/Istanbul
Burada belirtilen parametreler sisteminizin özelliklerine veya kullanılan uygulamaların versiyonlarına göre değişiklik gösterebilir. Detay bilgi ve parametrelerin anlamları için buraya bakabilirsiniz. Bu işlemden sonra apache servislerini yeniden başlatıyoruz.
systemctl restart apache2
Veritabanı Oluşturulması ve Ayarları
Şimdi sırada veri tabanı için gerekli ayarları yapmak var. Bunun için veritabanı konfigurasyon dosyalarında bazı parametleri değiştireceğiz ve cacti için veritabanı oluşturacağız
nano /etc/mysql/mariadb.conf.d/50-server.conf
collation-server = utf8mb4_unicode_ci
max_heap_table_size = 128M
tmp_table_size = 64M
join_buffer_size = 64M
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_buffer_pool_size = 512M
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_doublewrite = OFF
Şimdi veritabanında kararkterset desteği için gerekli ayarları yapacağız.
nano /etc/mysql/my.cnf
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[client]
default-character-set = utf8mb4
Veritabanında güvenlik sıkılaştırmaları için bazı ayarlar yapıyoruz. Bunun için aşağıdaki komutu uyguluyoruz.
mysql_secure_installation
Yukarıda ki komut ile mysql secure kurulumu başlatmış olduk. Gelen soruları aşağıdaki şekilde cevaplayarak devam edelim.
Enter current password for root (enter for none):
Switch to unix_socket authentication [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Secure installation işlemini tamamladıktan sonra cacti için bir veritabanı ve kullanıcı oluşturma işlemini gerçekleştiriyoruz. Sql komut satırına geçmek için aşağıdaki komutu uygulayın.
mysql -uroot -p
mysql komut satırında geçişinizde secure installation bölümünde tanımladığınız root şifresini girmelisiniz. Aşağıdaki kısımda cacti için bir cactidb isimli bir veritabanı oluşturuyoruz. Bu veritabanında yetkili olan ve yine cacti veri tabanı bağlantısı için cactiuser isimli bir kullanıcı oluşturuyoruz.
MariaDB [(none)]> create database cactidb;
MariaDB [(none)]> GRANT ALL ON cactidb.* TO cactiuser@localhost IDENTIFIED BY 'password';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Time zone için mysql veritabanında time zone dosyasını import ediyoruz ve gerekli yetki ayarlarını yapıyoruz.
mysql mysql < /usr/share/mysql/mysql_test_data_timezone.sql
komut satırında timezone dosyasını import ettikten sonra veritabanı içerisinde gerekli yetkilendirmeleri yapıyoruz.
mysql -uroot -p
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Sql için gerekli ayarları yaptıktan sonra aktif olabilmesi için veritabanı servislerini yeniden başlatıyoruz.
systemctl restart mariadb
Cacti Kurulumu
Cacti’nin çalışması için gerekli olan uygulamalarda ayarları yapıp hazır duruma getirdikten sonra Cacti kurulumuna başlayabiliriz. Öncelikle Cacti dosyalarını indiriyoruz.
wget https://www.cacti.net/downloads/cacti-latest.tar.gz
İndirdiğimiz dosyalar sıkıştırılmış halde olduğu için açıyoruz.
tar -zxvf cacti-latest.tar.gz
Şimdide cacti dosyalarını web dizinine kopyalıyoruz.
mv cacti-1* /var/www/html/cacti
Dosyaların kopyalama işlemi tamamlandıktan sonra cacti örnek veri tabanı yapısını oluşturduğumuz cactidb veritabanına import ediyoruz.
mysql cactidb < /var/www/html/cacti/cacti.sql
Cacti’nin veritabanı bağlantıları için Cacti php dosyasında bazı parametlereleri düzenlememiz gerekiyor, config.php dosyasını editliyoruz.
nano /var/www/html/cacti/include/config.php
Aşağıdaki satırları kurulumda ayarladığımız parametrelere göre düzenliyoruz.
$database_type = 'mysql';
$database_default = 'cactidb';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'password';
$database_port = '3306';
Cacti’nin logları kaydetmesi için log dosyasını oluşturmamız gerekiyor.
touch /var/www/html/cacti/log/cacti.log
Cacti dizin yetkilerini tanımlamamız gerekiyor. Bu işlem web server kullanıcısının Cacti dizininde yetkili olmasını sağlıyor. Dizin sahipliğini web sunucusunun kullanıcısına veriyoruz.
chown -R www-data:www-data /var/www/html/cacti/
Dizin yetkilerini düzenliyoruz.
chmod -R 775 /var/www/html/cacti/
Cacti Poller’lar, belirli aralıklarla verileri toplamak ve bu verileri Cacti’nin grafiklerine ve raporlarına dahil etmek için kritik bir rol oynar. Bu nedenle belirli aralıklar otomatik olarak çalıştırılmalıdır. Bunun için cron ile gerekli zamanlanmış görev ayarlarını yapıyoruz.
nano /etc/cron.d/cacti
Cacti için bir cron dosyası oluşturuyoruz
*/5 * * * * www-data php /var/www/html/cacti/poller.php > /dev/null 2>&1
Şimdide Cacti’nin çalışması için Apache üzerinde virtualserver ayarlarını yapıyoruz.
nano /etc/apache2/sites-available/cacti.conf
nano ile cacti site konfig dosyasını editleyip içerisine aşağıdakileri ekliyoruz.
Alias /cacti /var/www/html/cacti
<Directory /var/www/html/cacti>
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>
Virtual host yapılandırmasını etkinleştiriyoruz.
a2ensite cacti
Yapılandırmaların etkinleştirilmesi için apache servisini yeniden başlatıyoruz.
systemctl restart apache2
Kurulum işlemi böylece tamamlanmış oldu. Şimdi Cacti’yi başlatabiliriz.
http://sunucuipadresi/cacti
Cacti ilk kurulum kullanıcı adı şifresi admin / admin’dir.
Top comments (0)