在现代IT运维领域,对服务器和网络设备的性能进行实时监控至关重要,Cacti作为一款基于PHP、MySQL、SNMP及RRDTool开发的开源网络流量监测与分析工具,凭借其强大的数据采集、灵活的图形展示和直观的管理界面,赢得了广泛的赞誉,本文将详细介绍如何在稳定可靠的CentOS 7操作系统上部署Cacti 1.0.0版本,为构建高效的监控体系奠定基础。
环境准备与依赖安装
在开始安装Cacti之前,必须确保系统环境满足其运行所需的所有依赖,CentOS 7作为一个成熟的Linux发行版,其软件仓库中包含了绝大部分所需组件,但部分依赖需要从EPEL(Extra Packages for Enterprise Linux)仓库获取。
核心依赖组件列表
软件名称 | 作用 | 备注 |
---|---|---|
httpd | Web服务器,用于提供Cacti的Web界面 | Apache的CentOS版本 |
mariadb-server | 数据库服务器,用于存储Cacti的配置、模板和采集数据 | MySQL的开源分支 |
php 及其扩展 | 脚本语言,Cacti后端逻辑的实现语言 | 需包含php-mysql, php-snmp等 |
net-snmp 及其工具 | 简单网络管理协议,用于从设备采集数据 | 包括snmpd服务端和snmpwalk等客户端工具 |
rrdtool | 轮询数据库工具,用于存储和绘制时序数据图形 | Cacti绘图的核心依赖 |
更新系统并安装EPEL仓库,EPEL仓库提供了许多CentOS官方源中没有的软件包,包括Cacti本身。
sudo yum update -y sudo yum install -y epel-release
使用yum
命令一键安装所有必需的软件包,这条命令会同时安装Web服务器、数据库、PHP环境、SNMP工具以及RRDTool。
sudo yum install -y httpd mariadb-server mariadb php php-mysql php-snmp php-xml php-gd rrdtool net-snmp net-snmp-utils
数据库与Web服务配置
依赖安装完毕后,需要对数据库和Web服务进行初步配置,使其能够协同工作。
启动MariaDB数据库服务并设置其为开机自启。
sudo systemctl start mariadb sudo systemctl enable mariadb
为了提高数据库安全性,运行安全安装脚本,该脚本将引导您设置root密码、移除匿名用户、禁止远程root登录等。
sudo mysql_secure_installation
随后,登录数据库为Cacti创建一个专用的数据库和用户,这是一个良好的安全实践,可以避免Cacti直接使用root账户操作数据库。
mysql -u root -p CREATE DATABASE cacti DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT ALL ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'a_strong_password'; FLUSH PRIVILEGES; EXIT;
请务必将a_strong_password
替换为您自己设置的强密码。
启动Apache服务并设置开机自启,同时配置防火墙以允许HTTP流量。
sudo systemctl start httpd sudo systemctl enable httpd sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
Cacti安装与初始化
现在可以正式安装Cacti了。
sudo yum install -y cacti
安装过程中,Cacti会将其文件放置在/usr/share/cacti/
目录下,接下来需要将Cacti提供的初始数据库结构导入到我们刚才创建的数据库中。
mysql -u cactiuser -p cacti < /usr/share/doc/cacti-1.0.0/cacti.sql
导入时,系统会提示您输入为cactiuser
设置的密码。
修改Cacti的配置文件,填入数据库连接信息,配置文件位于/usr/share/cacti/include/config.php
。
sudo vi /usr/share/cacti/include/config.php
找到以下部分并修改为您的实际配置:
$database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'cactiuser'; $database_password = 'a_strong_password'; $database_port = '3306'; $database_ssl = false;
配置数据轮询与SNMP
Cacti的核心功能依赖于定时任务(cron job)来周期性地轮询设备数据,安装程序已自动创建了一个cron配置文件/etc/cron.d/cacti
,默认是注释掉的,我们需要取消注释以启用数据轮询。
sudo vi /etc/cron.d/cacti
取消下面这行的注释:
*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
这行配置的含义是,每5分钟以cacti
用户身份执行一次poller.php
脚本,该脚本负责数据采集。
为了让Cacti服务器自身也能够被监控,需要配置其SNMP服务。
sudo vi /etc/snmp/snmpd.conf
找到并修改com2sec
、group
、view
和access
配置,设置一个共同体字符串(community string),例如public
。
com2sec localUser default public
group MyRWGroup v2c localUser
view all included .1 80
access MyRWGroup "" any noauth exact all all none
配置完成后,启动并启用SNMP服务。
sudo systemctl start snmpd sudo systemctl enable snmpd
Web界面向导与首次使用
所有服务配置完成后,通过浏览器访问http://<your_server_ip>/cacti
即可开始Web界面的安装向导,首次访问会显示Cacti的许可证声明,接受后进入安装兼容性检查,只要严格按照前述步骤操作,所有检查项都应显示OK。
接下来是选择全新安装或升级,选择“New Install”,然后会引导您进行模板类型选择和二进制文件路径确认,通常保持默认即可。
完成向导后,将进入登录页面,默认管理员用户名和密码均为admin
,首次登录后,系统会强制要求您修改管理员密码。
登录成功后,便进入了Cacti的主控制台,您可以在此管理设备、图形、数据源等,最简单的开始方式是在左侧菜单的“Management”下的“Devices”中添加一台新设备(可以是Cacti服务器本机),为其关联图形模板,稍等片刻,便能在“Graphs”标签页中看到生成的性能监控图表。
相关问答FAQs
问题1:Cacti图形显示为空白,没有数据,该怎么办?
解答:这是一个常见问题,通常由以下几个原因导致,检查Cron任务是否正确配置且正在运行,可以使用tail -f /var/log/cron
查看cron日志,确认SNMP配置是否正确,在被监控设备上使用snmpwalk -v2c -c public <device_ip> .1.3.6.1.2.1.1.1.0
测试连通性,检查数据库用户权限是否足够,如果开启了SELinux,它可能会阻止Apache或PHP进程访问网络,可以临时执行setsebool -P httpd_can_network_connect=1
来允许。
问题2:如何为Cacti添加新的监控模板?
解答:Cacti的强大之处在于其丰富的模板生态系统,要添加新模板,通常有两种方式,第一种是导入,在Cacti控制台的“Import/Export”菜单下的“Import Templates”页面,您可以上传从Cacti官方论坛或社区下载的XML模板文件,系统会自动导入相关的图形模板、数据查询方法等,第二种是手动创建,在“Templates”菜单下,您可以基于现有模板克隆并修改,或者从头创建全新的数据输入方法、数据模板和图形模板,这需要您对SNMP OID和Cacti的工作原理有较深的理解,对于大多数情况,导入现成的社区模板是最便捷高效的方法。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复