Instalasi Cacti dari source code

Instalasi

Buat LAMP Stack, untuk tutorialnya ada Disini

Install PHP modul tambahan untuk cacti.

apt install php-posix php-sockets php-xml php-ldap php-mbstring php-json php-gd php-snmp php-gmp php-snmp php-date

Download source code nya Disini

Muat informasi timezone kedalam database.

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Buat database dan user untuk cacti.

mysql -u root -p
MariaDB [(none)]> create database cactidb;
MariaDB [(none)]> create user 'cacti'@'localhost' identified by 'PasswordUser';
MariaDB [(none)]> grant all privileges on cactidb.* to 'cacti'@'localhost';

Berikan juga perizinan untuk database timezone.

MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO 'cacti'@'localhost';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit;
Bye

Import database schema cacti.

Masuk kedalam direktori source code cacti.

cd cacti-x.x.x
mysql -u root -p cactidb < cacti.sql

Konfigurasi Cacti

Edit konfigurasi cacti.

cd include/
cp config.php.dist config.php
nano config.php

Sesuaikan parameter berikut sesuai dengan database yang telah dibuat.

$database_type     = 'mysql';
$database_default  = 'cactidb';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'PasswordUser';
$database_port     = '3306';

Pindahkan directory cacti ke document root virtualhost webserver

mv cacti/ /var/www/html/

Ubah kepemelikikan directory. *ganti chown chmod

cd /var/www/html/cacti.x.x.x/

Agar Cacti bekerja secara optimal, kita perlu mengkonfigurasi server database MariaDB. Akses file konfigurasi 50-server.cnf.

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

Tempel baris berikut dibawah [mysqld]

collation-server = utf8mb4_unicode_ci
character-set-server=utf8mb4
max_heap_table_size = 128M
tmp_table_size = 64M
innodb_buffer_pool_instances=9
join_buffer_size = 64M
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_buffer_pool_size = 1G
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

Dibagian bawah ada parameter seperti ini

character-set-server  = utf8mb4
collation-server      = utf8mb4_general_ci

Ubah menjadi seperti ini.

character-set-server  = utf8mb4
#collation-server      = utf8mb4_general_ci
collation-server      = utf8mb4_unicode_ci

Restart mariadb.

sudo systemctl restart mariadb

Selanjutnya, sesuaikan waktu max_execution dan batas memori dan atur zona waktu pilihan Anda pada file /etc/php/7.4/apache2/php.ini dan /etc/php/7.4/cli/php.ini.

Edit PHP Apache2

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

Hilangkan tanda ; di awal baris dan sesuaikan timezone sesuai dengan wilayah kita.

date.timezone = Asia/Jakarta
memory_limit = 512M
max_execution_time = 60

Edit PHP CLI

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

Hilangkan tanda ; di awal baris dan sesuaikan timezone sesuai dengan wilayah kita.

date.timezone = Asia/Jakarta
memory_limit = 512M
max_execution_time = 60
sudo nano /etc/php/7.4/cli/php.ini

Untuk mencari parameter yang ingin diubah gunakan ctrl+w.

Install SNMP dan RRDTool.

sudo apt install rrdtool snmp snmpd snmp-mibs-downloader libsnmp-dev

Ubah owner dan permission directory cacti.

chown -R www-data:www-data /var/www/html/cacti
chmod -R 775 /var/www/html/cacti

DI VIRTUALHOST CACTI HARUS TAMBAHKAN ALIAS SEPERTI BERIKUT:

Alias /cacti    /var/www/directory/cacti
<Directory /var/www/directory/cacti/>
  <IfModule mod_authz_core.c>
     Require all granted
  </IfModule>
</Directory>

Buat juga cron agar poller berjalan dengan baik.

nano /etc/cron.d/cacti
* * * * * www-data php /var/www/direktori-cacti/poller.php 2>&1 >/dev/null

Buka dengan web browser lalu login, setelah login akan diperintahkan untuk mengganti password.

Login default cacti:
user: admin
password: admin

Edit /etc/mysql/mariadb.conf.d/50-server.cnf

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

Ubah dan sesuaikan seperti yang diminta oleh installer
>= artinya sama dengan atau lebih besar
<= artinya sama dengan atau lebih kecil
= artinya harus sama dengan

Jika sudah, Lalu Next.

Pilih New Primary Server, lalu Next.

Pastikan semua oke, lalu Next.

Pastikan semua OK lalu Next.

Baca, checklist lalu Next.

Untuk mempercepat pengambilan data buat menjadi 1 menit/every minute.
Dan matikan scan mode agar nantinya kita yang akan menambahkan perangkat secara manual.

Pilih template, rekomendasi pilih semua, lalu Next.

Jika muncul error seperti ini, jalankan perintah yang direkomendasikan.

Login ke mysql

mysql -u root -p
ALTER DATABASE cactidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Refresh web browser dan pastikan semuanya berubah menjadi OK seperti berikut.

Checklist confirm installtion. Next

Proses instalasi cacti sedang berjalan.

Proses instalasi selesai. Get Started.

PROSES INTALASI SELESAI

Troubleshoot

Mengatasi cacti sering meminta login

Secara default cacti mengarahkan root directory nya ke /cacti

Caranya adalah dengan mengedit file /var/www/root-directory-cacti/include/config.php

Pada bagian $url_path = '/cacti/'; ubah menjadi $url_path = '/';

Pastikan juga di virtualhost hapus Alias /cacti