Ubuntu 22.04
Sponsored Link

Cacti : Install
2022/12/14
 
Install Cacti to monitor system status.
[1]
[2]
[3]
[4]
[5] Install Cacti, SNMP.
root@dlp:~#
apt -y install cacti snmp snmpd snmp-mibs-downloader libnet-snmp-perl snmptrapd php-mysql php-snmp rrdtool
# select apache2 on here
   +- - - - - - - - - - - - + Configuring cacti +- - - - - - - - - - - - - -+
   | Please select the web server for which Cacti should be automatically   |
   | configured.                                                            |
   |                                                                        |
   | Select "None" if you would like to configure the web server manually.  |
   |                                                                        |
   | Web server:                                                            |
   |                                                                        |
   |                                apache2                                 |
   |                                lighttpd                                |
   |                                None                                    |
   |                                                                        |
   |                                                                        |
   |                                 <Ok>                                   |
   |                                                                        |
   +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

# select No on here
 +- - - - - - - - - - - - -+ Configuring cacti +- - - - - - - - - - - - - - -+
 |                                                                           |
 | The cacti package must have a database installed and configured before    |
 | it can be used.  This can be optionally handled with dbconfig-common.     |
 |                                                                           |
 | If you are an advanced database administrator and know that you want to   |
 | perform this configuration manually, or if your database has already      |
 | been installed and configured, you should refuse this option.  Details    |
 | on what needs to be done should most likely be provided in                |
 | /usr/share/doc/cacti.                                                     |
 |                                                                           |
 | Otherwise, you should probably choose this option.                        |
 |                                                                           |
 | Configure database for cacti with dbconfig-common?                        |
 |                                                                           |
 |                    <Yes>                       <No>                       |
 |                                                                           |
 +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
[6] Configure SNMP (Simple Network Management Protocol).
root@dlp:~#
vi /etc/snmp/snmp.conf
# line 4 : comment out

#
mibs :
root@dlp:~#
vi /etc/snmp/snmpd.conf
# line 18, 19 : change to any location name and email address
sysLocation    "Server World"
sysContact     "root@dlp.srv.world"

# line 71, 72 : comment out
# line 73 : add any comunity name
#rocommunity  public default -V systemonly
#rocommunity6 public default -V systemonly
rocommunity Serverworld localhost

root@dlp:~#
systemctl restart snmpd

# verify status
# replace [Serverworld] to the comunity name you set

root@dlp:~#
snmpwalk -v 2c -c Serverworld localhost system

SNMPv2-MIB::sysDescr.0 = STRING: Linux dlp.srv.world 5.15.0-47-generic #51-Ubuntu SMP Thu Aug 11 07:51:15 UTC 2022 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1121) 0:00:11.21
SNMPv2-MIB::sysContact.0 = STRING: "root@dlp.srv.world"
SNMPv2-MIB::sysName.0 = STRING: dlp.srv.world
SNMPv2-MIB::sysLocation.0 = STRING: "Server World"
SNMPv2-MIB::sysServices.0 = INTEGER: 72
.....
.....
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.10 = Timeticks: (0) 0:00:00.00
[7] Create a Database for Cacti and import tables.
root@dlp:~#
mysql

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 60
Server version: 10.6.11-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database cacti character set utf8mb4 collate utf8mb4_unicode_ci; 
Query OK, 1 row affected (0.00 sec)

# replace the [password] to the any password you like
MariaDB [(none)]> grant all privileges on cacti.* to cacti@'localhost' identified by 'password'; 
Query OK, 0 rows affected (0.00 sec)

# add [select] right to [time_zone_name] table in [mysql] DB for Cacti requirements
MariaDB [(none)]> grant select on mysql.time_zone_name to cacti@'localhost'; 

MariaDB [(none)]> flush privileges; 
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

# set timezone info

root@dlp:~#
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
root@dlp:~#
mysql -u cacti -p cacti < /usr/share/doc/cacti/cacti.sql

Enter password:  
# cacti user's password
[8] Configure Cacti.
root@dlp:~#
vi /usr/share/cacti/site/include/config.php
# line 45 : change to your DB info
$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'password';
$database_port     = '3306';
.....
.....

root@dlp:~#
vi /etc/mysql/mariadb.conf.d/50-server.cnf
# add into the [mysqld] section (Cacti requirements)
[mysqld]
character-set-server=utf8mb4
character_set_client=utf8mb4
collation-server=utf8mb4_unicode_ci
max_heap_table_size=128M
tmp_table_size=128M
join_buffer_size=256M
innodb_buffer_pool_size=2048M
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=17
innodb_io_capacity=5000
innodb_io_capacity_max=10000
innodb_doublewrite=off

# line 103, 104 : comment out
#character-set-server  = utf8mb4
#collation-server      = utf8mb4_general_ci

root@dlp:~#
vi /etc/php/8.1/apache2/php.ini
# line 968 : uncomment and set your timezone

date.timezone =
Asia/Tokyo
root@dlp:~#
vi /etc/php/8.1/apache2/php.ini
# line 409 : change to Cacti recommended value

max_execution_time =
60
# line 430 : change to Cacti recommended value

memory_limit =
512M
# line 968 : uncomment and set your timezone

date.timezone =
Asia/Tokyo
root@dlp:~#
vi /etc/apache2/conf-available/cacti.conf
# line 7 : change to access permission if you need

#
Require all granted
Require host localhost
Require ip 10.0.0.0/24
root@dlp:~#
chown -R www-data /usr/share/cacti/site/resource/snmp_queries \
/usr/share/cacti/site/resource/script_server \
/usr/share/cacti/site/resource/script_queries \
/usr/share/cacti/site/scripts \
/var/log/cacti

root@dlp:~#
systemctl restart apache2 mariadb

Matched Content