在现代IT运维领域,对网络设备、服务器及应用服务的性能进行实时监控至关重要,Cacti作为一款基于PHP、MySQL、SNMP及RRDTool开发的开源网络流量监测与分析工具,以其强大的图形化展示能力和灵活的扩展性,赢得了众多系统管理员的青睐,本文将详细介绍在稳定可靠的CentOS 7操作系统上部署和配置Cacti 1.0版本的完整流程,旨在为读者提供一个清晰、可操作的实践指南。
环境准备与依赖安装
在开始部署之前,确保你拥有一台最小化安装的CentOS 7服务器,并具备root权限或sudo权限,更新系统软件包并安装必要的软件仓库。
sudo yum update -y sudo yum install epel-release -y
Cacti的运行依赖于经典的LAMP(Linux, Apache, MySQL, PHP)架构,此外还需要SNMP工具和RRDTool来处理数据,我们可以通过一条命令安装所有核心组件。
sudo yum install httpd mariadb-server mariadb php php-mysqlnd php-gd php-xml php-mbstring php-json php-snmp net-snmp net-snmp-utils rrdtool -y
为了确保Cacti能够正确处理时区,我们需要在PHP配置文件中设置date.timezone
,编辑/etc/php.ini
文件,找到date.timezone
行,取消注释并设置为你所在的时区,
date.timezone = Asia/Shanghai
数据库配置与初始化
配置MariaDB数据库,首先启动并设置数据库服务开机自启。
sudo systemctl start mariadb sudo systemctl enable mariadb
运行安全安装脚本来设置root密码、移除匿名用户等,这是保障数据库安全的基础步骤。
sudo mysql_secure_installation
登录到MariaDB,为Cacti创建一个专用的数据库和用户,请将'your_strong_password'
替换为一个足够复杂的密码。
mysql -u root -p CREATE DATABASE cacti DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; GRANT ALL PRIVILEGES ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'your_strong_password'; FLUSH PRIVILEGES; EXIT;
Cacti提供了初始化的数据库结构文件,使用以下命令将其导入到刚创建的cacti
数据库中,根据Cacti版本的不同,SQL文件路径可能会有细微差异。
mysql -u cactiuser -p cacti < /usr/share/doc/cacti-1.0.x/cacti.sql
Cacti核心配置
安装Cacti主程序。
sudo yum install cacti -y
安装完成后,需要修改Cacti的配置文件以连接到数据库,编辑/etc/cacti/db.php
文件,确保以下信息与你在数据库中设置的一致。
$database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'cactiuser'; $database_password = 'your_strong_password'; $database_port = '3306'; $database_ssl = false;
Web服务器与防火墙设置
配置Apache以允许访问Cacti,编辑/etc/httpd/conf.d/cacti.conf
文件,根据你的网络环境修改访问权限,为了方便测试,可以暂时允许所有IP访问,但在生产环境中建议限制为特定IP段。
<Directory /usr/share/cacti> <IfModule mod_authz_core.c> # Require host localhost Require all granted </IfModule> </Directory>
启动Apache服务并设置开机自启。
sudo systemctl start httpd sudo systemctl enable httpd
配置CentOS 7的防火墙,放行HTTP(80)和HTTPS(443)流量。
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
数据轮询与Web界面安装
Cacti通过一个定时任务(cron job)来定期采集数据,编辑/etc/cron.d/cacti
文件,确保该任务未被注释,默认情况下,它每5分钟执行一次。
*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
至此,所有后端配置均已完成,现在可以通过浏览器访问Cacti的Web安装向导了,在浏览器中输入http://<your_server_ip>/cacti
,首次访问会显示安装向导,它会检查所有依赖和配置是否正确,按照向导提示完成最后的步骤,包括接受许可协议、确认二进制文件路径等,完成安装后,使用默认用户名admin
和密码admin
登录,系统会立即要求你修改为一个更安全的密码。
登录后,你将进入Cacti的主控制台,从这里,你可以开始添加需要监控的设备(如服务器、交换机、路由器),为它们关联合适的监控模板,并创建图形来可视化CPU使用率、网络流量、磁盘空间等关键指标。
下表小编总结了Cacti部署过程中涉及的关键软件包及其作用:
软件包/服务 | 描述 |
---|---|
httpd (Apache) | 提供Web服务,用于展示Cacti前端界面 |
mariadb-server | 数据库服务,存储Cacti的配置、设备和监控数据 |
php | 后端脚本语言,处理Web请求和业务逻辑 |
rrdtool | 核心数据存储与绘图引擎,负责轮询数据库并生成图表 |
net-snmp | 简单网络管理协议工具,用于从远程设备采集数据 |
cacti | Cacti主程序,整合所有组件,提供管理界面 |
相关问答FAQs
问题1:Cacti安装后,图形显示为“NaN”或者没有数据,该如何排查?
解答: 这是一个常见问题,通常由以下几个原因导致:
- 数据轮询器未运行: 检查cron任务是否正确配置并执行,可以查看
/var/log/cron
日志,确认每5分钟是否有poller.php
的执行记录。 - 权限问题: 确保
rra
(存储RRD文件)和log
目录对Apache用户(通常是apache
)有写权限,可以使用chown -R apache:apache /var/www/html/cacti/rra
和chown -R apache:apache /var/www/html/cacti/log
命令修复。 - SNMP连通性问题: 如果监控的是远程设备,请确保从Cacti服务器能够通过SNMP获取到数据,在Cacti服务器上使用
snmpwalk -v2c -c <community_string> <device_ip>
命令进行测试。 - 时区设置错误: 检查
/etc/php.ini
中的date.timezone
是否已正确设置,否则可能导致数据采集时间错乱。
问题2:如何为Cacti添加一台新的Linux服务器进行监控?
解答: 添加新设备分为两步:在被监控服务器上配置SNMP,然后在Cacti Web界面中添加该设备。
- 在被监控的Linux服务器上:
sudo yum install net-snmp -y sudo systemctl start snmpd sudo systemctl enable snmpd
编辑
/etc/snmp/snmpd.conf
文件,修改com2sec
、group
、view
和access
等配置,设置一个安全的community字符串(例如mysecret
)并允许Cacti服务器的IP访问,然后重启snmpd服务。 - 在Cacti Web界面中:
- 导航至“Console” -> “Create” -> “New Device”。
- 填写设备描述(如“Web Server 01”)、主机名或IP地址。
- 选择正确的SNMP版本(通常是Version 2)并填入之前设置的community字符串。
- 在“Associated Graph Templates”部分,选择适用于Linux主机的模板,如“ucd/net – CPU Usage”、“ucd/net – Memory Usage”等。
- 点击“Create”保存,保存后,点击右上角的“Create Graphs for this Host”,为所选模板创建具体的图形。
- 将新创建的图形添加到“Graph Trees”中,以便在“Graphs”标签页下查看。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复