Cacti1.2-1.3-windows/linux版本下载
目前最新的几个版本,但是具体操作和安装流程自行处理
注!!!下面的流程只做参考,针对于不同镜像的安装调试流程,可自行搜索


发行的版本,指定版本号留言评论区,我放盘里
目前我自己Download的几个版本
需要其他版本的在评论区留言,有时间我把对应的版本放到盘里,你们自行Download就行
后缀名zip为windows版本 !
后缀名为tar.gz为linux版本,需要自行传到服务进行解压安装,具体操作流程,自行搜索。
Cacti 旨在提供基于 RRDtool 框架的完整图形解决方案。其目标是通过处理创建有意义图形所需的所有必要细节,简化网络管理员的工作。
要求
Cacti 要求您的系统上安装以下软件。
-
支持 PHP 的 Web 服务器,例如 Apache、Nginx 或 IIS
-
使用 spine 时的构建环境(gcc、automake、autoconf、libtool、help2man)
-
RRDtool 1.3 或更高版本,建议使用 1.5+
-
PHP 5.4 或更高版本,建议使用 5.5+
-
所需模块:
- ctype、日期、过滤器、gettext、gd、gmp
- 哈希、json、ldap、mbstring、openssl、pcre
- PDO、pdo_mysql、会话、simplexml、套接字、spl
- 标准、xml、zlib
- com_dotnet(仅限 Windows)
- posix(仅限 Linux)
-
可选模块:
- snmp(回退到 NetSNMP)
-
-
MySQL 5.6 或 MariaDB 5.5 或更高版本
-
必须启用时区支持
-
以下是 my.cnf 建议:
-
版本 >= 5.6
MySQL 5.6+ 和 MariaDB 10.0+ 都是很棒的版本,值得选择。不过,请确保你运行的是最新版本,因为它修复了一个长期存在的低级网络问题,该问题导致 Spine 出现许多可靠性问题。
-
innodb = ON
建议您在任何高于 5.1 的 MySQL/MariaDB 版本中启用 InnoDB。
-
collation_server = utf8mb4_unicode_ci
当使用 Cacti 支持英语以外的语言时,务必使用 utf8_general_ci 排序规则类型,因为某些字符占用多个字节。如果您是首次安装 Cacti,请停止安装,进行更改后重新开始。如果您的 Cacti 已运行并投入生产,如果您计划支持其他语言,请参阅互联网上关于转换数据库和表的说明。
-
**character_set_client = utf8mb4
-
**character_set_server = utf8mb4
使用 Cacti 处理英语以外的语言时,务必使用 utf8 字符集,因为某些字符占用多个字节。如果您是首次安装 Cacti,请停止安装,进行更改后重新开始。如果您的 Cacti 已运行并投入生产,如果您计划支持其他语言,请参阅互联网上关于转换数据库和表的说明。
-
最大连接数 >= 100
根据登录次数和 Spine 数据收集器的使用情况,MySQL/MariaDB 可能需要多个连接。Spine 的计算方法如下:
total_connections = total_processes * (total_threads + script_servers + 1)那么您必须为用户连接留出空间,这将根据并发登录帐户的数量而变化。
-
最大堆表大小 >= 5
如果您使用 Cacti 性能增强器并选择内存存储引擎,则必须小心地在系统耗尽内存表空间之前刷新性能增强器缓冲区。这可以通过两种方式实现:首先,将输出列的大小减小到合适的大小。此列位于表 poller_output 和 poller_output_boost 中。
您可以做的第二件事是为内存表分配更多内存,建议值为系统内存的 10%。但如果您使用的是 SSD 磁盘驱动器,或者系统规模较小,则可以忽略此建议或选择其他存储引擎。您可以在“控制台”->“系统实用程序”->“查看提升状态”下查看性能提升器表的预期消耗情况。
注意:如果您使用的是较新版本的 MariaDB 或 MySQL,则不再需要使用内存表。您可以选择继续使用内存表,以避免 NVMe 或 SSD 驱动器过度磨损。但是,除此之外,它不再是必需的。因此,max_heap_table_size的值不像在以前的版本中那么重要。此外,如果您将 Galera 复制与 Cacti 结合使用,则所有表都必须为 InnoDB 格式。因此,MariaDB 或 MySQL 中唯一的功能是临时表空间,它可能不依赖于max_heap_table_size。
-
表缓存>=200
保持表缓存较大意味着使用 innodb_file_per_table 时文件打开/关闭操作更少。
-
最大允许数据包数 >= 16777216
使用远程轮询功能时,大量数据将从主服务器同步到远程轮询器。因此,请将此值保持在 16M 或以上。
-
临时表大小>=64M
执行子查询时,如果临时表较大,请将这些临时表保存在内存中。
-
连接缓冲区大小>=64M
执行连接时,如果它们低于此大小,它们将被保存在内存中并且永远不会写入临时文件。
-
innodb_file_per_table = ON
使用 InnoDB 存储时,务必保持表空间独立。这可以让 MySQL/MariaDB 的长期用户更轻松地管理表。如果您当前关闭了此功能,可以迁移到按文件存储,方法是启用此功能,然后在所有 InnoDB 表上运行 alter 语句。
-
innodb_buffer_pool_size >= 25
InnoDB 会尽可能多地在系统内存中保存表和索引。因此,您应该将 innodb_buffer_pool 设置为足够大,以便在内存中保存尽可能多的表和索引。检查 /var/lib/mysql/cacti 目录的大小有助于确定此值。我们建议将其设置为系统总内存的 25%,但您的具体需求会根据系统大小而有所不同。
-
innodb_doublewrite = OFF
对于现代 SSD 类型存储,此操作实际上会更快地降低磁盘性能,并在所有写入操作中增加 50% 的开销。
-
innodb_additional_mem_pool_size >= 80M
这是存储元数据的地方。如果你有很多表,增加这个值会很有用。
-
innodb_lock_wait_timeout >= 50
恶意查询不应该导致数据库离线。请在这些查询破坏你的系统之前将其终止。
-
innodb_flush_log_at_trx_commit = 2
将此值设置为 2 意味着您将每秒刷新所有事务,而不是在提交时刷新。这可以减少 MySQL/MariaDB 的写入频率。
-
innodb_file_io_threads >= 16
对于现代SSD类型存储来说,拥有多个io线程对于具有高IO特性的应用程序来说是有利的。
-
innodb_flush_log_at_timeout >= 3
如果您的 MySQL/MariaDB 版本支持此功能,您可以控制 MySQL/MariaDB 将事务刷新到磁盘的频率。默认值为 1 秒,但在高 I/O 系统中,设置为大于 1 的值可以使磁盘 I/O 更加连续。
-
innodb_read_IO_threads >= 32
对于现代SSD类型存储,拥有多个读取IO线程对于具有高IO特性的应用程序来说是有利的。
-
innodb_write_IO_threads >= 16
对于现代SSD类型存储,拥有多个写入IO线程对于具有高IO特性的应用程序来说是有利的。
-
innodb_buffer_pool_instances >= 16
MySQL/MariaDB 会将 innodb_buffer_pool 划分为多个内存区域,以提高性能,最大值为 64。当您的 innodb_buffer_pool 小于 1GB 时,应使用池大小除以 128MB 的值。继续使用此公式,直至最大值达到 64。
笔记:
-
根据您所运行的 MySQL/MariaDB 版本,其中一些建议可能不适用。
-
其中一些建议应酌情调整
-
较新的 MySQL/MariaDB 软件使用严格模式,从旧系统导入 Cacti 数据库的转储时可能会导致意外问题,例如无法创建表
cacti。poller_output_boost(错误号:140“错误的创建选项”)。您还有更多可能性:
-
禁用适当的严格模式 - 不推荐
-
更改 mysqldump 文件 -从表定义中删除ROW_FORMAT=FIXED
-
在 mysqldump 运行查询之前: ALTER TABLE
poller_output_boostROW_FORMAT=DYNAMIC;
-
-
-
要实现上述 mysql 建议,您可以使用以下条目并将其粘贴到 my.cnf 中
一般安装说明
确保根据操作系统要求安装了以下软件包。验证 httpd/apache 和 MySQL/MariaDB 是否在系统启动时启动。
大多数操作系统所需的软件包
根据您的操作系统和 PHP 版本,Cacti 需要某些软件包。这些要求中最大的变量与 PHP 和 MySQL/MariaDB 有关。
安装要求包括以下软件包。这些软件包的安装因操作系统而异。
基础操作系统
-
apache、IIS 或 nginx
-
net-snmp、net-snmp-utils
-
rrd工具
-
help2man(用于脊柱)
-
dos2unix(用于 spine)
-
开发包(gcc、automake、autoconf、libtool、mysql-devel 或 mariadb-devel、net-snmp-devel、help2man)
(针对脊柱)
数据库
支持 MySQL 5.7 及以上版本。MariaDB 10.2 及以上版本也受支持。
-
mysql
-
mysql服务器
-
libmysql客户端
或者
-
mariadb
-
mariadb服务器
-
libmariadbclient
PHP 模块
这些模块的安装因操作系统而异。请使用以下php -m命令验证它们是否已安装。
-
posix
-
会议
-
插座
-
原产地保护组织
-
pdo_mysql
-
xml
-
LDAP
-
mbstring
-
聚合酶链反应
-
json
-
openssl
-
广东
-
zlib
PHP 可选模块
以下模块是可选的,但最好安装。
-
SNMP
-
gmp(用于插件支持)
-
com 或 dotnet(仅限 Windows)
FreeBSD
在 FreeBSD 上安装时,您可以使用两种方法。对于这两种方法,Cacti 都有很多依赖包,您无需安装任何其他东西。一切都已准备就绪。这两种方法各有优缺点:
-
编译包 - 快速,但依赖关系不变(如旧版 MySQL 服务器、PHP 版本等)
pkg install cacti pkg install spine -
FreeBSD 移植 - 编译可能需要很长时间,但没有不变的依赖关系(请参阅如何使用移植)
portsnap fetch extract portsnap fetch update cd /usr/ports/databases/mariadb102-server (or mysql57-server) make install cd /usr/ports/net-mgmt/cacti make install cd /usr/ports/net-mgmt/spine make install
Apache 和其他软件也可以通过包或 Ports 安装。
FreeBSD 中的所有内容都安装在 /usr/local/ 目录中!在本文档中,您可以看到 /etc/php.ini、/usr/bin/spine 等路径。
请使用正确的路径 - /usr/local/etc、/usr/local/bin/spine、...
对于 Spine 设置 suid 位(没有这个就无法进行 ICMP ping):
chmod +s /usr/local/bin/spine
配置 PHP
验证模块是否已正确安装和配置。有几种方法可以验证,请参阅PHP 配置说明以获取完整说明。
date.timezone必须在/etc/php.ini、 或 /etc/phpX/apache/php.ini和文件中设置/etc/phpX/cli/php.ini。否则,安装完成后将出现错误。
大多数其他 PHP 配置由基本操作系统自动完成,因此无需在此讨论。
配置Web服务器(Apache)
大多数 Linux/UNIX 操作系统会自动配置 Web 服务器以允许 PHP 内容。因此无需进行额外配置。但是,如果您运行的 UNIX 版本未正确配置 Web 服务器,则以下部分可供参考。以下文档专门针对 RHEL 及其变体编写。因此,具体说明可能会有所不同。
找到该文件/etc/httpd/conf/httpd.conf或其等效文件并对其进行以下更改:
# Load config files from the config directory "/etc/httpd/conf.d".
Include conf.d/*.conf
现在,找到 PHP 配置文件/etc/httpd/conf.d/php.conf
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
LoadModule php_module modules/libphp.so
#
# Cause the PHP interpreter to handle files with a .php extension.
AddHandler php-script .php
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
DirectoryIndex index.php
配置 MySQL/MariaDB
为 root 用户设置密码并记录下来。如果忘记了此密码,在系统发生灾难或从崩溃中恢复时,可能需要重新安装数据库服务器。
shell> mysqladmin --user=root password somepassword
shell> mysqladmin --user=root --password reload
您还必须将时区信息加载到数据库中。这对于各种插件的使用都是必需的。稍后,您将需要 time_zone_name在安装的最后步骤中授予对该表的访问权限。
shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
由于 Cacti 1.x 支持国际化 (i18n),因此 MySQL/MariaDB 的默认字符集必须兼容 i18n。Cacti 安装程序会对 MySQL/MariaDB 的设置提供具体的建议。请根据您的操作系统选择合适的设置。
Galera 集群:有几个表设置为使用 MEMORY 存储引擎,但这些表无法在节点之间复制,这可能会导致问题。如果您将 Cacti 配置为仅连接到集群中的一个节点,并且未进行负载均衡,则此问题不适用于您。
如果您在负载均衡环境中运行多个节点并连接到 VIP,则应在 Cacti 安装或更新期间从轮换中移除所有节点,只保留一个节点。安装/更新完成后,登录 MySQL 服务器并执行以下命令,将这些表更新为使用 InnoDB 引擎:
MariaDB [(none)]> use cacti;
MariaDB [cacti]>> ALTER TABLE `automation_ips` ENGINE=InnoDB;
MariaDB [cacti]>> ALTER TABLE `automation_processes` ENGINE=InnoDB;
MariaDB [cacti]>> ALTER TABLE `data_source_stats_hourly_cache` ENGINE=InnoDB;
MariaDB [cacti]>> ALTER TABLE `data_source_stats_hourly_last` ENGINE=InnoDB;
MariaDB [cacti]>> ALTER TABLE `poller_output` ENGINE=InnoDB;
MariaDB [cacti]>> ALTER TABLE `poller_output_boost_processes` ENGINE=InnoDB;
这些更改应该会复制到集群中的其他节点。在将其他节点重新放入轮询队列之前,请允许 Cacti 运行至少两到三个完整的轮询周期。
安装和配置 Cacti
-
提取分发包。
shell> tar xzvf cacti-version.tar.gz -
创建 MySQL 数据库:
shell> mysqladmin --user=root create cacti -
导入默认的 cacti 数据库:
shell> mysql cacti < cacti.sql -
可选:为 Cacti 创建 MySQL 用户名和密码。
shell> mysql --user=root mysql MySQL> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword'; MySQL> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost IDENTIFIED BY 'somepassword'; MySQL> flush privileges;
请注意,如果您的root(或同等)用户没有SUPER权限,仍然可以GRANT SELECT通过 向 Cacti 用户授予权限 INSERT INTO mysql.tables_priv。
INSERT INTO mysql.tables_priv (Host, Db, User, Table_name, Grantor, Table_priv)
VALUES ('localhost', 'mysql', 'cactiuser', 'time_zone_name', 'root@localhost', 'Select');
-
编辑
include/config.php并指定 Cacti 配置的数据库类型、名称、主机、用户和密码。$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cacti"; -
设置 Cacti 目录的相应权限,用于生成图表/日志。您需要在 Cacti 目录内执行以下命令来更改权限。
shell> chown -R cactiuser rra/ log/ cache/(输入cactiuser的有效用户名,该用户也将在下一步用于数据收集。)
-
创建 cron 任务文件或 systemd 单元文件
从 Cacti 1.2.16 开始,您可以选择使用传统的 Crontab 条目,或者可选的 cactid 单元文件和服务器来运行您的 Cacti 轮询器。
对于 Crontab 的使用,请按照以下说明进行操作:
创建并编辑
/etc/cron.d/cacti文件。确保设置 poller.php 的正确路径*/5 * * * * apache php <path_cacti>/poller.php &>/dev/null对于 systemd 单元文件的安装,您需要修改包含的单元文件,使其符合您的安装位置以及所需的用户和组,以便以该用户和组的身份运行 Cacti 轮询器。要完成此任务,请按照以下步骤操作:
vim <path_cacti>/service/cactid.service (edit the path) touch /etc/sysconfig/cactid cp -p <path_cacti>/service/cactid.service /etc/systemd/system systemctl enable cactid systemctl start cactid systemctl status cactidsystemd 单元文件使管理高可用性 Cacti 设置变得更加方便。
-
在安装过程中,您需要提供对以下文件和目录的写访问权限:
shell> chown -R resource scripts include/config.php安装完成后,您可以将权限更改为更严格的设置。
-
将您的网络浏览器指向:
http://<your-server>/cacti/使用用户名/密码admin登录。您需要立即更改此密码。请确保在以下屏幕上仔细正确地填写所有路径变量。
(可选)安装并配置 Spine
Spine 是一款非常快速的数据收集引擎,用 C 语言编写。它是 cmd.php 的可选替代品。如果您决定使用它,则必须单独安装。它不包含在 Cacti 中。
最简单的方法是使用 rpm 或 ports 安装 Spine。你可以在 Cacti 主站或你的发行版中找到 Spine 的软件包。
要编译 Spine,请将其下载到你喜欢的任意位置。然后,在下载的目录中执行以下命令
shell>./bootstrap
如果boostrap脚本成功,您将按照它提供的说明进行编译和安装。
假设你已经正确安装了 Spine,接下来需要对其进行配置。配置文件可以放在 Spine 所在的目录中,也可以放在 /etc/spine.conf 中。
DB_Host 127.0.0.1 or hostname (not localhost)
DB_Database cacti
DB_User cactiuser
DB_Password cacti
DB_Port 3306
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)