There are a lot of interesting monitoring tasks, that can be facilitated with a Raspberry Pi (e.g. here, there). Circonus does not officially support “Raspbian Linux on armv6/v7” as a deployment target, but given the steady interest in this topic, we took the time to pave the way and write down some instructions in this post.
Let’s dive right in:
# Install dependencies sudo apt-get update sudo apt-get install git make # Only node node v4 or node v6 are supported. Install official arm package wget https://nodejs.org/dist/latest-v6.x/node-v6.12.3-linux-armv6l.tar.xz sudo mkdir -p /opt/node sudo tar -vxf node-v6.12.3-linux-armv6l.tar.xz -C /opt/node --strip-components=1 sudo ln -s /opt/node/bin/node /usr/bin/node sudo ln -s /opt/node/bin/npm /usr/bin/npm sudo ln -s /opt/node/bin/node /opt/circonus/bin/node # Install nad from sources git clone https://github.com/circonus-labs/nad.git cd nad git checkout v2.5.1 sudo make install install-linux-init # Fix nad disk plugins which depend on /proc/mdstat sudo modprobe md
This should install and enable the monitoring agent nad on the RPI. Check that it is up and running using:
# Is it up? -> You should see a staus report mentioning "active (running)" systemctl status nad # Does it serve metrics? -> You should see a large JSON blob, containing metrics curl localhost:2609
Now copy paste the one-step-install command from the Integrations > Checks > [New Host] page. In my case this is:
curl -sSL https://onestep.circonus.com/install | bash \ -s -- \ --key xxxxxxxxx-50ce-4118-9145-xxxxxxxxxx \ --app circonus:osi:xxxxxx...
The credentials will be different for you. The installer should find the running agent and register checks, graphs and the USE Dashboard for you. We needed to make some tweaks to the COSI installer itself to get this working as it is now. Special thanks goes to Matt Maier from Circonus to make this happen so quickly.
These instructions were tested on Raspbian stretch lite (Version: November 2017 / Release date: 2017-11-29 / Kernel version: 4.9) on a RPI2 Model B.
This post was also published on Heinrich Hartmann’s blog.