QNAP¶
At the end of this page Ferrule will be reading your QNAP: storage pools, every disk's health and temperature, fans, and the system's temperatures.
QNAP has no read-only account for its API, so Ferrule reads it over SNMPv3, with a password and encryption.
On the QNAP¶
Go to Control Panel → Network & File Services → SNMP:
- Tick Enable SNMP service, and choose SNMPv3 only.
- User
telemetry. - Authentication HMAC-SHA, with a passphrase of at least 8 characters.
- Privacy CBC-DES, with a different passphrase of at least 8 characters.
In Ferrule¶
- Click Settings ⚙ and find Add a source.
- Kind: QNAP (SNMPv3). Fill in Name (anything you'll recognise), Address and SNMPv3 user.
- Ferrule writes two lines, such as
SOURCE_1=...andSOURCE_1_SECRET=.... Click Copy. - Add both lines to your settings, and replace the placeholder in the
_SECRETline with the two passphrases:
- Open the
ferrulestack and find Environment variables. - Add or change the lines. In Advanced mode you can paste several at once.
- Click Pull and redeploy.
- Open
.envin the folder where you clonedferrule-deploy. - Add or change the lines.
- Run
docker compose up -din that folder.
Ferrule never asks for the two passphrases
It only goes into your settings. The Settings page shows whether it's set, never what it is.
- Address: the QNAP's name or IP address, without
https:// - SNMPv3 user:
telemetry - The secret is both passphrases with a colon between them:
authentication-passphrase:privacy-passphrase
How to know it worked¶
- Settings → Sources lists it, with the state polling. Right after an update it says waiting for first poll for up to a minute.
- It appears on the Storage tab.
If it doesn't work¶
The Docker host must reach the QNAP on UDP port 161. Firewalls often allow TCP and block UDP.
Is DES safe enough?
It's the only cipher QNAP offers. It's weak against a determined attacker, but much better than older SNMP, which sends everything in plain text. Keep SNMP on your management network.
I chose MD5 on the QNAP
Add auth=md5 to the end of the SOURCE_n line.