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