article

sim-1 avatar image
sim-1 posted

Guide: Installing Victron Grafana Dockers on UnRaid

I was struggling for a while to find info on how to install the Grafana Docker solution on UnRaid. Since I got it done and didn't see a guide out there, here is one.
Disclaimer: I am not expert with dockers, far from it, so don't trust everything I wrote here 100%.

My first problem was understanding all the different containers. If you go to https://hub.docker.com/u/victronenergy, you will see the individual ones listed there (server, upnp, influxdb,grafana) but there is also the "venus-docker" (as Victron says, that is something else). Then on GitHub, Victron calls it victron-docker-grafana and the info about the individual containers is victron-docker-grafana-images. So this was my first confusion here. Basically, they are combining for 4 containers as one "install" and they are dependent on each other. The server talks to VenusOS device, than writes data to InfluxDB. Grafana reads the data from Influx database. UPNP is used for auto discovery in the Server container.

You can actually install the individual containers direct from Unraid and it should all work. Simply go to apps, and search for 'victronenergy' - it is not going to find any. Then click on "Click Here To Get More Results From DockerHub" and you should see the aforementioned containers. UPNP is optional in my opinion.
Note: On older versions of UnRaid, in order to search DocherHub, something had to be enabled in the APPS/Settings section.

Installing the containers as a stack (aka compose file/yaml file).


This is the closest thing to the Docker desktop guides that Victron provides. It will allow you to update all 3 (or 4 if you need UPNP) containers at ones and install them under single appdata folder. It also creates their own network and probably some other things I don't know about.

1) Install Compose Manager from the Apps section.
2) Go to Docker tab, below your dockers you should see Compose section. Add new stack (name it whatever you want). Then click on the gear icon to the left of the stack name. Select Edit Stack, then [edit] Compose File.

Then paste this code (mostly sorced from the docker-compose.yaml the victron provides) :

version: '3.4'
services:
    server:
        image: "victronenergy/venus-docker-server:latest"
        ports:
        - "8088:8088"
        volumes:
        - /mnt/cache/appdata/VenusGrafanaComposer/server:/config
    #upnp:
    #    image: "victronenergy/venus-docker-upnp:latest"
    #    network_mode: host
    influxdb:
        image: "influxdb:1.7"
        ports:
        - "8086:8086"
        volumes:
        - /mnt/cache/appdata/VenusGrafanaComposer/influx:/var/lib/influxdb
        environment:
        - INFLUXDB_HTTP_LOG_ENABLED=false
        - INFLUXDB_REPORTING_DISABLED=true
    graphing:
        image: "victronenergy/venus-docker-grafana:2.0.0"
        volumes:
        - /mnt/cache/appdata/VenusGrafanaComposer/grafana:/var/lib/grafana
        ports:
        - "3000:3000"
        user: "0"

*see note below about the last line*
3) Update the UnRaid path variables before the ":". For example, /mnt/cache/appdata/VenusGrafanaComposer may be /mnt/WhatEverShareYourAppdataIsAt/appdata/WhatEverNameYouLike

4)Save Changes. If you get UI Labels prompted, you can hit ok or update icons path.
5) To the right of the stack name click "Update Stack". It will open a status window and start pulling the containers from docker hub. When all done, close the window. You should see the green play icon to the right of the Stack name if they all started successfully. Individual containers should also be listed within the Docker Containers above. Check each log to see if there any errors. The venus_graphana-server might be complaining about no access to Influxdb at first (until influxdb starts)

A few notes and deviations from the original yaml file:
*The path to the left ":" sign is your Unraid actual path. In my case, that is /mnt/cache/appdata/VenusGrafanaComposer/Server. You should edit that to match your environment.
*I have opted to not install one of the containers in the stack (upnp, needed for auto discovery). You can delete the leading pound signs on lines 9 thru 11 for if you want that (not required if you know the ip address of the VenusOS device).
*I have disabled INFLUX usage reporting to their servers (line 20)
*The very last line, user: "0" was necessary for me for grafana - without it would not get permissions to create it's directories and write to them. User 0 is root, so I am a little worried if this is a potential security problem. Still researching, let me know if you find an answer/different solution.
*The composer seems to have a bug where it adds the WebUI port as a path (e.g. IPaddress/8088 instead of IPaddress:8088). Took me awhile to notice this, so it might save you time if you try the "WebUI" button under the container.
6) Go to YourUnRaidIPaddress:8088 (the server docker) and setup per Victron's guide. For me, that was just adding the IP address in the Manual tab and changing the retention period in the InfluxDB to 800d (don't miss the d).
7)Open grafana at IP:3000. Unlike the Victron's guides, my device does not show up on the Devices dashboard. Maybe because I am running VenusOS on a Pi. I thought for an hour that something didn't install right until I saw "Venus Dashboard" shows some live data (click on Devices in the top left to change to Venus Dashboard). From there on, it is a matter of customizing grafana.

Hope this helps someone.

grafanadocker
2 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

enodev avatar image enodev commented ·

Thanks for writing this @sim-1 and for providing valuable feedback. The Venus Grafana integration is being cleaned up and reorganised to hopefully make it easier to use. Please stay tuned... Martin!

The updated code if you want to poke around is here:


https://github.com/victronenergy/venus-influx-loader - to store Venus metrics into InfluxDB

https://github.com/victronenergy/venus-grafana - the Grafana setup + dashboards + instructions to use.

The documentation is not complete yet so you may find it too complex or technical. That will change soon...

1 Like 1 ·
sim-1 avatar image sim-1 enodev commented ·

Thanks. What would be really cool is a docker version of the VenusOS or worse case a VM so the Pi can be dropped all together. Any plans of that in the pipeline?

0 Likes 0 ·

Article

Contributors

Sim contributed to this article