Get metrics from Cacti in real time to:
- Visualize and monitor Cacti states.
- Be notified about Cacti failovers and events.
The Cacti check is included in the Datadog Agent package, to start gathering metrics you first need to:
- Install
librrd
headers and libraries. - Install python bindings to
rrdtool
.
On Debian/Ubuntu:
sudo apt-get install librrd-dev
On RHEL/CentOS:
sudo yum install rrdtool-devel
Now add the rrdtool
Python package to the Agent with the following command:
sudo -u dd-agent /opt/datadog-agent/embedded/bin/pip install rrdtool
-
Create a Datadog user with read-only rights to the Cacti database.
sudo mysql -e "create user 'datadog'@'localhost' identified by '<MYSQL_PASSWORD>';" sudo mysql -e "grant select on cacti.* to 'datadog'@'localhost';"
-
Check the user and rights:
mysql -u datadog --password=<MYSQL_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=<MYSQL_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"
-
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'
-
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: ## @param mysql_host - string - required ## url of your MySQL database # - mysql_host: "localhost" ## @param mysql_port - integer - optional - default: 3306 ## port of your MySQL database # # mysql_port: 3306 ## @param mysql_user - string - required ## User to use to connect to MySQL in order to gather metrics # mysql_user: "datadog" ## @param mysql_password - string - required ## Password to use to connect to MySQL in order to gather metrics # mysql_password: "<MYSQL_PASSWORD>" ## @param rrd_path - string - required ## The Cacti checks requires access to the Cacti DB in MySQL and to the RRD ## files that contain the metrics tracked in Cacti. ## In almost all cases, you'll only need one instance pointing to the Cacti ## database. ## The `rrd_path` will probably be `/var/lib/cacti/rra` on Ubuntu ## or `/var/www/html/cacti/rra` on any other machines. # rrd_path: "<CACTI_RRA_PATH>"
Run the Agent's status subcommand and look for cacti
under the Checks section.
See metadata.csv for a list of metrics provided by this integration.
The Cacti check does not include any events.
The Cacti check does not include any service checks.
The Python library used by this integration leaks memory under certain circumstances. If you experience this, one workaround is to install the python-rrdtool package instead of rrdtool. This older package is not maintained and is not officially supported by this integration but it has helped others resolve the memory issues.
A Github issue has been opened to track this memory leak.
Need help? Contact Datadog support.