Datadog-Cacti Integration

Overview

Get metrics from cacti service in real time to:

  • Visualize and monitor cacti states
  • Be notified about cacti failovers and events.

Setup

Installation

The Cacti check is packaged with the Agent, so simply install the Agent on your Cacti servers.

Configuration

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 conf.d/cacti.yaml. See the sample cacti.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 dd-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 - dd-agent -c 'if [ -r /var/lib/cacti/rra/ ];
then echo -e "\033[0;31mdd-agent can read the RRD files\033[0m";
else echo -e "\033[0;31mdd-agent can not read the RRD files\033[0m";
fi'

Validation

Run the Agent’s info subcommand and look for cacti under the Checks section:

  Checks
  ======
    [...]

    cacti
    -------
      - instance #0 [OK]
      - Collected 26 metrics, 0 events & 1 service check

    [...]

Compatibility

The Cacti check is compatible with all major platforms

Data Collected

Metrics

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
shown as
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
shown as
system.load.1.max
(gauge)
The average system load over one minute - max polling value
shown as
system.load.1.min
(gauge)
The average system load over one minute - min polling value
shown as
system.load.15.last
(gauge)
The average system load over 15 minute - last polling value
shown as
system.load.15.max
(gauge)
The average system load over 15 minute - max polling value
shown as
system.load.15.min
(gauge)
The average system load over 15 minute - min polling value
shown as
system.load.5.last
(gauge)
The average system load over five minute - last polling value
shown as
system.load.5.max
(gauge)
The average system load over five minute - max polling value
shown as
system.load.5.min
(gauge)
The average system load over five minute - min polling value
shown as
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
shown as
system.users.current.max
(gauge)
The number of logged in users - max polling value
shown as
system.users.current.min
(gauge)
The number of logged in users - min polling value
shown as

Events

The Cacti check does not include any event at this time.

Service Checks

The Cacti check does not include any service check at this time.

Troubleshooting

Need help? Contact Datadog Support.

Further Reading

Learn more about infrastructure monitoring and all our integrations on our blog