[1] Cacti – Instalacja

14 lutego 2022 Wyłączono przez Adam [zicherka] Nogły

Zainstaluj Cacti, aby monitorować stan systemu.

[1] Zainstaluj i uruchom serwer httpd Apache, patrz tutaj.

[2] Zainstaluj PHP 7.4, patrz tutaj.

[3] Zainstaluj i uruchom serwer MariaDB, patrz tutaj.

[4] Zainstaluj Cacti i SNMP.

# zainstaluj z EPEL
[root@vlsr01 ~]# dnf --enablerepo=epel install cacti net-snmp net-snmp-utils php-mysqlnd php-snmp php-bcmath rrdtool

[5] Skonfiguruj SNMP (Simple Network Management Protocol).

[root@vlsr01 ~]# mcedit /etc/snmp/snmpd.conf
# linia 41: zakomentuj
#com2sec notConfigUser  default       public
# linie 74,75: odkomentuj i zmień
# zmień [mynetwork] na Twoją sieć
# zmień nazwę społeczności (comunity) opróćż publicznej i prywatnej (ze względu na bezpieczeństwo)
##       sec.name  source          community
com2sec local     localhost       ZICHERLAB
com2sec mynetwork 192.168.100.0/24     ZICHERLAB
# linie 78,79: odkomentuj i zmień
##     group.name sec.model  sec.name
group MyRWGroup  v2c        local
group MyROGroup  v2c        mynetwork
# linia 85: odkomentuj
##           incl/excl subtree                          mask
view all    included  .1                               80
# linie 93,94: odkomentuj i zmień
##                context sec.model sec.level prefix read   write  notif
access MyROGroup ""      v2c       noauth    exact      all    none   none
access MyRWGroup ""      v2c       noauth    exact      all    all    all

[root@vlsr01 ~]# systemctl enable --now snmpd

# sprawdź ustawienia
[root@vlsr01 ~]# snmpwalk -v2c -c ZICHERLAB localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux vlsr01.zicher.lab 4.18.0-358.el8.x86_64 #1 SMP Mon Jan 10 13:11:20 UTC 2022 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (5463) 0:00:54.63
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: vlsr01.zicher.lab
. . . . .

[6] Zmień ustawienie MariaDB, tak by spoełnić wymagania Cacti.

[root@vlsr01 ~]# mcedit /etc/my.cnf.d/mariadb-server.cnf
# dodaj w sekcji [mysqld]
default-time-zone='Europe/Warsaw'
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_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_buffer_pool_instances=17
innodb_io_capacity=5000
innodb_io_capacity_max=10000

[root@vlsr01 ~]# mcedit /etc/my.cnf.d/cacti.cnf
#stwórz nowy
[mysqld]
innodb_doublewrite = OFF

# zastosuj ustawienia strefy czasowej
[root@vlsr01 ~]# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Enter password: # wpisz hasło root@MariaDB
Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
[root@vlsr01 ~]# systemctl restart mariadb

[7] Stwórz bazę dla Cacti i zaimportuj tabele.

[root@vlsr01 ~]# mysql -u root -p
Enter password: # wpisz hasło root@MqriaDB
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.9-MariaDB MariaDB Server
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;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> grant all privileges on cacti.* to cacti@'localhost' identified by 'TajneHasło';
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> grant select on mysql.time_zone_name to cacti@'localhost';
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> exit
Bye

[root@vlsr01 ~]# mysql -u cacti -p cacti < /usr/share/doc/cacti/cacti.sql
Enter password: # wpisz hasło cacti@MariaDB

[8] Jeżeli SELinux jest włączony zmień zasady polityki.

[root@vlsr01 ~]# setsebool -P httpd_can_network_connect on
[root@vlsr01 ~]# setsebool -P httpd_unified on
[root@vlsr01 ~]# setsebool -P domain_can_mmap_files on

[root@vlsr01 ~]# mcedit cacti-phpfpm.te
# stwórz nowy
module cacti-phpfpm 1.0;
require {
        type admin_home_t;
        type httpd_t;
        type httpd_log_t;
        class file { getattr map open read unlink write };
        class dir { remove_name };
}
#============= httpd_t ==============
allow httpd_t admin_home_t:file map;
allow httpd_t admin_home_t:file { getattr open read };
allow httpd_t httpd_log_t:dir remove_name;
allow httpd_t httpd_log_t:file { unlink write };

[root@vlsr01 ~]# checkmodule -m -M -o cacti-phpfpm.mod cacti-phpfpm.te
[root@vlsr01 ~]# semodule_package --outfile cacti-phpfpm.pp --module cacti-phpfpm.mod
[root@vlsr01 ~]# semodule -i cacti-phpfpm.pp

[9] Skonfiguruj Cacti i pozostałe rzeczy.

[root@vlsr01 ~]# mcedit /etc/cron.d/cacti
# odkomentuj
*/5 * * * *     apache  /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

[root@vlsr01 ~]# mcedit /usr/share/cacti/include/config.php
# linia 29: zmień na parametry ustawione do użytkownika [cacti] w MariaDB
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "TajneHasło";
$database_port = "3306";
$database_ssl = false;

[root@vlsr01 ~]# mcedit /etc/php.ini
# linia 388: zmień na wartość rekomendowaną przez Cacti
max_execution_time = 60
# linia 409: zmień na wartość rekomendowaną przez Cacti
memory_limit = 512M
# linia 923: ustaw domyślną strefę czasową (ustaw Twoją)
date.timezone = Europe/Warsaw

[root@vlsr01 ~]# mcedit /etc/httpd/conf.d/cacti.conf
# linia 17: dodaj uprawnienia do dostępu
Require host localhost
Require ip 192.168.100.0/24

[root@vlsr01 ~]# systemctl restart httpd php-fpm