Best Tools To Monitor Linux
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 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 popular general monitoring platform. It is a platform because it have Log and Network Analyzer applications. Nagios provides powerful monitoring engine. 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 similar product to Nagios but it provides up to date technologies because it is new comer according to Nagios. Zenoss is a platform too. 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 current system status. Data recorded from systems can be read again to show. To save system metrics record mode is enabled. Collectl provides ability to save CPU, disk, NFS, inode, interrupts,memory, socket, TCP, slabs performance metrics.
Atop is an interactive monitor to view Linux subsystem. It shows critical hardware resource from performance point of view. I lists information about CPU, memory, disk and network.
Dstat is graphical tool which have 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 gives metrics about CPU usage, memory too.
Psacct / Acct
Psacct or alternatively acct is used to monitor user activity. Psacct runs as a daemons and watch activities about users and resource usage.
Top is a top command used by Linux system administrators. It is provided by default most of the distributions. 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 have some basic graphics about CPU cores also have 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 show 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 very popular tool used to capture network traffic and provides statics about these capture. There are 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 ability to categorize protocol statistics like IP, TCP, UDP, ICMP
Iftop provides 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 process which can provide good information about.
Bmon defines itself as bandwidth monitor and rate estimator. Bmon provides visual interface for the console. It is very eye candy application
Vnstat can provides 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 an console based application. There is some visualization to show current bandwidth usage and provides information 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 gather 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 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 host name are listed.