Cacti 是一个基于 PHP、MySQL、SNMP 和 RRDTool 的网络流量监测图形分析工具,广泛用于监控网络设备的性能,以下是关于 Cacti for CentOS 的详细介绍,包括安装步骤、常见问题及解决方案等。
Cacti 架构
Cacti 采用三层架构:
1、数据采集层:通过 SNMP(简单网络管理协议)或自定义脚本进行数据采集。
2、数据存储层:采集到的数据通过 Cacti 模板存储到 MySQL 数据库中。
3、数据展现层:使用 WEB 方式将数据可视化展示出来。
安装相关的软件包
在 CentOS 上安装 Cacti 需要多个步骤,包括安装 HTTPD、PHP、MariaDB、SNMP 和 RRDTool 等软件包,具体步骤如下:
2.1 安装 HTTPD 和 PHP
安装 HTTPD 和 PHP:
yum install y httpd php
2.2 安装 PHP 扩展
为了确保 Cacti 正常运行,需要安装一些 PHP 扩展:
yum install y phpmysql phpsnmp phpxml phpldap phpgd phpmbstring phpposix
2.3 设置 PHP 时区
根据系统实际情况设定时区,例如设置为上海时区:
vim /etc/php.ini date.timezone = Asia/Shanghai
2.4 启动 HTTPD 并设置开机启动
启动 HTTPD 服务并设置为开机启动:
systemctl start httpd && systemctl enable httpd
2.5 安装 MariaDB 10.3 数据库
1、设置 Yum 源:
vim /etc/yum.repos.d/MariaDB.repo MariaDB 10.3 CentOS repository list created 20190516 02:03 UTC gpgcheck=1
2、安装 MariaDB:
yum install y MariaDBserver MariaDBclient MariaDBdevel
3、启动 MariaDB 服务并设置为开机启动:
systemctl start mariadb && systemctl enable mariadb
4、配置 MariaDB,初始化数据库并设定密码:
mysql_secure_installation
按照提示操作,设定 root 用户密码,移除匿名用户,禁止 root 远程登录,移除测试数据库,最后重新加载权限表。
5、修改 MariaDB 配置文件:
vim /etc/my.cnf.d/server.cnf character_set_server = utf8mb4 collationserver = utf8mb4_unicode_ci max_heap_table_size = 256M innodb_file_per_table = ON innodb_buffer_pool_size = 1024M innodb_doublewrite = OFF innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_write_io_threads = 16 innodb_file_format = Barracuda innodb_large_prefix = 1
2.6 安装 netsnmp
安装 netsnmp 及其相关工具:
yum install y netsnmp netsnmplibs netsnmputils netsnmpdevel netsnmpperl
配置 SNMP:
vim /etc/snmp/snmpd.conf com2sec notConfigUser 192.168.2.186 public access notConfigGroup "" any noauth exact all none none view all included .1 80
启动 SNMP 服务并设置为开机启动:
systemctl start snmpd.service && systemctl enable snmpd.service
验证端口是否已打开:
netstat an | grep snmp
验证是否有数据:
snmpwalk v 2c c public localhost
如果显示“Timeout: No Response from localhost”,则需要检查配置文件中的 IP 地址是否正确或者 SNMP 服务是否已启动。
2.7 安装 RRDTool 绘图工具
安装 RRDTool 及相关依赖:
yum y install lm_sensors gcc gccc++ libart_lgpldevel zlibdevelopenldevel libpngdevel freetypedevel jasperdevel fontconfigdevel graphvizdevel gddevel perl perlrrdtool perlDataDumper
安装及配置 Cacti
1、下载并解压缩 Cacti:
从官方网站下载最新版本的 Cacti,并将其解压缩到合适的目录,如/var/www/html
。
wget https://www.cacti.net/downloads/cactilatest.tar.gz tar zxvf cactilatest.tar.gz C /var/www/html/ stripcomponents=1
2、配置 Cacti:
编辑/var/www/html/cacti/include/config.php
文件,设置数据库连接信息:
$database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'root'; $database_password = 'your_password'; // 替换为你的 MariaDB root 密码
3、创建 Cacti 数据库:
进入 MariaDB,创建 Cacti 所需的数据库和用户:
CREATE DATABASE cacti; CREATE USER 'cactiuser'@'localhost' IDENTIFIED BY 'password'; // 替换为你的 Cacti 数据库用户密码 GRANT ALL PRIVILEGES ON cacti.* TO 'cactiuser'@'localhost'; FLUSH PRIVILEGES;
4、导入 Cacti SQL:
回到 Cacti 安装目录,执行 SQL 导入:
cd /var/www/html/cacti/install/ mysql u root p < cacti.sql // 输入 MariaDB root 密码后回车
5、完成安装:
访问http://<your_server_ip>/cacti/install/index.php
,按提示完成 Cacti 的安装过程。
轮询器及任务的配置
Cacti 默认使用内置的轮询器来收集数据,可以通过以下步骤进行配置:
1、添加设备:在 Cacti 界面中,导航到“Devices”菜单,点击“Add”按钮,输入设备的详细信息,包括 IP 地址、SNMP Community 等。
2、创建图表模板:在“Graph Management”菜单中,可以创建和管理图表模板,以定义如何展示设备数据。
3、创建数据查询:在“Data Queries”菜单中,可以创建数据查询,以定义哪些设备和指标需要被监控。
4、创建图表:在“Graph Management”菜单中,可以创建图表,选择相应的设备和模板,生成可视化图表。
解决图形中的方框乱码问题
如果在使用 Cacti 过程中遇到图形中的方框乱码问题,可以尝试以下解决方法:
1、安装中文字体支持:确保系统中安装了中文字体,如文泉驿微米黑。
yum install wqyzenheifonts y
2、修改 Cacti 配置:在 Cacti 安装目录下的include/settings.php
文件中,添加以下代码:
define('POLLER_FONT_PATH', '/usr/share/fonts'); // 根据字体实际路径调整
3、重启 Cacti:重新启动 Cacti 服务,使配置生效。
安装插件
Cacti 支持多种插件,可以通过以下步骤安装:
1、下载插件:从官方或第三方网站下载所需的插件。
2、上传插件:将插件文件上传到 Cacti 的plugins
目录中。
3、启用插件:在 Cacti 界面中,导航到“Plugins”菜单,找到刚上传的插件,点击“Enable”按钮启用插件。
4、配置插件:根据插件的文档进行配置,以满足特定需求。
FAQs
Q1: Cacti 无法连接到数据库怎么办?
A1: Cacti 无法连接到数据库,请检查以下几点:
1、确保 MariaDB 服务正在运行:systemctl status mariadb
2、确保数据库连接信息正确,如数据库名称、用户名和密码。
3、确保防火墙没有阻止 Cacti 服务器与数据库服务器之间的通信。
4、确保数据库用户有足够的权限访问相应的数据库。
Q2: Cacti 图表显示不准确怎么办?
A2: Cacti 图表显示不准确,可以尝试以下方法:
1、确保数据采集正常,可以使用命令snmpwalk
手动检查设备上的 SNMP 数据。
2、确保图表模板和数据查询配置正确,检查是否有遗漏或错误的设备和指标。
3、确保 RRDTool 安装正确,并且所有依赖库都已安装。
4、确保系统时间和时区设置正确,避免时间差异导致的数据偏差。