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
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 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 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.
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 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 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 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.
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 is a simple tool. Vmstat reports information about processes, memory, paging, block IO, traps, disks, and CPU activity.
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 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.
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 provides general information about tps, total read and total write information, CPU loads of user, system. Also current CPU count
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 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 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 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 provides a simple screen about active network connections. Also, information about Transmitted packets, Received packets, Total packets can be found
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 defines itself as a bandwidth monitor and rate estimator. Bmon provides visual interface for the console. It is very eye candy application
Vnstat can provide network bandwidth usage information. Vnstat provides historical information about previous months with received, transmitted and total
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 provides information about TCP specific issues. This little tool list client and server addresses with the TCP connection state and speed information.
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 is a simple command to list and watch Arp changes in the localhost
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 is a tool provided by proftpd package. ftptop displays running status on proftpd server connections.
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.