mirror of
https://github.com/Cacti/documentation.git
synced 2026-10-26 21:17:06 +09:00
* docs: update stale PHP/MySQL/MariaDB version requirements - Requirements.md: PHP 5.4 -> 8.1 (matches 1.2.31+ requirement note) - Requirements.md: MySQL 5.6 -> 5.7, MariaDB 5.5 -> 10.2 (current minimums) - Requirements.md: MySQL section header updated to >= 5.7 / 10.2 - Requirements.md, Install-Under-CentOS_LAMP.md, Install-Under-CentOS_LEMP.md, Installing-Under-Windows.md: comment out innodb_file_format and innodb_large_prefix (removed in MySQL 8.0 / MariaDB 10.3+) Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * docs: upgrade http:// links to https:// and fix dead wiki URLs - Upgrade http:// to https:// in 8 files: General-Installing-Instructions.md, Graph-Templates.md, How-To-SSH-Tunnels.md, Plugin-Development.md, Standards-Code-Formatting.md, Templates.md, Upgrading-Cacti-Under-Windows.md - Replace two dead docs.cacti.net wiki links: How-To-SSH-Tunnels.md: old wiki SNMP guide -> Net-SNMP man page Plugin-Syslog.md: dead plugin:syslog.config -> plugin_syslog repo Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * docs: fix technically inaccurate MySQL configuration recommendations - innodb_additional_mem_pool_size: removed in MySQL 5.7.4 / MariaDB 10.0; replaced with removal notice in Requirements.md and comments in Install-Under-CentOS_LAMP.md and Install-Under-CentOS_LEMP.md - max_heap_table_size: clarify ">= 5" means ">= 5% of system RAM" - innodb_buffer_pool_size: clarify ">= 25" means ">= 25% of system RAM" Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * docs: add missing required PHP extensions to Requirements.md Add dom, mysqlnd, pcntl, Phar, and sqlite3 — all declared as required in composer.json but absent from the module list. pcntl is Linux-only (process control for the poller). Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * docs: fix 36 spelling errors across 19 documentation files Corrections detected by codespell: - somone->someone, Walkthough->Walkthrough, GUAGE->GAUGE - asociate->associate, messege->message, therefor->therefore - get's->gets, Proxys->Proxies, paralelisation->parallelization - parms->params (6 instances in script data query examples) - finialise->finalise, buildin->built-in, everytime->every time - Unistall->Uninstall, resiliant->resilient, build-in->built-in - requriments->requirements (2 instances), explanitory->explanatory (3 instances) - fro->for, invole->involve, reulting->resulting - stauts->status, tge->the Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * ci: add codespell spelling check workflow for documentation Adds GitHub Actions workflow that runs codespell==2.4.1 on all Markdown files on every push/PR to main. Also adds .codespell.cfg to skip binary and generated files (JSON, shell scripts, HTML, images). Update .gitignore to allow .github directory (was blocked by .git* glob). Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * docs: improve voice, consistency, and note formatting across 10 files - Convert passive/impersonal constructions to active voice - Standardize NOTE -> Note in blockquotes for consistency - Reformat inline IMPORTANT/Note callouts as blockquotes - Fix awkward phrasing in LXC container notes - Consolidate fragmented note bullets into single blockquote Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * docs: fix technical accuracy and correct typos across 10 files - Requirements.md: clarify Composer is for source/develop installs only; RRDtool minimum updated to 1.5+ (1.8+ for 1.3.x); php-snmp section rewritten to describe selective fallback behavior; SELinux/AppArmor advice reworded to recommend policy exceptions over blanket disable - Spine.md: fix PHP Script Server range (10 -> 15); fix 'senstivive' and 'Davices' typos - Trees.md: fix broken table rows split across lines; 'Sporting' -> 'Sorting' - Data-Sources.md: restructure storage table to standard 3-column layout; fix '19b' unit typo -> '19kb' - How-To-SNMP-Custom-Script.md: convert bold/backtick commands to proper fenced code blocks; fix 'intex' and 'BNSMPD' typos - Plugins.md: fix 'onfiguration' typo; fix YouTube thumbnail http -> https; fix 'Tuturial' typo - Standards-Security.md: fix 'invalidate' -> 'invalid' - template_apache_config.md: fix 'apcache2' -> 'apache2' - device-template-specific-proxmox.md: replace service file edit with drop-in approach; remove ProtectSystem=off/ProtectHome=off; add note on minimal required systemd overrides - resource/xml/query_interface_traffic.php: http -> https URL Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * docs: rename CentOS install guides to Enterprise Linux; fix grammar, logic, and security flaws - Rename Install-Under-CentOS_LAMP.md → Install-Under-Enterprise-Linux-LAMP.md - Rename Install-Under-CentOS_LEMP.md → Install-Under-Enterprise-Linux-LEMP.md - Update README.md ToC links to match new filenames and correct labels LAMP fixes: - Title updated to reflect RHEL/Rocky Linux/AlmaLinux coverage - Fix step numbering: "2.Install" / "3.Enable" missing space after number - Spine build deps: restructure for EL7/EL8/EL9+ separately; EL8 was missing package install after repo enable; EL9+ uses 'crb' not 'powertools' - SELinux URL: fix quadruple-slash typo; switch to English wiki URL LEMP fixes: - Title: "CentOS 7" → "Enterprise Linux (RHEL / Rocky Linux / AlmaLinux)" - TLS: remove TLSv1 and TLSv1.1 (RFC 8996 prohibited, fails OpenSSL 3.x); set ssl_protocols TLSv1.2 TLSv1.3 - Ciphers: remove DH+3DES (Sweet32 / CVE-2016-2183) - HTTP redirect: uncomment return 301 (comment claiming nginx lacks support for 'return' has been wrong since nginx 0.8 / 2009) - PHP location block: fix 'alias' → 'root' (alias breaks $document_root in fastcgi_param SCRIPT_FILENAME); add missing semicolon after index directive - Cron: poller path was /var/www/html/cacti but install target throughout this guide is /usr/share/nginx/html/cacti — align them - DB: split GRANT...IDENTIFIED BY into CREATE USER + GRANT (IDENTIFIED BY on GRANT removed in MySQL 8.0 / MariaDB 10.5.2) - Fix comment typo: "Compression increases performance0" → remove trailing 0 - SELinux URL: fix quadruple-slash typo README.md: - Update section 3.1 and 3.2 links to new filenames - Correct labels from "CentOS 7" to "Enterprise Linux" - Fix "Reports Admistrative Interface" → "Administrative" - Fix "requriments" (×2) → "requirements" * docs: remove Install-Under-CentOS_LAMP.md (superseded by Install-Under-Enterprise-Linux-LAMP.md) * docs: remove Install-Under-CentOS_LEMP.md (superseded by Install-Under-Enterprise-Linux-LEMP.md) * docs: update README ToC links and fix typos - Update 3.1 and 3.2 links from CentOS to Enterprise Linux filenames - Correct labels: "CentOS 7" → "Enterprise Linux (RHEL/Rocky/AlmaLinux)" - Fix "Reports Admistrative" → "Reports Administrative" - Fix "requriments" (×2) → "requirements" * docs: fix grammar, logic, and technical errors in remaining install/upgrade guides Installing-Under-Windows.md: - Replace php_mysql.dll with php_pdo_mysql.dll (php_mysql removed in PHP 7.0) - Remove IIS ISAPI steps referencing php8isapi.dll (ISAPI dropped in PHP 8.0); replace with FastCGI instructions via php-cgi.exe - Remove NO_AUTO_CREATE_USER from sql_mode (removed MySQL 8.0, breaks startup) - sort_buffer_size = 200M → 32M with caveat (per-session; 200M causes OOM under load) - Fix step numbering gaps: main list 5→8, IIS 3→5, Finishing 5→8 - "you will have to user 8.3 notation" → "use" - "c:cygwin" → "c:\cygwin" (missing backslash) - "it's subfolders" → "its subfolders" - "A anm example" → "An example" - "verify/udate" → "verify/update" Installing-Under-Ubuntu-Debian.md: - Cron user: apache → www-data (apache user does not exist on Ubuntu/Debian) - CREATE DATABASE: use utf8mb4 directly; remove redundant ALTER DATABASE - php8.1-mbstring listed twice in apt-get install; deduplicated - "may received" → "may receive" - Note php8.1 is EOL; recommend checking current supported release Upgrading-Cacti-Under-Windows.md: - Fix all steps numbered 1. → proper sequential numbering (1–10) - Remove hardcoded MySQL 5.7 path; use generic %MYSQL_HOME% note Upgrading-Cacti-Under-FreeBSD.md: - mysqldump: remove contradictory -l / --lock-tables=false flags; replace with --single-transaction (correct for InnoDB, no locking) How-To-SSH-Tunnels.md: - Add prominent note: SSH -L is TCP-only; standard SNMP uses UDP; this guide requires TCP transport configured on snmpd and does not work for most network devices - Fix unclosed code fence after ssh-keygen output block - Replace rc.local persistence with systemd unit (rc.local is deprecated and disabled by default on systemd distros: Ubuntu 16.04+, Debian 9+) - ssh-keygen: recommend ed25519 over RSA * docs: correct PHP 8.1 EOL date, Net-SNMP link, and grammar PHP 8.1 security support ended 31 December 2025, not November 2024. Point the snmpd.conf link at www.net-snmp.org (the sourceforge.io mirror is bot-blocked). Fix 'There a two ways extending' to 'There are two ways to extend'. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> * ci: fix spelling workflow trigger to target develop, not main The repo's default branch is develop; main hasn't moved since 2023. The workflow's push/pull_request filters targeted main, so it never ran on any PR opened against develop. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com> --------- Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
169 lines
8.4 KiB
Markdown
169 lines
8.4 KiB
Markdown
# Graph Templates
|
|
|
|
**Graph Templates** are Cacti objects that allows you to define how RRDtool is
|
|
to render a Cacti **Graph**. Most RRDtool options are supported including
|
|
CDEF's and VDEF's, Left and Right Axis, Ticks and Dashes, multiple Auto Scaling,
|
|
Grid, and Legend Options.
|
|
|
|
The purpose of **Graph Templates** is to simplify the **Automation** process by
|
|
pre-defining the layout of **Graphs** for various metrics that are to be
|
|
monitored in Cacti. When used in Conjunction with Cacti's **Graph Rules**, you
|
|
can automatically create just about any **Data Query** based **Graph** during
|
|
Cacti's **Network Discovery** process.
|
|
|
|
The **Graph Templates** main screen looks like the image below:
|
|
|
|

|
|
|
|
From this page, you can see the title of each **Graph Template**, it's ID which
|
|
is important for the Cacti CLI scripts. You can see if the **Graph Template**
|
|
can be removed, and the number of **Graphs** using the **Graph Template** as
|
|
well as the *Size* of the **Graphs** that will be created, the *Image Format*,
|
|
and *Vertical Label*. Templates that are used by **Devices** can not be removed
|
|
and therefore if you attempt to remove one of these Templates, you will receive
|
|
and error message.
|
|
|
|
From the drop down there are three options, they are:
|
|
|
|
Option | Description
|
|
--- | ---
|
|
*Delete* | Remove the **Graph Template** if it's *Deletable*
|
|
*Duplicate* | Make an exact copy of the **Graph Template**
|
|
*Resize* | Make a resize decision that affects both the **Graph Template** and any
|
|
**Graphs** created using this **Graph Template**
|
|
*Sync Graphs* | Update all **Graphs** using this **Graph Template** with the
|
|
latest definition, adding new *Graph Items* and removing orphaned *Graph Items*
|
|
|
|
When Editing a **Graph Template**, there will be several sections that will
|
|
require information from the Administrator. Those sections include:
|
|
|
|
Section | Description
|
|
--- | ---
|
|
*Graph Template Items* | These items paint inside the canvas of the **Graph**
|
|
*Graph Item Inputs* | This list is created automatically when you add **Data Sources**
|
|
to a **Graph Template**. However, you can also override certain **Data Template**
|
|
and **Graph Template** fields by adding specifically named objects to this
|
|
section as well.
|
|
*Graph Template* | Allows you to name the **Graph Template**, and whether or not
|
|
you will allow multiple instances of this **Graph Template** to be used for a
|
|
**Device**, and whether or not to test for valid data before allowing the creation
|
|
of **Graphs**. The *Test Data Source* option is useful when you want to leverage
|
|
complex **Device Template** that contains **Graph Templates** that may not be applicable
|
|
for all classes of **Devices** using the **Graph Template**.
|
|
*Common Options* | Things like Title, Vertical Label, Image Format,
|
|
Height and Width, Base Value and Slope Mode
|
|
*Scaling Options* | Which determine if the Graph is auto-scaled
|
|
and by what means. Determines if the Graph will have fixed upper and lower limits
|
|
*Grid Options* | Defines how the Graph canvas grid is rendered
|
|
*Axis Options* | Defines if there should be a right Axis and how it should be formatted
|
|
*Legend Options* | Defines how the Legends should be formatted
|
|
|
|
Each of these sections are displayed below for reference. For more information
|
|
on how to use these options, please visit the [RRDtool
|
|
Website](https://RRDtool.org).
|
|
|
|
The *Graph Items* make up what is draw within the canvas of the Graph. There
|
|
are several *Graph Item* types including:
|
|
|
|
Type | Description
|
|
--- | ---
|
|
*AREA* | Place an *Area Fill* on the canvas
|
|
*AREA:STACK* | The second item of an *Area Fill* to be stacked upon the first
|
|
*COMMENT* | A written comment. Can include: |host_*|, |query_*|,
|
|
|input_*| *Replacement Variables*
|
|
*GPRINT* | Print a numeric value from the RRDfile with an optional **CDEF** or **VDEF**
|
|
and formatted using a **GPRINT Preset**.
|
|
*GPRINT:AVERAGE* | Print a numeric value from the RRDfile from the *AVERAGE*
|
|
*Consolidation Function* within the RRA, modified by an optional **CDEF**, or **VDEF**,
|
|
and formatted using a **GPRINT Preset**.
|
|
*GPRINT:LAST* | Print a numeric value from the RRDfile from the *LAST* *Consolidation
|
|
Function*within the RRA, modified by an optional **CDEF**, or **VDEF**,
|
|
and formatted using a **GPRINT Preset**.
|
|
*GPRINT:MAX* | Print a numeric value from the RRDfile from the *MAX* *Consolidation
|
|
Function* within the RRA, modified by an optional **CDEF**, or **VDEF**, and formatted
|
|
using a **GPRINT Preset**.
|
|
*GPRINT:MIN* | Print a numeric value from the RRDfile from the *MIN* *Consolidation
|
|
Function* within the RRA, modified by an optional **CDEF**, or **VDEF**,
|
|
and formatted using a **GPRINT Preset**.
|
|
*HRULE* | Draw an *Horizontal Rule* at the given point on the canvas.
|
|
You can NOT use any Data Source element or an optional **CDEF** or **VDEF**,
|
|
but may be able to use either a |query_*|, or |input_*|
|
|
*Replacement Variable*.
|
|
*LEGEND* | Draw a *Legend* from three *GPRINTS* using the same **GPRINT Preset**,
|
|
and **VDEF** or **CDEF**. The *Current*, *Average*, and *Max* *Consolidation Functions*
|
|
are used.*LEGEND_CAMM* | Draw a *Legend* from four *GPRINTS* using the same **GPRINT_Preset**,
|
|
and **VDEF** or **CDEF**. The *Current*, *Average*, "Min*, and "Max"
|
|
functions are used for this *Legend*.
|
|
*LINE[1,2,3]* | Draw a 1, 2, 3 or used defined thickness pixel *Line* from the
|
|
RRDfile onto the canvas, modified by an optional **CDEF**, or **VDEF**.
|
|
*LINE:STACK* | Stack a Line of a user defined thickness on top of another *Line*,
|
|
modified by an optional **CDEF**, or **VDEF**.
|
|
*TEXTALIGN* | Modify future text using the alignment provided.
|
|
*VRULE* | Place a *Vertical Rule* on the canvas of a specific color and time position.
|
|
|
|
The canvas is painted from the first *Graph Item* till the last with each
|
|
successive *Graph Item* rendered on top of the previous. Please keep this in
|
|
mind when creating a **Graph Template**.
|
|
|
|

|
|
|
|
## Graph Template - General and Common Options
|
|
|
|
- **Name** - This is the name that you provide to the **Graph Template**.Since Cacti
|
|
does not presently have the concept of **Graph Template Class** many authors will
|
|
prefix the **Name** with a **Class** prefix like *Net-SNMP* for example.
|
|
|
|
- **Multiple Instances** - This setting tells Cacti that a device can have more
|
|
than one instance of the Template. This will allow you to select the **Graph Template**
|
|
from the **Create** option of **New Graphs** interface more than once.
|
|
|
|
- **Test Data Sources** - This option will test that the **Data Source** returns
|
|
good data before allowing the creation of the **Graph**.
|
|
You should be aware that if your **Data Source** calls a script that runs
|
|
for a long time, selecting this option can really slow the **Graph** creation process.
|
|
However, it's quite useful if you have a hybrid **Device Template** that includes
|
|
a myriad of **Graph Templates** that may not work with all **Devices**
|
|
that you create using the **Device Template**.
|
|
|
|
Under the *Common Options*, for each **Graph Template** you will specify patterns
|
|
for the *Graph Name*, assign it's *Vertical Label*, specify the *Width* and *Height*,
|
|
and *Image Format* for the resulting **Graph**. The *Base Value* is important
|
|
as some units of measure can be for example: MB (for Mega Bytes - 1024) and MiB (for
|
|
Mega integer Bytes - 1000). Lastly, the *Slope Mode* gives the resulting
|
|
**Graphs** a smoother look.
|
|
|
|

|
|
|
|
## Graph Template - Scaling Options
|
|
|
|
The *Scaling Options* allow the Administrator to apply either *Rigid* or *Auto
|
|
Scaling* settings to the resulting *Graph*. These options are fairly self
|
|
explanatory. However, you can always view the RRDtool Documentation online for
|
|
more information.
|
|
|
|

|
|
|
|
## Graph Template - Grid Options
|
|
|
|
The *Grid Options* are rarely necessary unless you have specific requirements to
|
|
render the resulting **Graphs** with some exotic unit.
|
|
|
|

|
|
|
|
## Graph Template - Axis Options
|
|
|
|
The *Axis Options* allow you to define a *Right Axis* and optional *Formatters*.
|
|
|
|

|
|
|
|
## Graph Template - Legend Options
|
|
|
|
The *Legend* options allow you to specify how the *Legend* should be placed on
|
|
the resulting **Graph** modern RRDtool has several options that were not
|
|
available in Cacti prior to Cacti 1.0.
|
|
|
|

|
|
|
|
---
|
|
Copyright (c) 2004-2026 The Cacti Group
|