如何在Rhel 8/CentOS 8上安装Cacti

时间:2020-02-23 14:30:37  来源:igfitidea点击:

本教程将介绍如何在RHEL 8/CentOS上安装和配置CACTI 8.监控是任何基础架构的关键组件。

CACTI是一个完全开源的网络监控和绘图工具,被设计为行业标准数据记录工具的前端应用程序 - RRDTool。

CACTI利用RRDTOOL数据存储和图形功能的力量。
Cacti 的一些很好的功能包括:用于多个数据采集方法的MetricsUpport的快速轮询,用于ACL的高级图形模板管理功能

CACTI提供了直观且易于使用的Web界面,用于管理网络监控和配置。
在RHEL 8/CentOS 8上建立和运行CACTI需要依赖性所需的依赖项。
此部分将介绍每个组件的安装和配置。

第1步:安装构建工具和系统依赖项

从安装开发工具集启动。

在Rhel/CentOS 8上安装GCC和开发工具

安装开发工具后,安装SNMP包。

sudo dnf install -y net-snmp net-snmp-utils rrdtool

第2步:安装PHP和所需的扩展

在RHEL/CentOS 8上安装Cacti所需的PHP和扩展。

sudo dnf install @php
sudo dnf install -y php php-{mysqlnd,curl,gd,intl,pear,recode,ldap,xmlrpc,snmp,mbstring,gettext,gmp,json,xml,common}

验证PHP版本和加载的模块。

$php -v
PHP 7.2.11 (cli) (built: Oct  9 2016 15:09:36) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2016 Zend Technologies

在内部设置PHP TimeZone /etc/php.ini文件。

$grep date.timezone /etc/php.ini 
; http://php.net/date.timezone
date.timezone = Africa/Nairobi

将PHP内存限制更改为 400M

limit.memory_limit = 400M

开始 php-fpm服务。

sudo systemctl enable --now php-fpm

确认状态。

$systemctl status php-fpm
 ● php-fpm.service - The PHP FastCGI Process Manager
    Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
    Active: active (running) since Sun 2019-03-17 10:23:52 EAT; 5s ago
  Main PID: 31139 (php-fpm)
    Status: "Ready to handle connections"
     Tasks: 6 (limit: 11510)
    Memory: 38.2M
    CGroup: /system.slice/php-fpm.service
            ├─31139 php-fpm: master process (/etc/php-fpm.conf)
            ├─31140 php-fpm: pool www
            ├─31141 php-fpm: pool www
            ├─31142 php-fpm: pool www
            ├─31143 php-fpm: pool www
            └─31144 php-fpm: pool www
 Mar 17 10:23:52 rhel8.local systemd[1]: Starting The PHP FastCGI Process Manager…
 Mar 17 10:23:52 rhel8.local systemd[1]: Started The PHP FastCGI Process Manager.

第3步:安装Apache Web服务器

使用以下命令安装Apache Httpd Server。

sudo dnf install @httpd

启动并启用服务以启动启动。

sudo systemctl enable --now httpd

状态应指示运行。

$systemctl status httpd
 ● httpd.service - The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Drop-In: /usr/lib/systemd/system/httpd.service.d
            └─php-fpm.conf
    Active: active (running) since Sun 2019-03-17 10:49:20 EAT; 2s ago
      Docs: man:httpd.service(8)
  Main PID: 32106 (httpd)
    Status: "Started, listening on: port 443, port 80"
     Tasks: 213 (limit: 11510)
    Memory: 29.2M
    CGroup: /system.slice/httpd.service
            ├─32106 /usr/sbin/httpd -DFOREGROUND
            ├─32108 /usr/sbin/httpd -DFOREGROUND
            ├─32109 /usr/sbin/httpd -DFOREGROUND
            ├─32110 /usr/sbin/httpd -DFOREGROUND
            └─32111 /usr/sbin/httpd -DFOREGROUND
 Mar 17 10:49:20 rhel8.local systemd[1]: Starting The Apache HTTP Server…
 Mar 17 10:49:20 rhel8.local httpd[32106]: Server configured, listening on: port 443, port 80
 Mar 17 10:49:20 rhel8.local systemd[1]: Started The Apache HTTP Server.

防火墙上允许HTTP和HTTPS端口。

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

参考:如何使用Rhel 8上使用Mod_ssl&Mod_http2安装Apache

第4步:安装和配置数据库服务器

我们可以选择使用MySQL或者MariaDB数据库服务器。
如果我们没有安装,则以下教程应该有所帮助。

如何在RHEL 8/CentOS 8上安装MySQL 8.0

如何在Rhel 8/CentOS 8上安装MariaDB

在数据库服务器安装后,为CACTI监控工具创建数据库和用户。

$mysql -u root -p
CREATE DATABASE cacti;
GRANT ALL ON cacti.* TO 'cacti'@'localhost' IDENTIFIED BY 'StrongDBPassword';
FLUSH PRIVILEGES;
exit

调整 Cacti 的Mariadb数据库

在[mysqld]设置下添加以下设置 /etc/my.cnf.d/mariadb-server.cnf

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_heap_table_size=64M
tmp_table_size=64M
join_buffer_size=64M
innodb_buffer_pool_size=512M
innodb_doublewrite=OFF
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=5

添加线条后重新启动MariaDB服务。

sudo systemctl restart mariadb

第5步:下载并配置 Cacti

下载最新版本的Cacti tar包到系统。

mkdir cacti && cd cacti
curl -SL https://www.cacti.net/downloads/cacti-latest.tar.gz | tar --strip 1 -xzf 

将 Cacti 文件夹移动到 /var/www/html目录。

cd ..
sudo mv cacti//var/www/html/

导入Cacti数据库数据

mysql -u root -p cacti < /var/www/html/cacti/cacti.sql

为Cacti数据库用户设置MySQL时区。

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

Grant Cacti MySQL数据库用户访问TimeZone数据库:

$mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.3.10-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO Hyman@theitroad;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> QUIT
Bye

配置selinux。

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/cacti(/.*)?"
sudo restorecon -Rv /var/www/html/cacti

我们需要在进行上述修改后重新启动Apache服务,

sudo systemctl restart httpd php-fpm

配置Cacti.

编辑文件 /var/www/html/cacti/include/config.php并设置数据库连接参数。

$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'StrongDBPassword';
$database_port     = '3306';
.............

代替 StrongDBPassword使用CACTI用户数据库密码。
完成后。
保存文件并退出。

创建Cacti系统日志文件。

touch /var/www/html/cacti/log/cacti.log

设置目录权限

sudo chown -R apache:apache  /var/www/html/cacti

设置cacti cron作业。

sudo crontab -u apache -e

在下面添加。

*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

第6步:访问CACTI安装向导

访问CACTI安装向导接口 http://[ServerIP/Hostname]/cacti

默认登录是:

Username: admin
Password: admin

在下一个屏幕上更改密码。

新密码应该:包含至少1个数字字符!包含至少1个特殊字符!

接受GPL许可协议,然后单击"开始"

所有预安装检查应显示绿色。

在下一个窗口中选择安装类型。

确保目录权限检查都可以。

确认所有二进制文件都在找到并单击"下一步"。

选择轮询源的默认数据源配置文件。

选择安装后要使用的设备模板。

确认数据库设置可以。

确认安装。

安装应该启动,等待它完成,然后访问Cacti管理Web仪表板。

第7步:用 Cacti 监视Linux服务器

开始和启用 snmpd守护进程开始。

sudo systemctl enable --now snmpd

确认它正在运行。

$systemctl status snmpd
 ● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
    Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled)
    Active: active (running) since Sun 2019-03-17 12:24:50 EAT; 4s ago
  Main PID: 3129 (snmpd)
     Tasks: 1 (limit: 11510)
    Memory: 4.9M
    CGroup: /system.slice/snmpd.service
            └─3129 /usr/sbin/snmpd -LS0-6d -f
 Mar 17 12:24:49 rhel8.local systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon….
 Mar 17 12:24:50 rhel8.local snmpd[3129]: NET-SNMP version 5.8
 Mar 17 12:24:50 rhel8.local systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..

添加Linux服务器以进行监视。
登录Cacti作为管理员用户并转到:

控制台>创建>新设备

提供服务器详细信息并保存配置。