在 Debian 11/Debian 10 上安装 Cacti 监控服务器
在本指南中,您将学习如何使用 Nginx 反向代理在 Debian 11/Debian 10 上安装 Cacti。 Cacti 是一个完整的网络图形解决方案,旨在利用 RRDTool 的数据存储和图形功能的强大功能。 Cacti 提供快速轮询、高级图形模板、多种数据采集方法以及开箱即用的用户管理功能。所有这些都包含在一个直观、易于使用的界面中,该界面对于 LAN 规模的安装到具有数千个设备的复杂网络都有意义。
按照以下步骤让 Cacti 在 Debian 11/Debian 10 中运行
第 1 步:安装所需的软件包
安装时需要有依赖包。确保它们已安装。
sudo apt update
sudo apt install software-properties-common
sudo apt install nginx
Debian 11:
sudo apt install curl vim acl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full python3-memcache python3-mysqldb snmp snmpd whois php-snmp rrdtool librrds-perl
Debian 10:
sudo apt install curl vim acl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full python-memcache python-mysqldb snmp snmpd whois php-snmp rrdtool librrds-perl
第 2 步:在 Debian 上安装 PHP
在 Debian 终端上运行以下命令来安装 PHP。
sudo apt -y install php php-common
添加 PHP 扩展
sudo apt -y install php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-gmp php-ldap
步骤 3:Cacti 的数据库配置
我们在步骤 1 中安装了 MariaDB。让我们继续为 Cacti 创建数据库。
登录到您的数据库
sudo systemctl enable mysql
sudo systemctl restart mysql
sudo mysql -u root -p
创建数据库和cacti用户
我们稍后导入的默认Cacti数据库数据使用名为cacti的数据库。因此,谨慎的做法是创建一个具有该名称的数据库,以使您的工作更加轻松。
CREATE DATABASE cacti;
CREATE USER 'cactiuser'@'localhost' IDENTIFIED BY 'SafePassWord'; ## Make it strong
GRANT ALL PRIVILEGES ON cacti.* TO 'cactiuser'@'localhost';
FLUSH PRIVILEGES;
EXIT
授予数据库用户访问 MySQL TimeZone 数据库和选择权限
Cacti 数据库登录帐户(本示例中的cactiuser)必须有权访问 MySQL TimeZone 数据库。为 Cacti 数据库帐户“select”提供对“mysql”数据库中“time_zone_name”表的访问权限,并在继续之前填充 MySQL 的时区信息。
sudo mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
之后,登录MariaDB。
sudo mysql -u root -p
向您的用户授予权限,例如本例中的 cactiuser
GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;
ALTER DATABASE cacti CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_unicode_ci';
flush privileges;
exit
打开 MariaDB 文件并在 [mysqld] 部分下添加以下行以获得优化的数据库
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
在[mysqld]下添加以下内容
[mysqld]
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
max_heap_table_size = 128M
tmp_table_size = 64M
join_buffer_size = 64M
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_buffer_pool_size = 1GB
innodb_buffer_pool_instances = 10
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
运行以下命令重启 mysql 数据库服务:
sudo systemctl restart mysql
步骤 4:配置 PHP-FPM 以供 Cacti 使用
让我们确保 php.ini 中的 date.timezone 设置为首选时区。
sudo vim /etc/php/*/fpm/php.ini
在 [Date] 下取消注释 date.timezone 行并添加您的时区。
date.timezone = Africa/Nairobi ## Input your Time zone
max_execution_time = 300 ## Increase max_execution_time
memory_limit = 512M ## Increase memory limit
还修改以下文件以设置时区并增加 php 脚本最大执行时间。
$ sudo vim /etc/php/*/cli/php.ini
date.timezone = Africa/Nairobi ## Input your Time zone
max_execution_time = 300 ## Increase max_execution_time
memory_limit = 512M ## Increase memory limit
更新 FPM 将接受 FastCGI 请求的地址。
$ sudo vim /etc/php/*/fpm/pool.d/www.conf
listen = /run/php/php-fpm.sock
重启PHP-FPM
重新启动 php fpm 服务:
sudo systemctl restart php*-fpm.service
第 5 步:配置 Nginx Web 服务器
由于我们选择 Nginx 作为首选 Web 服务器,因此是时候添加配置以便我们可以为 Cacti 页面提供服务了。
删除全新安装 Nginx 后加载的默认页面
sudo rm /etc/nginx/sites-enabled/default
创建一个如图所示的文件并在其中添加以下内容
sudo vim /etc/nginx/conf.d/cacticonfig.conf
粘贴并修改以下数据。
server {
listen 80;
server_name cacti.example.com;
root /var/www/html;
index index.php;
access_log /var/log/nginx/cacti_access.log;
error_log /var/log/nginx/cacti_error.log;
charset utf-8;
gzip on;
gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /api/v0 {
try_files $uri $uri/ /api_v0.php?$query_string;
}
location ~ .php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
重启 Nginx
sudo systemctl restart nginx
步骤 6:在 Debian 11/Debian 10 上安装 Cacti 服务器
我们现在需要下载最新版本的 Cacti 包。
# Download using curl
curl -sLO https://www.cacti.net/downloads/cacti-latest.tar.gz
# Download using wget
wget https://www.cacti.net/downloads/cacti-latest.tar.gz
下载完成后,解压 Cacti 存档
tar -zxvf cacti-latest.tar.gz
将文件移动到我们的网站根目录并更改目录名称
sudo mv cacti-1* /var/www/html/
sudo mv /var/www/html/cacti-*/ /var/www/html/cacti
更改 cacti 文件的所有权
sudo chown -R www-data:www-data /var/www/html/
将默认的Cacti数据库数据导入到Cacti数据库中。
sudo mysql -u root -p cacti < /var/www/html/cacti/cacti.sql
打开Cacti配置文件,输入数据库信息。
$ sudo vim /var/www/html/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "SafePassWord";
$database_port = "3306";
$database_ssl = false;
验证 nginx 配置语法:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
配置完成后,重新启动网络服务器。
sudo systemctl restart nginx
步骤7:编辑crontab 文件。
为了让 Cacti 每隔几分钟轮询一次,您可能需要在 crontab 中添加以下内容
$ sudo vim /etc/cron.d/cacti
*/5 * * * * www-data php /var/www/html/cacti/poller.php > /dev/null 2>&1
这将导致 Cacti 每五分钟轮询一次。
第 8 步:打开 Cacti Web 安装程序
现在前往网络安装程序并按照屏幕上的说明进行操作。
http:// IP or FQDN /cacti
这应该会加载类似于下面的安装程序。输入默认用户名和密码:admin 和 admin
更改默认密码。输入长密码,其中包含大小写混合字符以及特殊字符。
接受许可协议并单击“开始”
无论如何,我更喜欢黑暗模式,所以我不得不更改默认主题。如果您更喜欢默认的,则不必执行相同的操作。单击“开始”开始安装。
它将检查我们所做的 PHP 和 MySQL 配置是否满足其所需的要求。如果一切顺利,请点击“下一步”。
选择您想要的安装类型。本例中使用的是主服务器。之后点击“下一步”。
目录权限检查。单击“下一步”
它将建议放置其关键二进制文件的目录。只需点击“下一步”
仔细阅读该声明,理解后勾选单选按钮。这很重要,因为它涉及服务器的安全。之后点击“下一步”。
选择轮询器和网络详细信息的默认配置文件
设置您需要的模板,然后单击“下一步”继续
该向导将进行配置检查。完成后,点击“下一步”
通过选中单选按钮确认安装,然后单击“安装”开始安装过程。
给它一些时间来完成安装
完成后,刷新页面,您应该会看到登录页面。输入admin和您创建的新密码。
我们到了!
结论
现在是时候添加您的设备并配置 Cacti 以开始监控它们了。服务器运行后还有很多事情要做。如何在 Cacti 上导入模板中提供了其中一些。我们希望该指南内容丰富且有帮助。谢谢你的拜访。
为您提供更多指南:
如何在 RHEL 8/CentOS 8 上安装 Cacti
如何在 Ubuntu 上安装和配置 Cacti
在 RHEL 8/CentOS 8 上安装和配置 Nagios 4
如何在 CentOS 8/RHEL 8 上安装 Zabbix 服务器
使用 Nginx 在 Debian 上安装和配置 LibreNMS