Troubleshooting¶
Find what you're seeing below. Most problems are a setting, and Ferrule's log says which one.
Read the log first¶
The ferrule container's log says what went wrong, in plain words. It
logs only failures and changes, so a quiet log means nothing is wrong.
Containers → ferrule → Logs.
docker compose logs --tail 50 ferrule
If the container keeps restarting, the last line is the reason, for
example configuration: ADMIN_PASSWORD must be at least 12 characters.
Installing¶
| What you see | Why, and what to do |
|---|---|
Portainer: reference not found |
The Repository reference is wrong. Use refs/heads/main |
Portainer: authentication required |
Turn Authentication off. The URL is https://github.com/ferrulehq/ferrule-deploy |
The page at :8090 doesn't open |
Is the ferrule container running? Is port 8090 used by something else? Is a firewall in the way? |
| The dashboard opens instead of the setup wizard | The stack already has settings. Use Settings → Run setup again (Changing your setup) |
| Errors about container names already in use | Another Ferrule stack is on this host (Running beside another stack) |
Private beta: not watching¶
Ferrule is running, but has no license key in force, so it reads nothing. The box says why:
| It says | Do this |
|---|---|
| it needs a license key to run | Enter the key you were sent on Settings → License (Enter your license). It starts watching within a poll |
| the key has been withdrawn | Ask for a new key on the Ferrule Discord |
| not confirmed online since a date | Let the Docker host reach https://license.ferrulehq.dev. It starts again at the next check |
Ferrule won't start¶
The log's last line names the setting. The common ones:
| The log says | Do this |
|---|---|
ADMIN_PASSWORD must be at least 12 characters |
Use a longer password. The wizard makes one for you |
UNIFI_HOST is required |
Set the console's address, or UNIFI_ENABLED=false if you watch only servers and storage |
set UNIFI_API_KEY, or UNIFI_USERNAME and UNIFI_PASSWORD |
Give it at least one way to sign in to the console |
... and no SOURCE_1..SOURCE_8 or CHECKS is set, so there is nothing to watch |
With UniFi off, add at least one server or storage system, or an up-check |
SETTINGS_KEY or BACKUP_KEY arrived as N characters |
The key is damaged or cut short. It's 44 characters, or 43 without the final =. Paste the original back from ferrule.env |
LDAP: ldap:// would send passwords unencrypted |
Use ldaps://, or set LDAP_STARTTLS=true |
| Anything about a value that's wrong for no reason you can see | Does the value contain a $? Write each $ as $$ in the stack. The wizard does this for you |
Something isn't connecting¶
These show under Needs attention, and on the source's own tab.
| Message | Meaning |
|---|---|
The console refused the login / login rejected |
The UniFi account is a cloud (ui.com) account, or has MFA on. Make a local account with MFA off (UniFi Network) |
| Disk health and recorder temperatures need the local admin account | Protect has an API key but no local admin. A separate UNVR needs its own admin, not the gateway's (UniFi Protect) |
| refused the credentials (401) | Wrong token or password for that server, or the token lacks the read-only role (Connect your gear) |
| Nothing answered at that address and port | Wrong address or port, or a firewall between the Docker host and that system |
| That address doesn't resolve | A typo in the hostname, or the Docker host can't resolve it: use the IP address |
| The certificate isn't trusted | Leave certificate checking off unless the system has a real certificate |
| can't be browsed for orphaned disks / may not read licenses | vCenter's account needs Browse datastore or Global → Licenses: both read-only (vCenter) |
| it answers SNMP, but not as a PDU Ferrule reads | The PDU isn't an APC, Raritan or Eaton, or the address is another device (PDUs) |
| set user= on the slot to the phpIPAM API app's ID | phpIPAM needs the API app's ID as the user (IPAM and DCIM) |
snmp: the authentication passphrase arrived as N characters |
QNAP passphrases are at least 8 characters. A $ must be written $$, and the authentication passphrase can't contain a colon (QNAP) |
Alerts and notifications¶
| What you see | Why, and what to do |
|---|---|
| No notifications at all | Check Settings → Notifications: the channel should say it's set up. Use its Test button |
| An alert shows but didn't notify | Alerts notify only after 2 minutes (NOTIFY_DELAY), and only at the levels you chose (critical only, by default). One that clears first sends nothing |
| Alerts already true when Ferrule started never notified | By design: they weren't new. They still show on the dashboard |
| Bundled Gotify didn't start | Your Portainer may not pass COMPOSE_PROFILES on. Add it to the stack's variables by hand, with the value from ferrule.env |
| A flood of alerts during planned work | Start maintenance before the work (Alerts and notifications) |
| A port warns every night as a slow link | A computer on it probably sleeps. Click It sleeps: ignore 100 Mb/s here on the alert (Switches) |
Things that look wrong but aren't¶
- Coverage below 100% on a new install: Ferrule can only speak for the time it has been watching. A 30-day figure needs 30 days of history.
- "modem says internet: no (ignored: traffic is flowing)": the modem's own flag is often wrong. Ferrule ignores it while a WAN carries traffic.
- A reading marked stale: Ferrule couldn't reach that device on the last poll, so it shows the last good reading rather than nothing.
- Gateway SFP+ ports with no optical readings: many UniFi gateways don't report them (What your hardware won't report).
- License "Waiting for the first check-in": normal for a new key, for up to a couple of hours (Enter your license).
- Capacity says "needs N more days of history": forecasts need three weeks of daily history, and start again after a cluster or datastore changes size (Capacity planning).
- A port shows a dashed outline: it's reserved (Reserving a port).
- An add-host check line says ?: Ferrule couldn't tell, and says why; it never guesses (Adding a host).
- The probe says it's unavailable: the demarcation probe needs a setting the Docker host may not allow. Everything else carries on.
Reporting a problem¶
If something isn't covered here, or the docs were wrong, please open an issue on GitHub. Include:
- Your version. It's at the foot of every page, such as Ferrule 0.0.3.
- What you did, what you expected, and what happened.
- A diagnostic bundle, if it's about something Ferrule reads (see
below). If you can't make one, the
ferrulelog instead: the last 50 lines or so (docker compose logs --tail 50 ferrule). - A screenshot, if it's about the screen.
Making a diagnostic bundle¶
A diagnostic bundle is one file that shows what your gear sent Ferrule. It lets us fix a problem with hardware or firmware we don't have.
- Open Settings → Diagnostics. You need to be an admin, or sign-in must be off.
- Press Make a bundle. Ferrule records what your sources answer for about a minute, long enough for each one to be polled once. Leave the page open until it says Made.
- Look through the preview, then press Download and attach the file to your issue.
What's in the bundle:
- What each source answered during that minute.
- The last few hundred log lines.
- Your settings, without their secrets.
- Any value Ferrule didn't recognise.
Passwords, API keys, tokens and session cookies are always removed, whatever you choose. Ferrule never records sign-in exchanges or the headers that carry credentials.
By default the bundle is also anonymised:
- device, host and site names, MAC and IP addresses, hostnames, serial
numbers and e-mail addresses become placeholders such as
name-3,10.255.0.4andhost-1.example; - the same value gets the same placeholder throughout, so a pattern still shows.
Tick Keep real names and addresses only if the names matter to the problem.
The What Ferrule understood table above the button is worth a look
on its own. It lists every address each source was asked for and what
came back last. A row in red, such as a 404 or a time-out, is often the
whole answer.
Remove secrets first
Never paste ferrule.env, a password, a token, an API key or a license
key into an issue. The log doesn't contain secrets, but check anything
you've copied from elsewhere.