Monitoring

How do you monitor multiple Linux servers from one place?

Monitor 5, 50 or 500 Linux servers from one place: one install per server, a fleet view ranked worst-first, tags, fleet runs and one alert per cause.

In short

To monitor multiple Linux servers from one place, install the same agent on each with one command (or an Ansible role, a golden image or a Kubernetes manifest), let a fleet view rank every server worst-first by one comparable health score, group servers with tags, correlate alerts so one cause produces one notification, and run fixes across servers by tag rather than one SSH session at a time.

Why does per-server monitoring stop working at ten servers?

With two or three servers you can open each one and look. At ten, checking takes the morning; at fifty, nobody checks and you find out from a customer. Three things break: there is no single answer to "which server needs me first", every server alerts on its own so one incident becomes a flood, and a fix has to be repeated by hand on each box.

A fleet needs the opposite: one list ranked by how bad things are, one alert per cause, and one place to act on many servers at once. Everything below is about those three.

How do you add every server without configuring each one?

Pick whichever matches how the servers are created. With Opservo all four register the server into the same workspace, with no config file on the box:

  • •By hand: one command per server, generated in the dashboard with a one-time token
  • •Ansible: the opservo.opservo_agent role on Ansible Galaxy installs it across an inventory
  • •Auto Scaling groups and golden images: a fleet enrollment key in the launch template; clones of an AMI detect they are a new machine and register themselves, and instances that scale in are archived automatically
  • •Kubernetes: one kubectl apply with a read-only in-cluster agent per cluster
curl -sSL https://api.getopservo.com/install.sh | sudo env OPSERVO_API_URL=https://api.getopservo.com OPSERVO_TOKEN=<token> bash

Each agent discovers its own services, containers, virtual hosts, ports, databases and log sources, so a new server is fully monitored a minute after it boots, with nothing to describe centrally.

What does one view of the whole fleet look like?

The fleet grid shows every server with the same 0–100 health score, its security score, open critical findings and service count, sorted so the worst server is at the top. Because the score is deterministic (named rules with fixed thresholds), a 62 on one server means the same as a 62 on another, which is what makes ranking across servers honest.

Tags turn the grid into an inventory: client:acme, role:db, env:prod. Filter by tag, see the worst server in a client group, or open a fleet-wide Issues view that lists every open finding across every server, worst first, and resolve them one at a time or in bulk. A weekly plain-English fleet report names what regressed and the single most important action.

How do you keep alerts from multiplying?

  • •Correlation: when a full disk takes down MySQL and the app starts logging connection errors, you get one alert for the disk with the failed service and the log errors nested under it
  • •Throttling: the same finding does not re-page within 24 hours, and a resolved alert sends one green notice instead of silence
  • •One channel set for the workspace (Slack, email, Telegram, webhook, PagerDuty or OpsGenie) and an on-call schedule with escalation, so a critical on any server reaches whoever is on
  • •External uptime checks that keep working when a server, or its agent, is down

How do you act on many servers at once?

Fleet runs take one command, a saved runbook or a file push and run it on servers chosen by tag or by hand: preview who runs and who is skipped and why, roll out to 1, 25 or 50 percent first, stop at the first failure, and read every server’s output in one table. Runs can be scheduled, and a dry run shows the plan without touching anything. A tabbed terminal keeps several servers open side by side, and a live shell session is available per server for the cases that need vim or top.

All of it uses the same guardrails as a single server: remote actions are off per server until an owner turns them on, every command is signed, confirmed and kept in an audit log, and the agent pulls commands over its outbound connection rather than listening for them.

Which approach fits which fleet?

ApproachWorks untilWeak spot
SSH and a shell script per serverAbout 5 serversNo ranking, no alerts, every check is manual
Prometheus, node_exporter and GrafanaAs long as someone owns itWeeks of setup; dashboards, not conclusions
Ansible or a configuration tool aloneAny size, for changesTells you nothing about health between runs
Opservo2 to a few hundred serversLinux and Kubernetes only; no Windows

Monitoring many servers: what each approach gives a small team

Last updated 2026-10-20.

FAQ

Related questions

How many servers can one Opservo workspace hold?+

The Free plan covers 2 servers. Growth has no server cap at ₹999 per server per month. Agency is ₹799 per server per month with a 10-server minimum and is built for client separation.

Do I need a VPN or inbound ports to monitor servers in different clouds?+

No. Every agent connects outbound over HTTPS, so servers on AWS, Hetzner, DigitalOcean and bare metal appear in the same fleet view with no network changes.

Can I run one command on all servers at once?+

Yes, with a fleet run, on servers where remote actions are enabled. Pick them by tag, preview the plan, choose a rollout percentage, and stop on the first failure.

How do agencies keep client servers apart?+

Tags group servers by client inside one workspace, and a server belongs to exactly one workspace. Each client can have its own notification channels, status page and on-call schedule.