Files
Thomas Vincent 57b8088e13 docs: comprehensive validation audit, Spine poller overhaul, and technical refactor (#229)
* docs: comprehensive audit, Spine poller overhaul, and technical refactor

- Overhaul Spine documentation (Spine.md) with complete end-to-end guide: architecture, prerequisites for modern distros (EL8/9 CRB, Ubuntu 22/24, Debian 11/12, FreeBSD), SUID root permissions, secure spine.conf setup (0640), Web UI configuration (Paths, Poller type, Data Collectors tuning), MySQL max_connections sizing, and troubleshooting.
- Fix broken links and anchors (Hardening, SNMP data queries, Hook API references).
- Fix broken image reference in Sites.md (add-site.JPG -> add-site.png).
- Fix syntax errors in documentation PHP code blocks, including invalid parenthesization, missing SQL execute quotes, and malformed comments in FAQ.
- Fix DevOps installation commands: use config.php.dist, correct systemctl service names for MySQL/MariaDB/PHP-FPM, remove nonexistent php-json, add missing composer install, and correct Debian/Ubuntu systemd environment path.
- Correct grammatical errors, repeated words, and typos across all markdown documents.
- Remove obsolete unreferenced duplicate installation guides.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* docs: correct reviewed examples and guidance

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* docs: correct guidance that disagrees with the Cacti source

Verified each claim against include/global_arrays.php, lib/auth.php,
lib/functions.php, host_templates.php and the Spine config parser. The
notable ones: api_plugin_safe_exec() does not exist on either branch,
Spine reads DB_Pass rather than DB_Password, and the CDEF special data
source table was missing five entries and renamed four others.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* docs: wrap Spine prose and fence the connection sizing formula

The formula's bare asterisks rendered as emphasis, dropping the multiplication signs.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* chore: refresh copyright year in scripts and issue templates

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

---------

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
2026-09-08 09:41:21 -04:00

4.9 KiB

rrdproxy

Cacti RRD Proxy is a standalone proxy interface to Tobi Oetiker's great RRDtool.

The main focus of this project is to allow the relocation of RRDfiles, data replication, support of Cacti Boost and, if needed, the RRDcached daemon. It allows system administrators to split Cacti's access resources across machines without the need for NFS.

Due the fact that updates to files may contain sensitive data and to prevent undesired updates, RRDtool proxy utilizes high encrypted connections (RSA2048 and AES192) with continuously changing keys. This ensures a secured connection between the proxy and registered clients and/or other proxies.

A local service port is provided to allow administrators are able to access a separate command line interface which provides easy access to configure and debug the proxy.

Contribute

Get involved in development by participating in active development on GitHub.

Requirements

RRDproxy runs on any Unix-based operating system that can meet the minimum requirements, though it will perform better with the recommended (or higher).

Minimum Requirements

  • PHP Version 7.1 or higher Installation must include and enable the following modules:

    • Sockets

    • Posix

    • PCntl

    • GMP

    • ZLIB

  • RRDtool Version 1.5 or higher

  • Cacti Version 1.2.7 or higher

All minimum requirements must be met, though the following are more optional:

  • PHP Version 7.3 or higher Include all minimum recommendation modules

  • RRDtool 1.7 or higher

  • Cacti 1.2.7

Usage

Before using the RRDproxy, you must install the system using the setup wizard which can be run at any point using the -w parameter.

 php rrdtool-proxy.php --help

 RRDtool Proxy v1.2.7
 Copyright (C) 2004-2026 The Cacti Group
 usage: rrdtool-proxy.php [--wizard] [-w] [--version] [-v]
 Optional:
 -v --version   - Display this help message
 -w --wizard    - Start Configuration Wizard

When running through the wizard, the status of items will appear on the right hand side of the screen. When an item is successfully completed, the status of [OK] will be shown in green (when color is supported) as seen below:

Checking System Requirements...
[0.00001] test: operation system supported                                  [OK]
[0.00007] test: php module 'sockets'                                        [OK]
[0.00011] test: php module 'posix'                                          [OK]

Should any item have an issue, the status will be displayed as something other than [OK] such as [FAILED]:

[0.40270] read: RRDproxy configuration file                             [FAILED]
Status Color | Description
--- | : --- Green | Success and without issue Yellow | Warnings and will be ignored, correct the problem if needed Red | Errors and will not be ignored, may prevent continuation

When the wziard prompts for the various settings that are available, you can accept the default value simply by pressing return to accept it. Below are a few of these settings and the default values that can be accepted:

Setting | Default | Comment
--- | : --- | : --- CLI System Prompt | rrdp | Max 8 chars IPv4 Listen Addr | 0.0.0.0 | Listen all addr Client Proxy Port | 40301 | Connections from a client Proxy port | 40302 | Connections from another proxy Dedicated CLI port | 40303 | Connections to the RRDproxy cli

Command Line Interface

Use '?' to get a list of all commands being supported by the proxy or hints about missing parameters.

telnet localhost 40303
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
rrdp>?
  enable          Turn on privileged commands
  help            Display help
  show            Show running system information
  quit            Close terminal session

rrdp>ena
rrdp#sh version

#     ___           _   _     __    __    ___     ___
#    / __\__ _  ___| |_(_)   /__\  /__\  /   \   / _ \_ __ _____  ___   _
#   / /  / _` |/ __| __| |  / \// / \// / /\ /  / /_)/ '__/ _ \ \/ / | | |
#  / /__| (_| | (__| |_| | / _  \/ _  \/ /_//  / ___/| | | (_) >  <| |_| |
#  \____/\__,_|\___|\__|_| \/ \_/\/ \_/___,'   \/    |_|  \___/_/\_\__, |
#                                                                   |___/

 RRDtool Proxy v1.2.7
 Copyright (C) 2004-2026 The Cacti Group
 rrdp uptime is 14 days, 0 hours, 4 minutes, 14 seconds
 Memory usage 0.18872917 % (2026464/1073741824 in bytes)
 a8:29:6a:b7:5d:be:c3:8a:be:13:7a:61:ee:0c:8b:d3
 Process ID: 13996
 Session usage (1/399)

 Server IP [192.168.10.10]
 Administration: [localhost       :40303]
 Replication:    [192.168.10.10   :40302]
 Clients:        [192.168.10.10   :40301]

rrdp#

Missing features

  • Data replication has been completed to 95%, but is still not ready

  • NET-SNMP pass persistent daemon and MIB needs to written to make proxy stats available through SNMP


Copyright (c) 2004-2026 The Cacti Group