The basic concept of server monitoring is to ensure a server or server infrastructure is functioning when it comes to high availability and good performance, operations, security and other operations related processes.

To monitor Linux server, these are the built-in tools which will help you to get the system information and its activities; you can use theses tool to find the possible causes of a performance problem.

1. top

The top is frequently used command line tool to monitor real time system performance, and it’s  pre-installed in many Unix flavor, a top is an excellent tool to monitor process threads running on the system, order process on different criteria – the most of it is   CPU, physical memory, and virtual memory.

# top

2. free

A free command shows the total amount of free and used physical and swap memory, as well the buffer and cache utilized by the kernel; free command is pre-installed in may UNIX-like operating system and frequently used.

# free –m 
# free –k

3. sar

sar stand for System Activity Report, SAR command is used to monitor system performance like CPU, Memory and I/O in real time. Using SAR, you can collect all performance data on an on-going basis to analysis and debug. Package name of SAR is “sysstat,”

You can install the package using yum or rpm or apt-get

#yum install sysstat
#rpm –ivh sysstat.rmp
#apt-get install systat

CPU Usage of Individual CPU or Core (sar -P)

# sar –u 1 3 

sar -u 1 3 display real-time CPU usage every 1 second for three times.

Memory Free and Used (sar -r)

This reports the memory statistics. “1 3” indicates for every 1 seconds a total of 3 times. Most likely you’ll focus on “kbmemfree” and “kbmemused” for free and used memory.

# sar –r 1 3 

Swap Space Used (sar -S)

This reports the swap statistics. “1 3” reports for every 1 seconds a total of 3 times. If the “kbswpused” and “%swpused” are at 0, then your system is not swapping.

# sar –S 1 3

Individual Block Device I/O Activities (sar -d)

To identify the activities by the individual block devices (i.e., a specific mount point, or LUN, or partition), use “sar -d”

# sar –d 1 1 

4. netstat

netstat – Network statistics is a command-line tool to monitor network connection in Unix-like operating system, this tool mostly used for interface statistics, troubleshooting network performance and measurement, netstat is also called network service debugging tool. 

For admin, this tool is very useful to check ports are open and whether any application is running on that port.

  • Listing all ports (both TCP and UDP) using option netstat -a.

  • Listing only UDP (User Datagram Protocol ) port connections using netstat -au

  • Listing all active UNIX listening ports using netstat -lx

5. iptraf

The iptraf is a command line tool to monitor IP LAN in colorful text on Terminal; It is used to generate various network statistics which includes  TCP, UDP, and ICMP information. You can also check NIC load info, node stats, IP checksum error and may other option to debug the network related issues.

Below  are the options you can use to monitor network statistics

  • IP traffic monitor
  • general interface statistics
  • Detailed interface statistics
  • statistical breakdowns
  • LAN Station monitor  

6. GNOME System Monitoring

GNOME System monitoring tool allows you to monitor basic system information and system process, usage of system resource.  Following things you can track using this tool

  • CPU usage
  • Memory and Swap usage
  • process and speed
  • network usage
  • file system

7. Nagios

Nagios is an open source server and network monitoring tool that allows to monitors your entire IT infrastructure to ensure systems, applications, services, and business processes are functioning properly. In the event of a failure, Nagios can give alert to resolve the problem before late.

By using Nagios, you can:

  • Monitor network services like SMTP, POP3, HTTP, NNTP, ICMP, SNMP, FTP, SSH
  • Monitor system resources  like processor load, disk usage, system logs
  • Monitoring of any hardware like probes for temperature, alarms, etc.  
  • Monitor All application, program and services status.
  • Respond to issues at the first sign of a problem
  • Automatically fix problems when they are detected
  • Monitor your entire infrastructure and business processes
  • Remote monitoring supported through SSH or SSL encrypted tunnels.

I hope above necessary tools help you to monitor Linux server utilization for a healthy environment.