在CentOS 6这样的经典服务器操作系统上部署网络监控工具Cacti,是一项能够有效提升网络管理可视化的任务,Cacti是一个基于PHP、MySQL、SNMP和RRDTool开发的开源网络流量监测图形分析工具,它通过SNMP协议获取设备数据,并使用RRDTool进行存储和绘制,最终以直观的图表形式呈现网络状态、CPU负载、内存使用率等关键指标,本文将详细介绍如何利用CentOS 6内置的YUM包管理器,一步步完成Cacti的安装与基础配置。
在开始之前,必须强调一个重要前提:CentOS 6已于2020年11月30日结束生命周期(EOL),官方不再提供安全更新和技术支持,在生产环境中使用它存在安全风险,本文仅限于在测试环境或特定隔离环境下的学习与研究目的。
第一步:配置YUM仓库
由于CentOS 6官方源已不可用,我们需要将其指向CentOS的官方归档仓库,这是所有后续软件安装的基础。
备份原有的YUM仓库配置文件:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
创建一个新的/etc/yum.repos.d/CentOS-Base.repo
文件,并填入以下内容,使其指向vault.centos.org
:
[base] name=CentOS-6 - Base baseurl=http://vault.centos.org/6.10/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [updates] name=CentOS-6 - Updates baseurl=http://vault.centos.org/6.10/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [extras] name=CentOS-6 - Extras baseurl=http://vault.centos.org/6.10/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
保存文件后,清理YUM缓存并重新生成,以验证仓库配置是否正确:
yum clean all yum makecache
第二步:安装LAMP环境及Cacti依赖
Cacti运行需要一个完整的LAMP(Linux, Apache, MySQL, PHP)环境,以及SNMP和RRDTool等组件,我们可以通过一条yum
命令来安装所有必要的软件包:
yum install httpd mysql mysql-server php php-mysql php-snmp php-gd rrdtool net-snmp net-snmp-utils cacti -y
这条命令会安装并处理所有依赖关系:
- httpd: Apache Web服务器,用于提供Cacti的Web访问界面。
- mysql-server: 数据库服务器,用于存储Cacti的配置、设备和监控数据。
- php及相关扩展:Cacti是PHP应用,需要PHP环境和连接数据库、处理图像等功能模块。
- rrdtool: 核心绘图引擎,负责数据存储和图形生成。
- net-snmp及工具:用于通过SNMP协议从网络设备收集数据。
- cacti: Cacti主程序包。
第三步:配置数据库
安装完成后,需要对MySQL数据库进行配置,为Cacti创建专用的数据库和用户。
启动MySQL服务并设置开机自启:
service mysqld start chkconfig mysqld on
运行MySQL安全安装脚本,设置root密码,移除匿名用户等:
/usr/bin/mysql_secure_installation
按照提示操作即可,建议设置一个强密码。
登录MySQL并创建Cacti数据库和用户:
mysql -u root -p
在MySQL命令行中执行以下SQL语句:
CREATE DATABASE cacti DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; GRANT ALL ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'YourStrongPassword'; FLUSH PRIVILEGES; EXIT;
请将
YourStrongPassword
替换为一个安全的密码。导入Cacti的初始数据库表结构,Cacti的SQL文件通常位于
/usr/share/doc/cacti-<version>/cacti.sql
,我们可以使用以下命令找到并导入它:mysql -u root -p cacti < /usr/share/doc/cacti-*/cacti.sql
第四步:配置Cacti及Apache
我们需要让Cacti应用知道如何连接我们刚刚创建的数据库,并配置Apache使其能够正确地提供Web服务。
- 编辑Cacti的数据库配置文件:
vi /etc/cacti/db.php
修改以下数据库连接信息,使其与我们创建的数据库和用户匹配:
配置项 | 修改值 |
---|---|
$database_type | mysql |
$database_default | cacti |
$database_hostname | localhost |
$database_username | cactiuser |
$database_password | YourStrongPassword (你设置的密码) |
配置Apache,Cacti的安装包已经提供了一个Apache配置文件
/etc/httpd/conf.d/cacti.conf
,默认情况下,它可能只允许从本地访问,你可以编辑此文件,放宽访问限制(允许特定IP段或所有IP访问),但请注意安全风险,将Deny from all
改为Allow from all
。配置PHP时区,避免日志中出现警告:
vi /etc/php.ini
找到
;date.timezone =
这一行,去掉注释并设置为正确的时区,date.timezone = Asia/Shanghai
第五步:启动服务并完成Web界面安装
启动相关服务并通过Web浏览器完成Cacti的安装。
启动Apache和SNMP服务,并设置开机自启:
service httpd start service snmpd start chkconfig httpd on chkconfig snmpd on
配置数据轮询任务,Cacti通过一个定时任务(cron job)每5分钟收集一次数据,我们需要手动添加这个任务:
crontab -e
在文件末尾添加以下行:
*/5 * * * * /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
打开浏览器,访问
http://<你的服务器IP>/cacti
,你将看到Cacti的Web安装向导,按照以下步骤操作:- 欢迎界面:点击“Next”。
- 安装类型:选择“New Install”,点击“Next”。
- 权限检查:确保所有检查项都是“OK”,如有问题,根据提示修复。
- 登录:使用默认用户名
admin
和密码admin
登录。 - 修改密码:首次登录后,系统会强制要求你修改admin的密码。
完成这些步骤后,你就成功地在CentOS 6上通过YUM安装并配置好了Cacti,你可以开始在“Console”管理界面中添加需要监控的设备,并创建相应的图形来监控你的网络了。
常见问题解答 (FAQs)
问题1:安装过程中,YUM提示“找不到软件包”或连接超时怎么办?
解答: 这个问题几乎总是由YUM仓库配置错误或网络连接问题导致的,请确认你已按照本文第一步正确配置了指向vault.centos.org
的CentOS-Base.repo
文件,检查服务器是否能正常访问外网,特别是vault.centos.org
域名,可以尝试ping vault.centos.org
来测试连通性,执行yum clean all
和yum makecache
命令,强制刷新YUM缓存,如果问题依旧,请仔细检查repo文件中的URL是否有拼写错误。
问题2:Web界面安装完成后,设备图形无法生成,一直显示为红叉或空白怎么办?
解答: 这是Cacti最常见的问题,通常由以下几个原因造成:
- 数据轮询任务未运行:这是最主要的原因,请检查
crontab -l
,确认是否已添加*/5 * * * * /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
这条任务,可以手动执行/usr/bin/php /usr/share/cacti/poller.php
看是否有错误输出。 - 权限问题:确保Cacti的
rra/
和log/
目录(通常位于/usr/share/cacti/
下)对Apache运行用户(如apache
)有写权限,可以使用chown -R apache:apache /usr/share/cacti/rra /usr/share/cacti/log
来修复。 - 防火墙或SELinux:检查iptables防火墙是否阻止了SNMP(UDP 161)或Web(TCP 80)端口,SELinux也可能阻止Apache写入特定目录,可以临时尝试
setenforce 0
来排查是否是SELinux导致的问题。 - SNMP配置错误:确保被监控设备的SNMP服务已开启,并且在Cacti中配置的SNMP Community字符串(密码)正确。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复