Cacti là công cụ giám sát mã nguồn mở giúp quản trị viên theo dõi các tài nguyên như CPU load, mức sử dụng RAM, lưu lượng mạng, trạng thái của tất cả các thiết bị kết nối mạng từ đó giúp quản trị viên đưa ra cảnh báo, phát hiện hoạt động bất thường hoặc nghi ngờ của hệ thống. Bài viết dưới đây Viettelco sẽ hướng dẫn bạn cài đặt Cacti trên centos 8.

Để cài đặt Cacti trên Centos 8, bạn cần thực hiện các bước sau:

Bước 1: Cài đặt và bắt đầu Apache httpd, PHP, Mariatham khảo tại đây.

Sau khi đã cài đặt xong LAMP xong thì chúng ta bắt đầu đi cài đặt Cacti.

Bước 2: Cài đặt Cacti và SNMP

# cài đặt từ EPEL

[root @ viettelco] # dnf –enablerepo = epel -y cài đặt cacti net-snmp net-snmp-utils php-mysqlnd php-snmp php-bcmath rrdtool

[root@viettelco ~]# 

vi /etc/snmp/snmpd.conf

# line 41: comment out

#com2sec notConfigUser  default       public

# line 74,75: uncomment and change

# change [mynetwork] to your own network

# change comunity name except public, private (for security reason)

##       sec.name  source          community

com2sec local     localhost      

com2sec mynetwork 10.0.0.0/24  

# line 78,79: uncomment and change

##     group.name sec.model  sec.name

group MyRWGroup  v2c        local

group MyROGroup  v2c        mynetwork

# line 85: uncomment

##           incl/excl subtree                          mask

view all    included  .1                               80

# line 93,94: uncomment and change

##                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@viettelco ~]# 

systemctl enable –now snmpd

# verify settings

# replace [Serverworld] to the comunity name you set

[root@viettelco ~]# 

snmpwalk -v2c -c Serverworld localhost system

SNMPv2-MIB::sysDescr.0 = STRING: Linux viettelco.srv.world 4.18.0-147.5.1.el8_1.x86_64 #1 SMP Wed Feb 5 02:00:39 UTC 2020 x86_64

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (583) 0:00:05.83

SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)

SNMPv2-MIB::sysName.0 = STRING: viettelco.srv.world

…..

…..

[root@viettelco ~]# 

vi /etc/my.cnf.d/mariadb-server.cnf

# add into [mysqld] section

[mysqld]

…..

…..

default-time-zone=’Asia/Tokyo’

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

# appky timezone setting
[root@viettelco ~]# 

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Enter password:
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@viettelco ~]# 

systemctl restart mariadb

[root@viettelco ~]# 

mysql -u root -p

Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 16

Server version: 10.3.17-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.

# create [Cacti] database (replace [password] to any password)

MariaDB [(none)]> create database cacti;

Query OK, 1 row affected (0.00 sec)

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

[root@viettelco ~]# 

mysql -u cacti -p cacti < /usr/share/doc/cacti/cacti.sql
Enter password:   

# cacti user password

[root@viettelco ~]# 

setsebool -P httpd_can_network_connect on
[root@viettelco ~]# 

setsebool -P httpd_unified on
[root@viettelco ~]# 

setsebool -P domain_can_mmap_files on

[root@viettelco ~]# 

vi cacti-phpfpm.te

# create new

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@viettelco ~]# 

checkmodule -m -M -o cacti-phpfpm.mod cacti-phpfpm.te
checkmodule: loading policy configuration from cacti-phpfpm.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 19) to cacti-phpfpm.mod
[root@viettelco ~]# 

semodule_package –outfile cacti-phpfpm.pp –module cacti-phpfpm.mod
[root@viettelco ~]# 

semodule -i cacti-phpfpm.pp

[root@viettelco ~]# 

vi /etc/cron.d/cacti

# uncomment

*/5 * * * *     apache  /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

[root@viettelco ~]# 

vi /usr/share/cacti/include/config.php

# line 29: change to the connection info to MariaDB$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “

cacti

“;
$database_password = “

password

“;
$database_port = “3306”;
$database_ssl = false;

[root@viettelco ~]# 

vi /etc/php.ini

# line 383: change to Cacti recommended
max_execution_time = 60

# line 404: change to Cacti recommended
memory_limit = 512M

# line 902: set default timezone (replace to your own one)

date.timezone = Asia/Ho_Chi_Minh

[root@viettelco ~]# 

vi /etc/httpd/conf.d/cacti.conf

# line 17: add access permission if you need
Require host localhost

Require ip 10.0.0.0/24

[root@viettelco ~]# 

systemctl restart httpd php-fpm

Sau khi đã hoàn thành cài đặt theo các bước ở trên ta tiến hành thiết lập ban đầu cho Cacti.

Truy cập vào http://ipddress/cacti/ từ bất kỳ trình duyệt web nào bạn có, sau đó biểu mẫu đăng nhập Cacti được hiển thị. Đăng nhập với tài khoản và mật khẩu là: admin / admin.

Sau khi đăng nhập ban đầu, thay đổi mật khẩu là bắt buộc, thay đổi thành bất kỳ.

Chọn hộp [Accept GPL License Agreement] và nhấp vào nút [Begin].

Kiểm tra trước khi chạy cài đặt. Nếu tất cả đều ổn, biểu tượng có màu xanh nhưng nếu không ổn, biểu tượng chuyển sang màu đỏ.

Đối với thiết lập ban đầu, chọn [New Primary Server]

Kiểm tra quyền thư mục. Nếu tất cả đều ổn, biểu tượng có màu xanh nếu chưa được, biểu tượng có màu đỏ.

Mỗi đường dẫn ứng dụng và phiên bản cần kiểm tra. Nếu tất cả đều ổn, biểu tượng có màu xanh, nếu chưa được, biểu tượng có màu đỏ.

Đọc phần này và đánh dấu vào ô [I have read this statement], sau đó tiếp tục cài đặt.

Chọn hồ sơ mặc định cho mỗi cài đặt

Đây là phần thiết lập Mẫu. Kiểm tra hộp mẫu bạn muốn kích hoạt.

Tiến hành tiếp theo

Chọn một hộp [Confirm Installation] và nhấp vào nút [Install].

Sau khi cài đặt thành công, nhấp vào nút [Get Started] để sử dụng Cacti.

Đây là bảng điều khiển quản trị Cacti.

Như vậy là Viettelco đã hướng dẫn chi tiết các bước cài đặt Cacti trên CentOs 8, nếu có bắt kì thắc mắc hay cần hỗ trợ bạn có thể hệ với ký thuật của Viettelco đã được hỗ trợ.