1source: Extensions/RRDCached.md 2path: blob/master/doc/ 3 4# Setting up RRDCached 5 6This document will explain how to setup RRDCached for LibreNMS. 7 8Since version 1.5, rrdtool / rrdcached now supports creating rrd files 9over rrdcached. If you have rrdcached 1.5.5 or above, you can also 10tune over rrdcached. To enable this set the following config: 11 12```php 13$config['rrdtool_version'] = '1.5.5'; 14``` 15This setting has to be the exact version of rrdtool you are running. 16 17NOTE: This feature requires your client version of rrdtool to be 1.5.5 18or newer, in addition to your rrdcached version. 19 20# Distributed Poller Support Matrix 21 22Shared FS: Is a shared filesystem required? 23 24Features: Supported features in the version indicated. 25 26``` 27 G = Graphs. 28 C = Create RRD files. 29 U = Update RRD files. 30 T = Tune RRD files. 31``` 32 33| Version | Shared FS | Features | 34| ------- | :-------: | -------- | 35| 1.4.x | Yes | G,U | 36| <1.5.5 | Yes | G,U | 37| >=1.5.5 | No | G,C,U | 38| >=1.6.x | No | G,C,U | 39 40It is recommended that you monitor your LibreNMS server with LibreNMS 41so you can view the disk I/O usage delta. 42 43 44# Installation Manual for 45 461. [RRDCached installation Ubuntu 16](#rrdcached-installation-ubuntu-16) 471. [RRDCached installation Debian Buster](#rrdcached-installation-debian-buster) 481. [RRDCached installation Debian Stretch](#rrdcached-installation-debian-stretch) 491. [RRDCached installation CentOS 7 or 8](#rrdcached-installation-centos-7-or-8) 501. [RRDCached installation CentOS 6](#rrdcached-installation-centos-6) 511. [Securing RRCached](#Securing-RRCached) 52 53 54## RRDCached installation Ubuntu 16 55 561: Install rrdcached 57 58```bash 59sudo apt-get install rrdcached 60``` 61 622: Edit `/etc/default/rrdcached` to include: 63 64``` 65DAEMON=/usr/bin/rrdcached 66DAEMON_USER=librenms 67DAEMON_GROUP=librenms 68WRITE_THREADS=4 69WRITE_TIMEOUT=1800 70WRITE_JITTER=1800 71BASE_PATH=/opt/librenms/rrd/ 72JOURNAL_PATH=/var/lib/rrdcached/journal/ 73PIDFILE=/run/rrdcached.pid 74SOCKFILE=/run/rrdcached.sock 75SOCKGROUP=librenms 76BASE_OPTIONS="-B -F -R" 77``` 78 792: Fix permissions 80 81```bash 82chown librenms:librenms /var/lib/rrdcached/journal/ 83``` 84 853: Restart the rrdcached service 86 87```bash 88systemctl restart rrdcached.service 89``` 90 915: Edit `/opt/librenms/config.php` to include: 92 93```php 94$config['rrdcached'] = "unix:/run/rrdcached.sock"; 95``` 96 97## RRDCached installation Debian Buster 98(rrdcached 1.7.1) 99 1001: Install rrdcached 101 102```bash 103sudo apt-get install rrdcached 104``` 105 1062; Edit /etc/default/rrdcached to include: 107 108```bash 109DAEMON=/usr/bin/rrdcached 110WRITE_TIMEOUT=1800 111WRITE_JITTER=1800 112WRITE_THREADS=4 113BASE_PATH=/opt/librenms/rrd/ 114JOURNAL_PATH=/var/lib/rrdcached/journal/ 115PIDFILE=/var/run/rrdcached.pid 116SOCKFILE=/run/rrdcached.sock 117SOCKGROUP=librenms 118DAEMON_GROUP=librenms 119DAEMON_USER=librenms 120BASE_OPTIONS="-B -F -R" 121``` 122 1233: Fix permissions 124 125```bash 126chown librenms:librenms /var/lib/rrdcached/journal/ 127``` 128 1294: Restart the rrdcached service 130 131```bash 132 systemctl restart rrdcached.service 133``` 134 1355: Edit /opt/librenms/config.php to include: 136 137For local RRDCached server 138 139```php 140$config['rrdcached'] = "unix:/run/rrdcached.sock"; 141``` 142 143For remote RRDCached server make sure you have network option in /var/default/rrdcached 144 145```bash 146NETWORK_OPTIONS="-L" 147``` 148 149```php 150$config['rrdcached'] = "IPADDRESS:42217"; 151``` 152 153NOTE: change IPADDRESS to the ip the rrdcached server is listening on. 154 155## RRDCached installation Debian Stretch 156(rrdcached 1.6.0) 157 1581: Install rrdcached 159 160```bash 161sudo apt-get install rrdcached 162``` 163 1642; Edit /etc/default/rrdcached to include: 165 166```bash 167DAEMON=/usr/bin/rrdcached 168WRITE_TIMEOUT=1800 169WRITE_JITTER=1800 170WRITE_THREADS=4 171BASE_PATH=/opt/librenms/rrd/ 172JOURNAL_PATH=/var/lib/rrdcached/journal/ 173PIDFILE=/var/run/rrdcached.pid 174SOCKFILE=/run/rrdcached.sock 175SOCKGROUP=librenms 176DAEMON_GROUP=librenms 177DAEMON_USER=librenms 178BASE_OPTIONS="-B -F -R" 179``` 180 1813: Fix permissions 182 183```bash 184chown librenms:librenms /var/lib/rrdcached/journal/ 185``` 186 1874: Restart the rrdcached service 188 189```bash 190 systemctl restart rrdcached.service 191``` 192 1935: Edit /opt/librenms/config.php to include: 194 195For local RRDCached server 196 197```php 198$config['rrdcached'] = "unix:/run/rrdcached.sock"; 199``` 200 201For remote RRDCached server make sure you have network option in /var/default/rrdcached 202 203```bash 204NETWORK_OPTIONS="-L" 205``` 206 207```php 208$config['rrdcached'] = "IPADDRESS:42217"; 209``` 210 211NOTE: change IPADDRESS to the ip the rrdcached server is listening on. 212 213## RRDCached installation CentOS 7 or 8 214 2151: Create `/etc/systemd/system/rrdcached.service` with this content: 216 217``` 218[Unit] 219Description=Data caching daemon for rrdtool 220After=network.service 221 222[Service] 223Type=forking 224PIDFile=/run/rrdcached.pid 225ExecStart=/usr/bin/rrdcached -w 1800 -z 1800 -f 3600 -s librenms -U librenms -G librenms -B -R -j /var/tmp -l unix:/run/rrdcached.sock -t 4 -F -b /opt/librenms/rrd/ 226 227[Install] 228WantedBy=default.target 229``` 230 2312: Start rrdcached 232 233```bash 234systemctl enable --now rrdcached.service 235``` 236 2373: Edit `/opt/librenms/config.php` to include: 238 239```php 240$config['rrdcached'] = "unix:/run/rrdcached.sock"; 241``` 242 243## RRDCached installation CentOS 6 244 245This example is based on a fresh LibreNMS install, on a minimal CentOS 6 installation. 246In this example, we'll use the Repoforge repository. 247 248```ssh 249rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm 250vi /etc/yum.repos.d/rpmforge.repo 251``` 252 253- Enable the Extra repo 254 255```ssh 256yum update rrdtool 257vi /etc/yum.repos.d/rpmforge.repo 258``` 259 260- Disable the [rpmforge] and [rpmforge-extras] repos again 261 262```ssh 263vi /etc/sysconfig/rrdcached 264 265# Settings for rrdcached 266OPTIONS="-w 1800 -z 1800 -f 3600 -s librenms -U librenms -G librenms -B -R -j /var/tmp -l unix:/run/rrdcached.sock -t 4 -F -b /opt/librenms/rrd/" 267RRDC_USER=librenms 268 269mkdir /var/run/rrdcached 270chown librenms:librenms /var/run/rrdcached/ 271chown librenms:librenms /var/rrdtool/ 272chown librenms:librenms /var/rrdtool/rrdcached/ 273chkconfig rrdcached on 274service rrdcached start 275``` 276 277- Edit /opt/librenms/config.php to include: 278 279```php 280$config['rrdcached'] = "unix:/run/rrdcached.sock"; 281``` 282 283# Verify 284 285Check to see if the graphs are being drawn in LibreNMS. This might take a few minutes. 286After at least one poll cycle (5 mins), check the LibreNMS disk I/O performance delta. 287Disk I/O can be found under the menu Devices>All Devices>[localhost 288hostname](../Installation/Installation-CentOS-7-Apache.md)>Health>Disk I/O. 289 290Depending on many factors, you should see the Ops/sec drop by ~30-40%. 291 292# Securing RRCached 293 294Please see [RRDCached Security](RRDCached-Security.md) 295 296