As a system administrator monitoring systems is very important job. Actually we can state that half of system administrating is monitoring and anticipating systems and their events. In this tutorial, we will look at Linux monitoring tools and their features. As I know there is a lot of tools to monitor and debug Linux system, network, disk, process, and applications so I have categorized them like below
- General
- Process
- Network
- Disk
- Application
General
Nagios
Nagios is a popular general monitoring platform. It is a platform because it has Log and Network Analyzer applications. Nagios provides powerful monitoring engine. The management console is web-based. It supports statics as graphs. Nagios collect monitoring metrics through agents, Syslog or similar protocols. Nagios also provides configuration wizards to automatically deploy and configure agents.

Zenoss
Zenoss is a similar product to Nagios but it provides up to date technologies because it is newcomer according to Nagios. Zenoss is a platform too. The current version of Zenoss provides Resource Manager to manage monitoring clients, Service impact to manage service-related issues, Analytics, and Core which is main part of Zenoss.

Nmon
Nmon is terminal-based monitoring tool with some good graphical screens. It is very useful for monitoring little systems. Nmon provides information about CPU utilization, disk io, network usage statistics, and related graphics.

Collectl
Collectctl collects data about the current system status. Data recorded from systems can be read again to show. To save system metrics record mode is enabled. Collectl provides the ability to save CPU, disk, NFS, inode, interrupts,memory, socket, TCP, slabs performance metrics.

Atop
Atop is an interactive monitor to view the Linux subsystem. It shows critical hardware resource from a performance point of view. I lists information about CPU, memory, disk, and network.

Dstat
Dstat is a graphical tool which has a lot of different configurations. By default information about CPU usage, disk read and write, network receive and send, memory information is printed periodically with eye-candy manner.

Monit
Monit is an easy general system monitoring tool. Monit can monitor services. Monit has the ability to monitor files, directories and file systems too. Any change can be reported. As traditionally monit can give metrics about CPU usage, memory too.

Psacct / Acct
Psacct or alternatively acct is used to monitor user activity. Psacct runs as a daemon and watches activities about users and resource usage.
Process
Top
The top is a top command used by Linux system administrators. It is provided by default most of the distributions. The top is process and memory specific monitoring tool and provides useful information about CPU usage, memory usage, top process by CPU, memory, etc. Also provides general system load information.

VmStat
Vmstat is a simple tool. Vmstat reports information about processes, memory, paging, block IO, traps, disks, and CPU activity.

Htop
Htop is another popular console-based monitoring tool. Htop has some basic graphics about CPU cores also have the ability to sort, nice, kill, search processes.

Monitorix
Monitorix is a free, open-source, lightweight system monitoring designed to monitor services and system resources. Monitorix is a script written in Perl and works as a CGI application.

Disk
Iotop
Itop is similar to the top but it shows metric from disk io point of view. Iotop provides information about total disk read, actual disk read, total disk write and actual disk write.

Iostat
Iostat provides general information about tps, total read and total write information, CPU loads of user, system. Also current CPU count

Network
Lsof
Lsof is very popular command for network-related troubleshooting. Lsof lists opened sockets by processes. These sockets can be network socket or Unix socket. Also process-related used libraries are also listed.

Tcpdump
Tcpdump is a very popular tool used to capture network traffic and provides statics about these capture. There is a different type of capture types supported by tcpdump like cap, pcap, ngcap . Tcpdump can filter while capturing. These filters can be anything related TCP, IP and Host related information like source, destination IP and port, host name, flags etc.

Netstat
Netstat is another popular tool to print network connections, routing tables, interface statics, masquerade connections etc. Especially useful for listing listening ports and established network connections.

Iptraf
Iptraf is a simple tool provides statistics about the network like total rate, incoming rate and outgoing rate. I has the ability to categorize protocol statistics like IP, TCP, UDP, ICMP

Iftop
Iftop provides a simple screen about active network connections. Also, information about Transmitted packets, Received packets, Total packets can be found

Nethogs
Nethogs is a small net top tool. Nethogs groups network traffic not according to protocol or subnet. It groups bandwidth by the process which can provide good information about.

Bmon
Bmon defines itself as a bandwidth monitor and rate estimator. Bmon provides visual interface for the console. It is very eye candy application

Vnstat
Vnstat can provide network bandwidth usage information. Vnstat provides historical information about previous months with received, transmitted and total

Nload
Nload or Network Load displays the current network usage. Nload is a console-based application. There is some visualization to show current bandwidth usage and provides information on total network usage.

Tcptrack
Tcptrack provides information about TCP specific issues. This little tool list client and server addresses with the TCP connection state and speed information.

Trafshow
Trafshow is a simple interactive program that gathers the network traffic from all libcap-capable interface to accumulate it in memory. TrafShow also listens UDP 9995 by default for Cisco Netflow to print metrics about flow.

Arpwatch
Arpwatch is a simple command to list and watch Arp changes in the localhost
Application
Apachetop
There are a lot of general monitoring apps that will monitor Apache server related metrics but apachetop provides a simple and fast way to monitor Apache related metrics like HTTP codes, requests, etc. Apachetop is console-based as we see below.

Ftptop
Ftptop is a tool provided by proftpd package. ftptop displays running status on proftpd server connections.
Mytop
Mytop is used to monitor MySql databases. Mytop provides running queries. key efficiency, load, uptime, Bps in and out. Also connected users whit their hostname are listed.
