Percona Linux Monitoring Template for Cacti

These templates use ss_get_by_ssh.php to connect to a server via SSH and extract standard metrics such as memory usage, number of users, and CPU usage. This is a good substitute for the standard kinds of system metrics one might graph via SNMP, when SNMP is not available or not desired.


Once the SSH connection is working, no special installation is necessary for most of the graphs.

The disk I/O graphs are special. Each graph requires that you specify the device you want to graph. For /dev/sda, for example, you should specify sda. Do not create the graphs through the normal host template method. Rather, add the graphs to the host manually, one at a time, by clicking “Create Graph” and selecting the desired graph template. Edit not only the device name in the command line, but the name of the graph and data input. Append the name of the device. This will make the items visually distinctive.

See the following screenshot for an example:


You should append sda in every textbox shown in that screenshot, if you want to monitor /dev/sda.

However, for “Disk Space” graph you have to specify the volume.

Device is a block device name as it appears in /proc/diskstats and not always seeing from df output especially when logical volumes are in use, e.g. sda3, xvda1, cciss/c0d0p1. It also can be verified from lsblk output. If lsblk is not available use pvdisplay from lvm2 package.

Volume is a filesystem absolute path as it appears under the first column of df output, e.g. /dev/sda3, /dev/cciss/c0d0p1, /dev/mapper/vglocal01-mysql00.

Example with logical volumes:

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
                      271G  5.5G  252G   3% /
tmpfs                 127G     0  127G   0% /dev/shm
/dev/sda1             243M   32M  199M  14% /boot
                      2.0G   68M  1.9G   4% /tmp
                      700G  198G  503G  29% /mnt/mysql-fs
[root@localhost ~]# lsblk
NAME                              MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                                 8:0    0 278.9G  0 disk
|-sda1                              8:1    0   250M  0 part /boot
`-sda2                              8:2    0 278.6G  0 part
  |-vglocal02-swap00 (dm-0)       253:0    0     2G  0 lvm  [SWAP]
  |-vglocal02-root00 (dm-1)       253:1    0 274.6G  0 lvm  /
  `-vglocal02-tmp00 (dm-3)        253:3    0     2G  0 lvm  /tmp
sdb                                 8:16   0   744G  0 disk
`-sdb1                              8:17   0   744G  0 part
  `-vglocal01-mysql00 (dm-2)      253:2    0   700G  0 lvm  /mnt/mysql-fs

Device is sdb1 and volume is /dev/mapper/vglocal01-mysql00 in this example, if you want to monitor /mnt/mysql-fs.

Sample Graphs

The following sample graphs demonstrate how the data is presented.


The number of context switches performed by the server.


The CPU usage. The example shows a server having 1 processor with 2 cores, 4 threads, i.e. 4 virtual CPUs. The values will increase by 100 with each added virtual CPU.


The number of new processes created by the system.


The interrupts the system handles.


The system load average.

If you’re used to Cacti’s standard load average graph, you might think this one has less information. That is not true; the standard graph that comes with Cacti simply shows the same information averaged over three time intervals, which is redundant. RRDTool is natively capable of doing that.


The system’s memory usage, as reported by the “free” command.


The number of users that were logged into the system, as reported by the “w” command.


The number of read and write operations completed, and how many reads and writes were merged.


The number of disk sectors read and written.


The amount of time spent reading and writing.


The amount of time spent reading and writing per 1 IO request.


The disk utilization. This graph shows how much time was spent in disk I/O overall (busy time), and how much weighted time was spent doing disk I/O. The latter is a useful indication of I/O backlog. The weighted time is the number of requests multiplied by the busy time, so if there are 5 requests that take 1 second, it is 5 seconds. (If they all happen at the same time, the busy time is only 1 second.)


The number of disk IO operations per second. Actually, this is a sum of reads + writes.


The disk space for the volume.


The swap usage of the system.


The network traffic for the adapter in bits/sec.


The network connection states for the adapter.


The network errors for the adapter.

Table Of Contents

Previous topic

Percona JMX Monitoring Template for Cacti

Next topic

Percona Memcached Monitoring Template for Cacti