QNAP Collectd Influxdb Grafana Container and Dashboard
Prerequisites
- Enable SNMPv2 on your QNAP with the default Community "snmp-collectd" and Trap address "[YOURNASIP]"
- Enable SSH on your QNAP and ssh into your NAS
- Make sure your System Time is set correctly and adjusted for daylight savings
- Install the ContainerStation application to have access to docker and docker compose on your QNAP
Getting started:
ssh admin@[YOURNASIP]
- Assuming you are using Containerstation: Download git repo to your /Container share and extract it.
cd /share/Container
wget https://github.com/zottelbeyer/QNAP-collectdinfluxdbgrafana/archive/master.zip
unzip master.zip
cd QNAP-collectdinfluxdbgrafana-master
docker compose up -d
- Wait 2 minutes for influxdb to create the database and become ready
- Open your browser to [YOURNASIP]:3000/dashboards
- Login in with default credentials "user" "password"
- Open the QNAP-collectd Dashboard
- On the Dashboard select ALL (or whichever you want to monitor) in the Dropdown Menues at the top
- Select a refresh rate suiting your needs
- Wait another 2 minutes for all panels to be populated
Updating
Requires a git installation with access to the location of your cloned directory.
# Stop the Containers and remove old images.
docker compose down --rmi all
# get updates from git repo (with another machine if necessary)
git pull
# rebuild the stack
docker compose up -d --build
Modifying
- You can change the default Grafana Username/Password in the .env file
- You can modify the collectd config by editing qnap-collectd/collectd.conf.d/sample.conf
- To modify the Dashboard you will have to make a copy: Settings - Save As
A Note on Security
This repo is not yet optimized to be secure. Use at your own risk and DO NOT EXPOSE IT TO THE INTERNET!
Dashboard
The Dasboard itself can be found at https://grafana.com/grafana/dashboards/11968 or in the folder /grafana/QNAP-collectd-external.json
Troubleshooting
If your Dashboard doesn't show any data proceed in these steps:
- Restart your collectd container
# ssh into your NAS
docker restart qnap-collectd
- Check influxdb is getting data from collectd
# ssh into your NAS
docker exec -it influxdb /bin/bash
influx
> use collectd
> show series
# should return lots of entries
- Check the connection between Grafana and InfluxDB
Open your browser to http://[YOURNASIP]:3000/datasources/edit/1/
Run the built in Connection test
- Open an Issue including the results
Testing
This setup has been tested on my TS-832X with 8 Disks and a NVMe SSD Cache. Let me know if this config works for you.
Known Issues/ToDo
- [ ] Add SNMP Values for NVMe Temp
- [ ] Workaround collectd.conf not being able to use Docker ENVs?
- [ ] Secure the communication with backend network in docker compose.yml
- [ ] issues?
Sources Utilized: