Grafana-Unraid-Stack

Grafana-Unraid-Stack

Docker app from testdasi's Repository

Overview

Meet Gus! He has everything you need to start monitoring Unraid in style (Grafana - Influxdb - Telegraf - Loki - Promtail). NOTE: Grafana always requires some customisation to suit each exact system. Includes both GUS demo Dashboard and Ultimate Unraid Dashboard v1.3 (UUD - https://forums.Unraid.net/topic/96895-ultimate-Unraid-dashboard-uud/). High-level instructions: (1) Decide whether you want hddtemp or S.M.A.R.T (smartmontools) and set USE_HDDTEMP variable accordingly. Hint: GUS and UUD both use S.M.A.R.T (2) Install docker with host network. (3) Go to ip:3006 to access grafana, login with admin/admin and customize away. For more detailed instructions, refer to the support thread (https://forums.Unraid.net/topic/96233-support-testdasi-repo/) or project page (https://github.com/testdasi/grafana-Unraid-stack).

Deprecated

In case it hasn't been obvious for quite some time, I have abandoned this project.

Grafana-Unraid-Stack

Meet Gus! He has everything you need to start monitoring Unraid (Grafana - Influxdb - Telegraf - Loki - Promtail). 1 docker instead of 5+!

A GUS demo dashboard (preview below) and falconexe's Ultimate UNRAID Dashboard v1.3 (UUD) are included out of the box. Preview

High-level instructions

  • Decide whether you want hddtemp or S.M.A.R.T (smartmontools) and set USE_HDDTEMP variable accordingly.
    • Hint: both GUS and UUD use S.M.A.R.T.
  • Install docker with host network
  • Go to ip:3006 to access grafana, login with admin/admin and make changes as required to fit your system.

Key features

  1. Grafana server. Include both a GUS demo dashboard and falconexe's Ultimate UNRAID Dashboard v1.3.
  2. Influxdb
  3. Telegraf with hddtemp or smartmontools (and ipmitool pre-installed)
  4. Loki + Promtail (so you can now watch your Unraid syslog in the dashboard)

Bits and bobs

  • Use port 3006 because grafana default port 3000 is rather popular among other apps
    • I highly recommend you don't change the port variables unless you know how to deal with various config files. Things are rather tightly integrated.
  • Need to run privileged=true
    • Should be run on "Host" network for max exposure to the server network metrics. You can use bridge if you don't care too much about host network reporting (but remember to map port 3006)
    • The read-only paths are required for Telegraf to report on host devices.
  • Data is separated from config so, for example, you can have the data in RAM so it gets reset after reboot.
  • The included dashboards are intentionally not editable (grafana will tell you it's not possible and provide json). There are 2 ways to save your customization:
    • Save the json file and overwrite the GUS.json / UUD.json at /config/grafana/data/dashboards/.
    • Alternatively, you can copy the json text and import (+ icon -> Import).
  • All s-tag builds after 10 March 2022 is based on Ubuntu LTS (instead of Debian Buster).
  • For more info about Ultinate UNRAID dashboard, please refer to the official thread.
    • Later versions of UUD requires more apps than I yet have time to code for unfortunately.

Usage

docker run -d \
    --name=<container name> \
    --net='host' \
    --privileged=true \
    -v <host path for config>:/config \
    -v <host path for data>:/data \
    -e USE_HDDTEMP=no \
    -e INFLUXDB_HTTP_PORT=8086 \
    -e INFLUXDB_RPC_PORT=58083 \
    -e LOKI_PORT=3100 \
    -e PROMTAIL_PORT=9086 \
    -e GRAFANA_PORT=3006 \
    -v /var/run/utmp:/var/run/utmp:ro \
    -v /var/run/docker.sock:/var/run/docker.sock:ro \
    -v /:/rootfs:ro \
    -v /run/udev:/run/udev:ro \
    -v /sys:/rootfs/sys:ro \
    -v /etc:/rootfs/etc:ro \
    -v /proc:/rootfs/proc:ro \
    -e HOST_PROC=/rootfs/proc \
    -e HOST_SYS=/rootfs/sys \
    -e HOST_ETC=/rootfs/etc \
    -e HOST_MOUNT_PREFIX=/rootfs \
    testdasi/grafana-unraid-stack:<tag>

Unraid example

docker run -d \
    --name='Grafana-Unraid-Stack' \
    --net='host' \
    --privileged=true \
    -v '/mnt/user/appdata/Grafana-Unraid-Stack/config':'/config':'rw' \
    -v '/mnt/user/appdata/Grafana-Unraid-Stack/data':'/data':'rw' \
    -e 'USE_HDDTEMP'='no' \
    -e 'INFLUXDB_HTTP_PORT'='8086' \
    -e 'INFLUXDB_RPC_PORT'='58083' \
    -e 'LOKI_PORT'='3100' \
    -e 'PROMTAIL_PORT'='9086' \
    -e 'GRAFANA_PORT'='3006' \
    -v '/':'/rootfs':'ro' \
    -v '/etc':'/rootfs/etc':'ro' \
    -v '/proc':'/rootfs/proc':'ro' \
    -v '/sys':'/rootfs/sys':'ro' \
    -v '/var/run/docker.sock':'/var/run/docker.sock':'ro' \
    -v '/var/run/utmp':'/var/run/utmp':'ro' \
    -v '/run/udev':'/run/udev':'ro' \
    -e 'HOST_ETC'='/rootfs/etc' \
    -e 'HOST_PROC'='/rootfs/proc' \
    -e 'HOST_SYS'='/rootfs/sys' \
    -e 'HOST_MOUNT_PREFIX'='/rootfs' \
    -e TZ="Europe/London" \
    -e HOST_OS="Unraid" \
    'testdasi/grafana-unraid-stack:stable-amd64'

Notes

  • I code for fun and my personal uses; hence, these niche functionalties that nobody asks for. ;)
  • If you like my work, a donation to my burger fund is very much appreciated.

Donate.

Install Grafana-Unraid-Stack on Unraid in a few clicks.

Find Grafana-Unraid-Stack in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Grafana-Unraid-Stack Review the template variables and paths Click Install

Download Statistics

2,070,508
Total Downloads
649
This Month
336
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Details

Repository
testdasi/grafana-unraid-stack:latest
Last Updated2025-02-19
First Seen2021-04-16

Runtime arguments

Web UI
http://[IP]:[PORT:3006]/
Network
host
Shell
bash
Privileged
true

Template configuration

ConfigPathrw

Container Path: /config

Target
/config
Default
/mnt/user/appdata/Grafana-Unraid-Stack/config
Value
/mnt/user/appdata/Grafana-Unraid-Stack/config
Data (db)Pathrw

Container Path: /data

Target
/data
Default
/mnt/user/appdata/Grafana-Unraid-Stack/data
Value
/mnt/user/appdata/Grafana-Unraid-Stack/data
USE_HDDTEMPVariable

Container Variable: USE_HDDTEMP

Default
yes|no
Value
no
INFLUXDB_HTTP_PORTVariable

Container Variable: INFLUXDB_HTTP_PORT

Default
8086
Value
8086
LOKI_PORTVariable

Container Variable: LOKI_PORT

Default
3100
Value
3100
PROMTAIL_PORTVariable

Container Variable: PROMTAIL_PORT

Default
9086
Value
9086
GRAFANA_PORTVariable

Container Variable: GRAFANA_PORT

Default
3006
Value
3006
Telegraf 1Pathro

Container Path: /rootfs

Target
/rootfs
Default
/
Value
/
Telegraf 2Pathro

Container Path: /rootfs/etc

Target
/rootfs/etc
Default
/etc
Value
/etc
Telegraf 3Pathro

Container Path: /rootfs/proc

Target
/rootfs/proc
Default
/proc
Value
/proc
Telegraf 4Pathro

Container Path: /rootfs/sys

Target
/rootfs/sys
Default
/sys
Value
/sys
Telegraf 5Pathro

Container Path: /var/run/docker.sock

Target
/var/run/docker.sock
Default
/var/run/docker.sock
Value
/var/run/docker.sock
Telegraf 6Pathro

Container Path: /var/run/utmp

Target
/var/run/utmp
Default
/var/run/utmp
Value
/var/run/utmp
Telegraf 7Pathro

Container Path: /run/udev

Target
/run/udev
Default
/run/udev
Value
/run/udev
HOST_ETCVariable

Container Variable: HOST_ETC

Default
/rootfs/etc
Value
/rootfs/etc
HOST_PROCVariable

Container Variable: HOST_PROC

Default
/rootfs/proc
Value
/rootfs/proc
HOST_SYSVariable

Container Variable: HOST_SYS

Default
/rootfs/sys
Value
/rootfs/sys
HOST_MOUNT_PREFIXVariable

Container Variable: HOST_MOUNT_PREFIX

Default
/rootfs
Value
/rootfs