Get metrics from cacti service in real time to:
The Cacti check is included in the Datadog Agent package, so you don’t need to install anything else on your Cacti servers.
Create a datadog user with read-only rights to the Cacti database
sudo mysql -e "create user 'datadog'@'localhost' identified by '<password>';"
sudo mysql -e "grant select on cacti.* to 'datadog'@'localhost';"
Check user and rights
mysql -u datadog --password=<password> -e "show status" | \
grep Uptime && echo -e "\033[0;32mMySQL user - OK\033[0m" || \
echo -e "\033[0;31mCannot connect to MySQL\033[0m"
mysql -u datadog --password=<password> -D cacti -e "select * from data_template_data limit 1" && \
echo -e "\033[0;32mMySQL grant - OK\033[0m" || \
echo -e "\033[0;31mMissing SELECT grant\033[0m"
Configure the Agent to connect to MySQL, edit your cacti.d/conf.yaml
file. See the sample cacti.d/conf.yaml for all available configuration options:
init_config:
instances:
- mysql_host: localhost
mysql_user: datadog
mysql_password: hx3beOpMFcvxn9gXcs0MU3jX
rrd_path: /path/to/cacti/rra
#field_names:
# - ifName
# - dskDevice
# - ifIndex
#rrd_whitelist: /path/to/rrd_whitelist.txt
Give the datadog-agent user access to the RRD files
sudo gpasswd -a dd-agent www-data
sudo chmod -R g+rx /var/lib/cacti/rra/
sudo su - datadog-agent -c 'if [ -r /var/lib/cacti/rra/ ];
then echo -e "\033[0;31mdatadog-agent can read the RRD files\033[0m";
else echo -e "\033[0;31mdatadog-agent can not read the RRD files\033[0m";
fi'
Run the Agent’s status
subcommand and look for cacti
under the Checks section.
cacti.hosts.count (gauge) |
The number of hosts monitored by Cacti shown as host |
cacti.metrics.count (gauge) |
The number of metrics collected from Cacti |
cacti.rrd.count (gauge) |
The number of Cacti RRD files shown as file |
system.disk.free.last (gauge) |
The amount of disk space that is free - last polling value shown as byte |
system.disk.free.max (gauge) |
The amount of disk space that is free - max polling value shown as byte |
system.disk.free.min (gauge) |
The amount of disk space that is free - min polling value shown as byte |
system.disk.used.last (gauge) |
The amount of disk space that is used - last polling value shown as byte |
system.disk.used.max (gauge) |
The amount of disk space that is used - max polling value shown as byte |
system.disk.used.min (gauge) |
The amount of disk space that is used - min polling value shown as byte |
system.load.1.last (gauge) |
The average system load over one minute - last polling value |
system.load.1.max (gauge) |
The average system load over one minute - max polling value |
system.load.1.min (gauge) |
The average system load over one minute - min polling value |
system.load.15.last (gauge) |
The average system load over 15 minute - last polling value |
system.load.15.max (gauge) |
The average system load over 15 minute - max polling value |
system.load.15.min (gauge) |
The average system load over 15 minute - min polling value |
system.load.5.last (gauge) |
The average system load over five minute - last polling value |
system.load.5.max (gauge) |
The average system load over five minute - max polling value |
system.load.5.min (gauge) |
The average system load over five minute - min polling value |
system.mem.buffered.last (gauge) |
The amount of physical RAM used for file buffers - last polling value shown as byte |
system.mem.buffered.max (gauge) |
The amount of physical RAM used for file buffers - max polling value shown as byte |
system.mem.buffered.min (gauge) |
The amount of physical RAM used for file buffers - min polling value shown as byte |
system.ping.latency (gauge) |
The system ping latency - avg polling value shown as millisecond |
system.ping.latency.max (gauge) |
The system ping latency - max polling value shown as millisecond |
system.proc.running.last (gauge) |
The number of processes running - last polling value shown as process |
system.proc.running.max (gauge) |
The number of processes running - max polling value shown as process |
system.proc.running.min (gauge) |
The number of processes running - min polling value shown as process |
system.swap.free.max (gauge) |
The amount of free swap space - max polling value shown as byte |
system.users.current.last (gauge) |
The number of logged in users - last polling value |
system.users.current.max (gauge) |
The number of logged in users - max polling value |
system.users.current.min (gauge) |
The number of logged in users - min polling value |
The Cacti check does not include any events.
The Cacti check does not include any service checks.
Need help? Contact Datadog support.
Mistake in the docs? Feel free to contribute!