Introduction

Monitoring a Linux server is an essential skill for developers, DevOps engineers, and system administrators. Whether you're hosting a web application, database, API, or microservice, understanding server health helps identify performance issues before they impact users.

Linux provides several built-in commands that allow you to monitor CPU usage, memory consumption, disk space, network activity, and running processes.

In this article, you'll learn the most important Linux monitoring commands every developer should know.

Why Server Monitoring Matters

A server may experience:

Without monitoring:

Issue Occurs
     ↓
Users Experience Problems
     ↓
Investigation Starts

With proper monitoring:

Issue Detected Early
        ↓
Quick Resolution

This improves system reliability and uptime.

Check System Uptime

The uptime command shows how long the server has been running.

uptime

Example output:

10:30:15 up 25 days, 5:20,
load average: 0.35, 0.42, 0.50

Useful information:

Monitor CPU and Processes

The top command provides real-time system monitoring.

top

Displays:

To exit:

q

For many developers, top is the first troubleshooting command.

Use htop for Better Visualization

If installed:

htop

Benefits:

Install on Ubuntu:

sudo apt install htop

Many administrators prefer htop over top.

Check Memory Usage

View memory consumption:

free -h

Example:

Total: 8GB
Used: 4GB
Free: 3GB

The -h flag displays human-readable values.

This command helps identify memory pressure.

Check Disk Space

Monitor disk usage:

df -h

Example output:

Filesystem   Size Used Avail
/dev/sda1     50G  20G   30G

Important for:

Running out of disk space can cause service failures.

Find Large Directories

Identify storage-consuming folders.

du -sh *

Example:

2G logs
500M backups

Useful when investigating disk usage issues.

Monitor Running Processes

View all running processes:

ps aux

Search for a specific application:

ps aux | grep nginx

Common use cases:

Monitor Network Connections

Check active network connections.

ss -tuln

Shows:

Useful for debugging connectivity issues.

Check Open Ports

View listening services:

netstat -tulnp

Example:

Port 80
Port 443
Port 3306

Helps verify web servers and databases are accessible.

View System Logs

Linux logs are essential for troubleshooting.

View recent logs:

journalctl -xe

For specific services:

journalctl -u nginx

Logs often reveal the root cause of issues.

Monitor Disk I/O

Check disk activity:

iostat

Useful for:

Install if needed:

sudo apt install sysstat

Real-World Troubleshooting Example

Suppose your API becomes slow.

Investigation process:

top
 ↓
Check CPU

free -h
 ↓
Check Memory

df -h
 ↓
Check Disk

journalctl
 ↓
Check Logs

Using these commands together helps quickly identify the problem.

Best Practices

When monitoring Linux servers:

These habits help maintain healthy systems.

Conclusion

Linux provides powerful built-in tools for monitoring server health and diagnosing performance issues. Commands such as top, htop, free, df, ps, ss, and journalctl give developers valuable insight into system behavior.

Whether you're managing web applications, APIs, databases, or cloud servers, understanding these commands will help you troubleshoot problems faster and maintain reliable systems. Mastering Linux monitoring is a foundational skill for every developer working with production environments.