Linuxシステムのパフォーマンス問題を日々監視・デバッグすることは、システム管理者やネットワーク管理者にとって大変な作業です。Linuxシステム管理者としてIT分野で5年間働いてきて、システムを監視し、稼働させ続けることがいかに難しいかを実感するようになりました。このため、すべてのLinux/Unixシステム管理者に役立つ、最も頻繁に使用される18のコマンドラインツールのリストを作成しました。これらのコマンドラインツールは、様々なLinuxシステムで使用することができ、パフォーマンスの問題を監視し、原因を突き止めるために使用することができます。このコマンド・ライン・ツールのリストには十分なツールが用意されているので、監視のシナリオに該当するものを選んで使用することができます。
1.トップ-Linuxプロセスモニタ
Linux用のTopコマンドは、多くのシステム管理者がLinuxのパフォーマンスを監視するためによく使用するパフォーマンス監視プログラムであり、多くのLinuxまたはUnixライクなオペレーティングシステムに含まれています。Topコマンドは、実行中およびアクティブなすべてのリアルタイムプロセスを一定の順序で表示するために使用され、表示は定期的に更新されます。このコマンドは、CPU使用率、メモリ使用率、スワップメモリ使用率、キャッシュ使用率、バッファ使用率、プロセスPID、使用コマンドなどを表示します。また、実行中のプロセスによって使用されているメモリとCPUの使用量も表示されます。top コマンドはシステム管理者がシステムを監視し、必要なときに適切なアクションを取るのに非常に便利なコマンドです。実際に top コマンドを使ってみましょう。
Topコマンドの例については、「 LinuxでTopコマンドを使う12の例」を参照してください。
2.VmStat-仮想メモリ統計
LinuxのVmStatコマンドは、仮想メモリ、カーネル・スレッド、ディスク、システム・プロセス、I/Oブロック、割り込み、CPUアクティビティなどの統計を表示します。デフォルトでは、vmstatコマンドはLinuxシステムでは使用できません。 vmstatプログラムを含むsysstatパッケージをインストールする必要があります。コマンド・フォーマットの一般的な使用方法は次のとおりです:
[root@ithomer ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 105368 90900 257588 0 0 9 33 4 11 2 0 97 0 0
vmstatの例については、 6 Linux Vmstatコマンドの例参照してください。
3.Lsofが開いているファイルをリストアップ
lsofコマンドは、多くのLinuxやUnixライクなシステムで利用可能で、一般的に、すべてのオープン・ファイルやプロセスをリストとして表示するために使用されます。開いているファイルには、ディスクファイル、ネットワークソケット、パイプ、デバイス、プロセスが含まれます。このコマンドを使用する主な状況の1つは、ディスクをマウントできず、ファイルが使用中またはオープン中であるというエラーメッセージが表示される場合です。このコマンドを使用すると、どのファイルが使用中であるかを簡単に確認できます。このコマンドの最も一般的な書式は次のとおりです:
# lsof
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 104,2 4096 2 /
init 1 root rtd DIR 104,2 4096 2 /
init 1 root txt REG 104,2 38652 17710339 /sbin/init
init 1 root mem REG 104,2 129900 196453 /lib/ld-2.5.so
init 1 root mem REG 104,2 1693812 196454 /lib/libc-2.5.so
init 1 root mem REG 104,2 20668 196479 /lib/libdl-2.5.so
init 1 root mem REG 104,2 245376 196419 /lib/libsepol.so.1
init 1 root mem REG 104,2 93508 196431 /lib/libselinux.so.1
init 1 root 10u FIFO 0,17 953 /dev/initctl
4.Tcpdump-ネットワークパケットアナライザー
Tcpdumpは、ネットワーク上の指定されたインターフェイスで受信または送信されたTCP/IPパケットをキャプチャまたはフィルタリングするための、最も広く使われているネットワークパケットアナライザまたはパケットモニタリングプログラムの1つです。また、キャプチャしたパケットをファイルに保存して後で解析するオプションもあります。tcpdumpはほとんどすべての主要なLinuxディストリビューションで利用可能です。
# tcpdump -i eth0tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347
tcpdumpの使い方については、 LinuxでのTcpdumpコマンドの12の使用例を参照してください。
5.Netstat-ネットワークステータス統計
Netstat は、ネットワークに送受信されるパケットやネットワークインターフェースの統計情報を監視するためのコマンドラインツールです。システム管理者がネットワークのパフォーマンスを監視し、ネットワーク関連の問題を特定して解決するために使用できる、非常に便利なツールです。
# netstat -a | moreActive Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:realm-rusd *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 localhost.localdomain:ipp *:* LISTEN
tcp 0 0 localhost.localdomain:smtp *:* LISTEN
tcp 0 0 localhost.localdomain:smtp localhost.localdomain:42709 TIME_WAIT
tcp 0 0 localhost.localdomain:smtp localhost.localdomain:42710 TIME_WAIT
tcp 0 0 *:http *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:https *:* LISTEN
Netstatの使用例については、「 LinuxでNetstatコマンドを使用する20の例」を参照してください。
6. Htop - Linuxプロセス監視
Htop は非常に高度な対話的リアルタイム Linux プロセス監視ツールです。 top コマンドとよく似ていますが、ユーザーフレンドリーなプロセス管理、ショートカット、プロセスの垂直・水平表示など、より多くの機能を備えています。 Htop はサードパーティツールであり、linux システムには含まれていないため、インストールするには YUM パッケージ管理ツールを使用する必要があります。
インストールするCentOSコマンド: yum install htop , インストールの詳細については、以下をお読みください。
Htopのインストールについては、 LinuxへのHtopのインストール)をお読みください。
7.Iotop-LinuxディスクI/Oの監視
Iotop コマンドも top コマンドや Htop プログラムとよく似ていますが、リアルタイムのディスク I/O やプロセスの統計情報を監視して表示する機能があります。これは、特定のプロセスやディスクの読み取りと書き込みを大量に使用するプロセスを探すときに非常に便利です。
CentOSコマンドインストール:yum install iotop
iotopのインストールと使用方法については、 LinuxへのIotopのインストール参照してください。
8. Iostat - 入出力統計
Iostat は、システムのストレージデバイスの入出力ステータスを示す統計情報を収集するために使用されるシンプルなツールです。このツールは、アプライアンス、ローカルディスク、および NFS を使用するようなリモートディスクを含むストレージデバイスのパフォーマンスの問題を追跡するためによく使用されます。
# iostat
Linux 2.6.18-.el5 (tecmint.com) 09/13/2012
avg-cpu: %user %nice %system %iowait %steal %idle
2.60 3.65 1.04 4.29 0.00 88.42
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
cciss/c0d0 17.79 545.80 256.52 855159769 401914750
cciss/c0d0p1 0.00 0.00 0.00 5459 3518
cciss/c0d0p2 16.45 533.97 245.18 836631746 384153384
cciss/c0d0p3 0.63 5.58 3.97 8737650 6215544
cciss/c0d0p4 0.00 0.00 0.00 8 0
cciss/c0d0p5 0.63 3.79 5.03 5936778 7882528
cciss/c0d0p6 0.08 2.46 2.34 3847771 3659776
iostatの使用方法と使用例の詳細については、 6 Examples of Using iostat Command on Linuxを参照してください。
9.IPTraf - リアルタイムLAN IPモニタリング
IPTrafは、Linuxコンソール上で動作するオープンソースのリアルタイムネットワーク監視アプリケーションです。TCPタグ、ICMPの詳細、TCP/UDPトラフィックの分離、TCPコネクションパケットやバイトカウントなど、ネットワークを介したIPトラフィックの監視など、大量の情報をキャプチャします。また、TCP、UDP、IP、ICMP、非IP、IPチェックサムとエラー、インターフェイスのアクティビティなど、インターフェイスのステータスに関する一般的な情報と詳細もキャプチャします。
IPTrafツールの使用方法と詳細については、 IPTrafネットワーク監視ツールご覧ください。
10. psacct または acct - ユーザーの活動を監視します。
psacctまたはacctツールは、システム上の各ユーザーの活動を監視するために使用されます。これら2つのサービスプロセスはバックグラウンドで実行され、システム上で実行されている各ユーザのすべての活動と、これらの活動によって使用されるリソースを注意深く監視します。
システム管理者は、この2つのツールを使って、各ユーザーの行動を追跡することができます。例えば、そのユーザーが何をしているのか、どのようなコマンドを送信したのか、どれだけのリソースを使用したのか、システムにどれだけの時間滞在したのか、などです。
これらのコマンドのインストールと使用例については、psacctまたはacctを使用したユーザー活動の監視を参照してください。
11.Monit - Linux プロセスおよびサービス監視ツール
Monitは無料のオープンソースソフトウェアで、ウェブベースのプロセス監視ツールです。システムプロセス、プログラム、ファイル、フォルダ、パーミッション、トータルコード、認証コード、ファイルシステムを自動的に監視・管理します。
このソフトウェアは、Apache、MySQL、メール、FTP、ProFTP、Nginx、SSHなどのサービスを監視します。コマンドラインから、またはこのソフトウェアが提供するネットワーク経由で、システムの状態をチェックすることができます。
詳しくはMonitによるLinuxプロセスの監視をご覧ください。
12.NetHogs - 各プロセスが使用するネットワーク帯域幅を監視します。
NetHogsは、システム上の各プロセスのネットワークアクティビティを詳細に監視する、非常に小さなオープンソースプログラムです。また、各プログラムやアプリケーションが使用するリアルタイムのネットワーク帯域幅を追跡します。
NetHogs: Linux用帯域幅モニタリング
詳細については、 NetHogsを使用したLinuxでのネットワーク帯域幅の使用状況の監視を参照してください。
13.iftop-ネットワーク帯域幅の監視
iftop もオープンソースのシステムモニタリングアプリケーションで、 コンソール上で動作し、ネットワークインターフェイス上のシステム上の アプリケーションのネットワーク帯域幅使用量の一覧を表示し、定期的に更新されます。 iftop はネットワーク使用量の監視に使用され、「top」は CPU 使用量の監視に使用されます。top' 系列のツールの 1 つで、選択したインターフェイスを監視し、 2 つのホスト間の現在のネットワーク帯域幅の使用状況を表示するために使用されます。
iftop-ネットワーク帯域幅を監視します。
詳細については、iftop-ネットワーク帯域幅の使用状況の監視を参照してください。
14 Monitorix-システムとネットワークの監視
Monitorixは、もともとLinux/Unixサーバーシステム、リソースなどを実行し、監視するために設計された無料の軽量アプリケーションツールです。HTTPウェブサーバーを備えており、このサーバーはシステムとネットワークに関する情報を定期的に収集し、グラフィカルに表示します。HTTPウェブサーバーを持ち、このサーバーがシステムやネットワークに関する情報を定期的に収集し、グラフィカルに表示します。システムの平均負荷と使用量、メモリ割り当て、ディスクの健全性、システムサービス、ネットワークポート、メール統計、MySQL 統計などを監視します。システムの全体的なパフォーマンスを監視し、エラー、ボトルネック、異常なアクティビティを特定するために使用されます。
15.Arpwatch-イーサネット・アクティビティ・モニター
Arpwatch は Linux 上でイーサネットのアドレス解決を監視するために設計さ れています。Arpwatch は、イーサネットのアクティビティを一定期間継続的に監視し、 IP アドレスと MAC アドレスのペアリング変更のログを出力します。また、アドレスペアの変更を警告する電子メール通知を管理者に送信することもできます。これは、ネットワーク上のARP攻撃を検出するのに便利です。
詳しくは、 Suricata - ネットワーク侵入検知防御システムご覧ください。
16.スリカタ - ネットワークセキュリティ監視
Suricata は、Linux、FreeBSD および Windows 上で動作する、 オープンソースの高性能ネットワークセキュリティ、侵入検知および カウンターモニタリングツールです。非営利団体 OISF が開発し、著作権を所有しています。
詳しくは、 Suricata - ネットワーク侵入検知防御システムをご覧ください。
17.VnStat PHP - ネットワークトラフィックの監視
VnStat PHP は、人気のあるネットワークツール "vnstat" のウェブベースのフロントエンドレンダリングです。アップロードおよびダウンロードのトラフィックを時間、日、月単位で表示し、 サマリーレポートを出力します。
詳細については、 VnStat PHP - ネットワーク帯域幅の監視を参照してください。
18.Nagios-ネットワーク/サーバー監視
Nagiosは、ネットワーク/システム管理者が通常のビジネスに影響を与える前に問題を検出し、解決することができ、主要かつ強力なオープンソースの監視システムです。Nagiosを使用すると、管理者は、単一のウィンドウでLinux、Windows、スイッチ、ルータ、およびプリンタをリモート監視することができます。システム/サーバーが異常である場合、危険を警告し、指摘することができ、問題が発生した場合、間接的に救済措置を取ることができます。
詳細については、以下を参照してください: リモートLinux / Windowsホストを監視するNagios監視システムのインストール





