May 142017

InfluxDB is an easy to use open-source time series database developed by InfluxData. It is written in Go and optimized for fast, high-availability storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time analytics. It also has support for processing data from Graphite. A time series database have the series records always associated with a timestamp. You can provide the timestamp with the measurement data or the Influx database will generate it itself.

Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB.

Combining Influxdb+Grafana makes an easy to use database and a very flexible and good-looking dashboard for your next Raspberry Pi datalogger project.

TCP port 8086 is used for client-server communication over InfluxDB’s HTTP API.
TCP port 8088 is used for the RPC service for backup and restore.
In addition to the ports above, InfluxDB also offers multiple plugins that may require custom ports. All port mappings can be modified through the configuration file, which is located at /etc/influxdb/influxdb.conf for default installations.

InfluxDB installation instructions on Raspberry Pi:

#1. Add the InfluxData repository configuration by using the following commands:

Note: After hitting enter on some commands, a new prompt appears and nothing else is displayed. In the Command Line Interface, CLI, this means the statement was executed and there were no errors to display. There will always be an error displayed if something went wrong. No news is good news!

curl -sL | sudo apt-key add -source /etc/os-release

test $VERSION_ID = "7" && echo "deb wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

test $VERSION_ID = "8" && echo "deb jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

#2.Install InfluxDB from the repository prevuously added in /etc/apt/sources.list.d/influxdb.list
sudo apt-get update && sudo apt-get install influxdb
#3. Start the InfluxDB service:
sudo service influxdb start
InfluxDB configuration

The system has internal defaults for every configuration file setting. View the default configuration settings with the influxd config command. Most of the settings in the local configuration file (/etc/influxdb/influxdb.conf) are commented out. All commented-out settings will be determined by the internal defaults. Any uncommented settings in the local configuration file override the internal defaults. Note that the local configuration file does not need to include every configuration setting. There are two ways to launch InfluxDB with your configuration file:
Point the process to the correct configuration file by using the -config option:

influxd -config /etc/influxdb/influxdb.conf
Set the environment variable INFLUXDB_CONFIG_PATH to the path of your configuration file and start the process.
For example:
echo $INFLUXDB_CONFIG_PATH /etc/influxdb/influxdb.conf


InfluxDB first checks for the -config option and then for the environment variable. See the Configuration documentation for more information.

To configure the InfluxDB first open the config file in the text editor nano:

sudo nano /etc/influxdb/influxdb.conf

I did the following configuration in the /etc/influxdb/influxdb.conf file:

#1. Configure the web-based Admin user interface, if admin through http web interface is desired:
 Please note that the Influxdb web-based admin interface will be deprecated as of version 1.1.0 and will be removed in a future release.  (Edit the following rows by removing the “#” tag.)
InfluxDB config admin access

#2.Configure the HTTP endpoint to get data in and out of InfluxDB:
(Edit the following rows by removing the “#” tag.)

InfluxDB http configuration file edit

Restart InfluxDB after modifying the file: ​sudo service influxdb restart

Test the InfluxDB installation

Open the Raspberry web browser and type:

Instead of writing “localhost” in the address field you could enter the real IP address of your raspberry Pi: Example: If you don’t know the IP address you, can easily find if by using the bash command sudo hostname -I
If it works,you should see the following html page:
404 page not found
Yes, that’s right, on port 8086 you will see a 404 page. The browser will complain: “This site could not be reached” if the database is not found.

You could also try to run the Influxdb command shell by typing influx in the terminal.
When you see this response you know that it is working:
influxdb shell

Type exit to get out of the Influx shell.

You can login to the web-based admin interface if you have enabled it in the config file:

Before you dive into InfluxDB it’s good to get acquainted with some of the key concepts of the database. This document provides a gentle introduction to those concepts and common InfluxDB terminology. With InfluxDB installed, you’re ready to start doing some awesome things. Getting started guide here.

Grafana installation instructions on RaspberryPi:

I have decided to install using apt From Bintray Debian Repository at Github.

#1. Install some packages and add the bintray pubkey to the apt keyring:
sudo apt-get install apt-transport-https curl
curl | sudo apt-key add -
#2. Update your apt source

For Raspberry pi 1, and Raspberry Pi Zero W, use:

echo "deb jessie main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

For Raspberry pi 2, and Raspberry Pi 3, use:

echo "deb jessie main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
#3. Install
sudo apt-get update
sudo apt-get install grafana
Test the Grafana installation

Open the Raspberry Chromium web browser and type:

You will then see the Grafana login page:
Grafana login html image

You made it!

You’ve sucessfully installed Influxdb and Grafana on your Raspberry Pi supercomputer. If you’re just starting out, we recommend taking a look at Grafana well made documentation for Basic Concept and Getting Started guides.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">