CtrlOps
|Docs
Product Modules

Log Management: Read Linux Server Logs Without SSH

The Logs module scans your Linux server, finds every log file on it, and groups them for you - Nginx access and error logs, PM2 process logs, whatever else is running. Open one, search it, tail it live, download it, or clear it. No SSH session, no hunting for file paths, no manual tail or grep.

Checking server logs usually means the same ritual every time. SSH into the box, hunt down the right file path, then tail or grep your way through walls of text just to find one line.

The Logs tab replaces that. Connect to a server and CtrlOps scans it on its own, finds the log files, and groups them for you - Nginx access and error logs, PM2 process logs from your deployed apps, whatever else is running. Click one and read it. Search it, tail it live, download it, or clear it. When a log points at a real problem, take it to the AI Terminal and ask what the error means, or check Infrastructure Details to see whether the server was under load at the time.

What you can do in the Logs tab

  • See every log file CtrlOps finds on the server, grouped by what produced it - no digging for file paths.
  • Add a log file auto-discovery missed by pasting its path once.
  • Read any log file in a built-in viewer, without opening an SSH session.
  • Search inside a log instead of scrolling through thousands of lines by eye.
  • Pull up the last 200, 500, 1000, or 5000 lines.
  • Refresh on demand to pull in the latest lines.
  • Follow a log live and watch new lines stream in as they happen.
  • Download the whole file to your machine in one click.
  • Clear a log file to reclaim space, with a confirmation step first.

Why a Logs tab instead of ssh and tail

Doing it by handDoing it in CtrlOps
ssh user@host, then remember which server this app runs onClick the server, click the Logs tab
Remember or hunt for the path: /var/log/nginx/access.log? ~/.pm2/logs/app-out.log?Every log file is already listed and grouped for you
tail -n 200 <path>, then tail -n 500 when 200 was not enoughPick 200, 500, 1000, or 5000 from a dropdown
grep <pattern> <path> and re-run it as the pattern changesType in the search box
tail -f <path> and leave the session openClick Follow
scp user@host:<path> . to get a copyClick download
truncate -s 0 <path> and hope you got the path rightClick Clear and confirm

Open the Logs tab

Open app → Click your server → Click the Logs tab

The tab sits in the left sidebar, below SSH Management. CtrlOps starts scanning the moment you open it.

How CtrlOps finds your log files

You do not point CtrlOps at anything. It scans the server itself and fills in the Log Sources list on the left, already grouped by what produced each file:

  • Web Servers - your Nginx access and error logs.
  • Runtime & Apps - the out and error logs for every PM2 process running on the box.

Each source shows two things under its name: the file size and how long ago it was last written to - 472 KB · 45s for a log that is actively being appended to, 356 KB · 177d for one that has been quiet for half a year. That is usually enough to tell which log is worth opening.

If the list is long, use the Search log files box above it to filter by name.

The count next to the Log Sources heading is the total number of files CtrlOps found, and each group carries its own count. On a busy server this is routinely 20 or more.

Add a log file CtrlOps did not find

Auto-discovery covers the common locations. If an app writes somewhere unusual, add the path yourself.

Find the input at the bottom of the sources list

Below the log sources you will see a text input with the placeholder /var/log/app.log, and a green plus button next to it.

Paste the full path

Type or paste the absolute path to the log file, for example /var/log/myapp/worker.log.

Click the plus button

The file is added to the list and opens like any other source.

This is a one-time step. The path is saved, so the file appears alongside the auto-discovered sources every time you come back to this server.

Read a log file

Click a source in the list

The file's contents load into the viewer on the right. The header shows the friendly name, like Nginx · access.

Check the path at the bottom

The footer shows the real file path the viewer is reading, for example /var/log/nginx/access.log, along with how many lines are currently loaded.

Search inside the log

Use the Search logs... box at the top of the viewer to filter down to the lines you care about. This is the replacement for piping the file through grep.

Control how much history you see

The viewer loads the last 200 lines by default, which is enough for most "what just happened" checks.

Need more history? The line-count dropdown in the toolbar takes you up to 500, 1000, or 5000 lines.

Right next to it, the refresh button pulls in the latest lines whenever you want them, without reloading the tab.

Follow logs in real time

Click Follow and the viewer switches to Live. New lines stream in as your server writes them.

This is the one to reach for when you are reproducing a bug: start following, trigger the request, and watch the error land. You are catching it as it actually goes wrong, rather than refreshing afterwards and reading the aftermath.

Click again to stop following and go back to a static view.

Follow is the GUI equivalent of tail -f, except you do not have to keep an SSH session open to hold onto it.

Download a log file

Click the download button in the toolbar and the whole file is saved to your machine.

Worth knowing: this downloads the entire file, not just the lines currently on screen. Handy when you want to hand a log to a teammate, attach it to a bug report, or dig through it in your own editor.

Clear a log file

A log file that has been growing for months can eat real disk space. Click Clear to truncate it on the server. CtrlOps asks you to confirm first, then empties the file.

Clearing a log file is permanent. The contents are gone from the server and cannot be recovered. If there is any chance you will want them, click download first, then clear.

Tips

Sort your attention by the age shown under each source. A log that was written to 45s ago is where your problem is. One that has not moved in 177d almost certainly is not.

Deployed an app and it will not start? Its PM2 out and error logs are already in the list under Runtime & Apps. That is faster than running pm2 logs in a terminal, and the error log is usually the one you want.

Copy the error line out of a log and paste it into the AI Terminal. Explaining a stack trace and suggesting the fix is exactly what it is good at.

Troubleshooting

Frequently Asked Questions

How do I view Linux server logs without using SSH?

Open CtrlOps, click your server, and go to the Logs tab. CtrlOps scans the server, finds the log files on it, and groups them under headings like Web Servers and Runtime & Apps. Click any file to read it. There is no SSH session to open and no file path to remember.

How does CtrlOps find my log files?

When you open the Logs tab, CtrlOps scans the server on its own and pulls in the log files it finds, already grouped. Nginx access and error logs land under Web Servers, PM2 process logs under Runtime & Apps. Each source shows its file size and how long ago it was last written to, so you can tell at a glance which logs are still active.

What if CtrlOps does not find one of my log files?

Paste the full path into the input at the bottom of the log sources list, for example /var/log/app.log, and click the plus button. The file is added to the list. It is a one-time step - the path is saved and appears alongside the auto-discovered sources every time you come back.

How many lines of a log file can I see at once?

The viewer shows the last 200 lines by default. Use the line-count dropdown in the toolbar to raise that to 500, 1000, or 5000 lines.

Can I watch logs update in real time?

Yes. Click Follow and the viewer switches to Live. New lines stream in as your server writes them, so you can watch something as it is actually going wrong instead of refreshing after the fact. Click again to stop following.

Can I download a server log file to my machine?

Yes. Click the download button in the toolbar and the whole file is saved to your local machine - not just the lines currently on screen.

Does clearing a log file in CtrlOps delete it permanently?

Clear truncates the file on the server, and it cannot be undone. CtrlOps always asks you to confirm before it happens. If you want to keep the contents, download the file first, then clear it.