Cacti alternatives and similar tools
Based on the "Monitoring" category.
Alternatively, view Cacti alternatives based on common mentions on social networks and blogs.
netdata9.9 9.8 L1 Cacti VS netdataReal-time performance monitoring, done right!
Sentry9.7 10.0 L3 Cacti VS SentryDeveloper-first error tracking and performance monitoring
Uptime Kuma9.6 9.5 Cacti VS Uptime KumaA fancy self-hosted monitoring tool
cadvisor9.0 7.9 Cacti VS cadvisorAnalyzes resource usage and performance characteristics of running containers.
Dash8.4 0.0 Cacti VS DashA beautiful web dashboard for Linux
VictoriaMetrics8.1 9.9 Cacti VS VictoriaMetricsVictoriaMetrics: fast, cost-effective monitoring solution and time series database
LibreNMS7.6 9.8 L2 Cacti VS LibreNMSCommunity-based GPL-licensed network monitoring system
Healthchecks7.6 6.8 Cacti VS HealthchecksA cron monitoring tool written in Python & Django
Cabot7.4 0.0 L2 Cacti VS CabotSelf-hosted, easily-deployable monitoring and alerts service - like a lightweight PagerDuty
Vector7.2 0.2 Cacti VS VectorVector is an on-host performance monitoring framework which exposes hand picked high resolution metrics to every engineer’s browser.
Riemann7.1 6.2 Cacti VS RiemannA network event stream processing system, in Clojure.
Sensu6.9 0.4 L4 Cacti VS SensuOpen source monitoring framework.
Zabbix6.8 10.0 Cacti VS ZabbixReal-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.
Bosun6.8 0.0 Cacti VS BosunTime Series Alerting Framework
ElastiFlow6.5 4.1 Cacti VS ElastiFlowNetwork flow analytics (Netflow, sFlow and IPFIX) with the Elastic Stack
psdash6.3 0.0 L5 Cacti VS psdashA linux system information web dashboard using psutils and flask
Alerta6.1 6.5 L2 Cacti VS AlertaAlerta monitoring system
ServerStatus BotoX6.1 0.0 L2 Cacti VS ServerStatus BotoXDisplay and monitor your servers statistics in a beatiful way
Munin6.0 6.5 L4 Cacti VS MuninMain repository for munin master / node / plugins
Scrutiny5.9 9.1 Cacti VS ScrutinyHard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds
rtop5.8 2.1 Cacti VS rtoprtop is an interactive, remote system monitoring tool based on SSH
Nagios5.6 5.3 L1 Cacti VS NagiosNagios Core
PhpSysInfo5.5 9.3 L2 Cacti VS PhpSysInfophpSysInfo: a customizable PHP script that displays information about your system nicely
Shinken5.5 0.0 L2 Cacti VS ShinkenFlexible and scalable monitoring framework
checkmk5.3 10.0 Cacti VS checkmkCheckmk - Best-in-class infrastructure & application monitoring
Uchiwa5.2 0.0 Cacti VS UchiwaSimple dashboard for the Sensu monitoring framework.
Seyren5.0 0.0 L4 Cacti VS SeyrenAn alerting dashboard for Graphite
Performance Co-Pilot4.9 9.8 Cacti VS Performance Co-PilotPerformance Co-Pilot
Monit4.7 - Cacti VS MonitSmall Open Source utility for managing and monitoring Unix systems.
pyDash4.6 0.0 Cacti VS pyDashSmall web-based monitoring dashboard for linux in Python and Django
Flapjack4.3 0.0 L5 Cacti VS FlapjackMonitoring notification routing + event processing system. For issues with the Flapjack packages, please see https://github.com/flapjack/omnibus-flapjack/
Statping-ng4.3 7.0 Cacti VS Statping-ngAn updated drop-in for statping. A Status Page for monitoring your websites and applications with beautiful graphs, analytics, and plugins. Run on any type of environment.
Thruk4.2 9.8 L2 Cacti VS ThrukThruk is a multibackend monitoring webinterface for Naemon, Nagios, Icinga and Shinken using the Livestatus API.
ServerStatus moejda4.1 0.0 L5 Cacti VS ServerStatus moejdaServer Status website script, displays uptime (days), free RAM, free HDD.
eZ Server Monitor3.9 0.0 Cacti VS eZ Server MonitoreZ Server Monitor`Web - A simple and lightweight dashboard for Linux
Adagios3.8 0.0 Cacti VS AdagiosAdagios - Web Based Nagios Configuration
AS-Stats v1.6 (2014-09-12)A simple tool to generate per-AS traffic graphs from NetFlow/sFlow records
Naemon3.2 2.5 L2 Cacti VS NaemonNetworks, Applications and Event Monitor
OMD3.1 5.8 L4 Cacti VS OMDOMD - Open Monitoring Distribution Labs Edition
SWMP - Server Web Monitor PageA responsive, eye-pleasing Linux server statistics dashboard.
Check VMware API2.7 0.0 Cacti VS Check VMware APIAn op5 Monitor/Naemon plugin to monitor VMware virtualization environment
Bloonix2.5 0.0 Cacti VS BloonixBase information
Centreon2.4 9.9 L2 Cacti VS CentreonCentreon is a network, system and application monitoring tool. Centreon is the only AIOps Platform Providing Holistic Visibility to Complex IT Workflows from Cloud to Edge.
Ninja2.4 7.5 Cacti VS NinjaNinja is Now Just Awesome - a modern web GUI for Naemon
Merlin2.4 4.6 Cacti VS MerlinModule for Effortless Redundancy and Loadbalancing In Naemon
Icinga2.2 0.0 Cacti VS IcingaFork of Nagios.
netcheck2.1 4.8 Cacti VS netcheckNetcheck API - Website performance and availability monitoring app
bolo2.0 0.0 L1 Cacti VS boloA Monitoring System
NetXMSOpen Source network and infrastructure monitoring and management. (Source Code)
XymonNetwork monitoring inspired by Big Brother.
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Cacti or a related project?
Running Cacti from the
When using source or by downloading the code directly from the repository, it is important to run the database upgrade script if you experience any errors referring to missing tables or columns in the database.
Changes to the database are committed to the
cacti.sql file which is used for
new installations and committed to the installer database upgrade for existing
installations. Because the version number does not change until release in the
develop branch, which will result in the database upgrade not running, it is
important to either use the database upgrade script to force the current version
or update the version in the database.
Upgrading from Pre-Cacti 1.x Releases
When Cacti was first developed nearly 20 years ago, MySQL was not as mature as it is now. When The Cacti Group went about engineering Cacti 1.x, a decision was made to force users to use the InnoDB storage engine for many of the Tables. This was done as the InnoDB storage engine provides a better user experience when your web site has several concurrent logins. Though a little slower, it also provides greater resiliancy for the developers.
With that said, there are several changes that you MUST perform to MySQL/MariaDB before you upgrade, and a service restart is required. Depending on your release of MariaDB or MySQL, the following settings will either be required, or already enabled as default:
If using MariaDB or MySQL prior to 8.0
[mysqld] # required for multiple language support character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci # Memory tunables - Cacti provides recommendations at upgrade time max_heap_table_size = XXX max_allowed_packet = 500M tmp_table_size = XXX join_buffer_size = XXX sort_buffer_size = XXX # Ensure sufficient connections. This will change depending on your # size. Some sites may require as many as 1000 max_connections = 300 # important for compatibility sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER # innodb settings - Cacti provides recommendations at upgrade time innodb_buffer_pool_instances = XXX innodb_flush_log_at_trx_commit = 2 innodb_buffer_pool_size = XXX innodb_sort_buffer_size = XXX innodb_doublewrite = ON # required innodb_file_per_table = ON innodb_file_format = Barracuda innodb_large_prefix = 1 # not all version support innodb_flush_log_at_timeout = 3 # for SSD's/NVMe innodb_read_io_threads = 32 innodb_write_io_threads = 16 innodb_io_capacity = 10000 innodb_io_capacity_max = 20000 innodb_flush_method = O_DIRECT
If using MySQL 8.x or higher
[mysqld] # required for multiple language support character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci # required to make life easier on MySQL 8.x default_authentication_plugin = mysql_native_password # Memory tunables - Cacti provides recommendations at upgrade time max_heap_table_size = XXX max_allowed_packet = 500M tmp_table_size = XXX join_buffer_size = XXX sort_buffer_size = XXX # Ensure sufficient connections. This will change depending on your # size. Some sites may require as many as 1000 max_connections = 300 # important for compatibility sql_mode=NO_ENGINE_SUBSTITUTION # innodb settings - Cacti provides recommendations at upgrade time innodb_buffer_pool_instances = XXX innodb_flush_log_at_trx_commit = 2 innodb_buffer_pool_size = XXX innodb_sort_buffer_size = XXX innodb_doublewrite = ON # required innodb_file_per_table = ON # not all version support innodb_flush_log_at_timeout = 3 # for SSD's/NVMe innodb_read_io_threads = 32 innodb_write_io_threads = 16 innodb_io_capacity = 10000 innodb_io_capacity_max = 20000 innodb_flush_method = O_DIRECT
The required settings are very important. Otherwise, you will encounter issues upgrading as well as at install time. The settings with XXX, Cacti will provide a recommendation at upgrade time. It is not out of the ordinary to have to restart MySQL/MariaDB during the upgrade to tune these settings. Please make special note of this before you begin your upgrade.
Before you upgrade, you should make these required changes, then restart MySQL/MariaDB. After that, you can save yourself some time and poential errors by running the following scripts (assuming you are using bash):
for table in `mysql -e "SELECT TABLE_NAME FROM information_schema.TABLES WHERE table_schema='cacti' AND engine!='MEMORY'" cacti | grep -v TABLE_NAME`; do echo "Converting $table"; mysql -e "ALTER TABLE $table ENGINE=InnoDB ROW_FORMAT=Dynamic CHARSET=utf8mb4" cacti; done
This will convert any tables that are either InnoDB or MyISAM to Barracuda file format, dynamic row format and utf8mb4. Note, that if you have been using MySQL or MariaDB without innodb_file_per_table set to on, you might be better in backing up your database, resetting InnoDB by removing your ib* files in the /var/lib/mysql directory, and after which restoring your database and MySQL/MariaDB tables and permissions. Before you take such a step, you should always practice on a test server until you feel comfortable with the change.
Good luck, and enjoy Cacti!
Running Database Upgrade Script
sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`
Updating Cacti Version in Database
update version set cacti = '1.1.38';
Note: Change the above version to the correct version or risk the installer upgrading from a previous version.
Cacti is a complete network graphing solution designed to harness the power of RRDtool's data storage and graphing functionality providing the following features:
Remote and local data collectors
Automation of device and graph creation
Graph and device templating
Custom data collection methods
User, group and domain access controls
All of this is wrapped in an intuitive, easy to use interface that makes sense for both LAN-sized installations and complex networks with thousands of devices.
Developed in the early 2000s by Ian Berry as a high school project, it has been used by thousands of companies and enthusiasts to monitor and manage their Enterprise Networks and Data Centers.
Cacti should be able to run on any Linux, UNIX, or Windows based operating system with the following requirements:
MySQL 5.6.5+, MariaDB 10.0+
RRDtool 1.3+, 1.5+ recommended
Web Server with PHP support
PHP Must also be compiled as a standalone cgi or cli binary. This is required for data gathering via cron.
We mark the php-snmp module as optional. So long as you are not using ipv6 devices, or using snmpv3 engine IDs or contexts, then using php-snmp should be safe. Otherwise, you should consider uninstalling the php-snmp module as it will create problems. We are aware of the problem with php-snmp and looking to get involved in the php project to resolve these issues.
RRDtool is available in multiple versions and a majority of them are supported by Cacti. Please remember to confirm your Cacti settings for the RRDtool version if you having problem rendering graphs.
Documentation is available with the Cacti releases and also available for viewing on the Documentation Repository.
Check out the main Cacti web site for downloads, change logs, release notes and more!
Given the large scope of Cacti, the forums tend to generate a respectable amount of traffic. Doing your part in answering basic questions goes a long way since we cannot be everywhere at once. Contribute to the Cacti community by participating on the Cacti Community Forums.
Get involved in creating and editing Cacti Documentation! Fork, change and submit a pull request to help improve the documentation on GitHub.
Check out the Cacti Group's Official YouTube channel
If you would have any ideas for videos or would like to contibute let us know !
Cacti Official Youtube Channel
Get involved in development of Cacti! Join the developers and community on GitHub!
Cacti handles the gathering of data through the concept of data sources. Data sources utilize input methods to gather data from devices, hosts, databases, scripts, etc... The possibilities are endless as to the nature of the data you are able to collect. Data sources are the direct link to the underlying RRD files; how data is stored within RRD files and how data is retrieved from RRD files.
Graphs, the heart and soul of Cacti, are created by RRDtool using the defined data sources definition.
Bringing it all together, Cacti uses and extensive template system that allows for the creation and consumption of portable templates. Graph, data source, and RRA templates allow for the easy creation of graphs and data sources out of the box. Along with the Cacti community support, templates have become the standard way to support graphing any number of devices in use in today computing and networking environments.
Data Collection (The Poller)
Local and remote data collection support with the ability to set collection intervals. Check out Data Source Profile with in Cacti for more information. Data Source Profiles can be applied to graphs at creation time or at the data template level.
Remote data collection has been made easy through replication of resources to remote data collectors. Even when connectivity to the main Cacti installation is lost from remote data collector, it will store collected data until connectivity is restored. Remote data collection only requires MySQL and HTTP/HTTPS access back to the main Cacti installation location.
Network Discovery and Automation
Cacti provides administrators a series of network automation functionality in order to reduce the time and effort it takes to setup and manage devices.
Multiple definable network discovery rules
Automation templates that specify how devices are configured
Cacti is more than a network monitoring system, it is an operations framework that allows the extension and augmentation of Cacti functionality. The Cacti Group continues to maintain an assortment of plugins. If you are looking to add features to Cacti, there is quite a bit of reference material to choose from on GitHub.
Dynamic Graph Viewing Experience
Cacti allows for many runtime augmentations while viewing graphs:
Dynamically loaded tree and graph view
Searching by string, graph and template types
Simple time span adjustments
Convenient sliding time window buttons
Single click realtime graph option
Easy graph export to csv
RRA view with just a click
User, Groups and Permissions
Support for per user and per group permissions at a per realm (area of Cacti), per graph, per graph tree, per device, etc... The permission model in Cacti is role based access control (RBAC) to allow for flexible assignment of permissions. Support for enforcement of password complexity, password age and changing of expired passwords.
RRDtool Graph Options
Cacti supports most RRDtool graphing abilities including:
Full right axis
Dash and dash offset
No grid fit
User definable line widths
Copyright (c) 2021 - The Cacti Group, Inc.