Follow logs live
Tail a systemd unit, a Docker container, a pm2 process or any file on your server, straight from the browser — with the targets your agent already found offered in one click.
The Logs tab follows any log on a server as it is written: a systemd unit, a
Docker container, a pm2 process, or a plain file. No SSH session to open, no
tail command to remember — and the targets your agent already discovered are
one click away.
Unlock your vault first
Following a log runs a command on the machine, so it needs an unlocked vault — see Unlock your vault. Read-only viewers can't open this tab.
Follow a log
Open the Logs tab
In Servers, open a connected server and click Logs.
Pick a source
Choose systemd, Docker, pm2 or File. Each one changes what the target field expects — a unit, a container, a process or an absolute path.
Pick a target
Click one of the chips under Found on this server — these come from what the agent last reported, so you rarely have to type a name. Failed units come first: they are usually why you opened this tab. You can also type any target yourself.
Choose how far back, then follow
Backlog decides how many past lines are printed before the stream starts (100 to 1000). Click Follow — output arrives as it is produced.
What each source runs
| Source | What it follows |
|---|---|
| systemd | journalctl -f on the unit — the standard place for a service's output |
| Docker | the container's own log stream, exactly what docker logs -f shows |
| pm2 | the process's log file when pm2 reports one, its live output otherwise |
| File | any absolute path — /var/log/syslog, an app's own log, anything readable |
Why pm2 reads a file
pm2 runs a separate daemon per user and is often started outside systemd, so asking pm2 for its logs only answers for the user that owns that daemon. The log file it writes has no such ambiguity, so Servor follows the file when pm2 has reported its path — it works regardless of who started pm2.
While it streams
The stream behaves like the web terminal: it survives a brief network drop and reattaches instead of starting over. Close the panel to stop following, then pick another target.
Following a log is a read-only operation, but it is still a command on the machine — so it appears in your command history and in the audit log, like anything else Servor runs.
Who can do what
| Role | Follow logs |
|---|---|
| Owner / Admin / Member | Yes |
| Viewer | No |
Troubleshooting
- "Invalid target" — the name or path didn't pass validation. A target can't
start with a dash (it would be read as an option), and a file path must be
absolute and already normalized:
/var/log/nginx/error.log, not/var/log/../log/nginx/error.log. - A pm2 process shows nothing — pm2 hadn't reported a log path yet, so Servor fell back to asking pm2 directly, which only answers for the user owning the daemon. Update the agent, or follow the file directly with the File source.
- The stream is refused — some paths are blocked for every command Servor
runs,
/etc/shadowamong them. That guard applies here too. - Nothing arrives — the unit or container may simply be quiet. Raise the Backlog to confirm you are looking at the right target.
- Still stuck? See Troubleshooting.