ウェブサイト検索

Linuxのパフォーマンスを監視するために必須の20のコマンドラインツール


Linux システムのパフォーマンスの問題を毎日監視し、デバッグするという任務を負うシステム管理者またはネットワーク管理者は、非常にやりがいのある責任です。

それには、揺るぎない献身、Linux システムに対する深い理解、そして最適なパフォーマンスと信頼性を確保するための継続的な取り組みが必要です。

IT 業界で Linux 管理者として 10 年間働いた後、システムの継続的な運用を監視し保証するという困難な作業を真に理解するようになりました。

これを考慮して、頻繁に使用されるコマンドライン監視ツールのトップ 20 の包括的なリストを作成しました。これらの貴重なツールは、すべての Linux/Unix システム管理者にとって不可欠であり、システムの健全性とパフォーマンスを効率的に監視、診断、維持できるようになります。

これらの監視ツールは、Linux のすべてのバージョンで利用でき、パフォーマンス上の問題を監視して実際の原因を見つけるのに役立ちます。ここに示すコマンドのリストは、監視シナリオに適したものを選択するのに十分です。

1. トップ – Linux プロセス監視

Linux top コマンドは、Linux のパフォーマンスを監視するために多くのシステム管理者によって頻繁に使用されるパフォーマンス監視プログラムであり、多くのLinux/Unix 系 オペレーティング システムで利用できます。

top コマンドは、実行中およびアクティブなすべてのリアルタイム プロセスを順序付きリストに表示し、定期的に更新するために使用されます。 CPU 使用率メモリ使用量スワップ メモリキャッシュ サイズバッファ サイズが表示されます。 >、プロセス PIDユーザーコマンドなど。

また、実行中のプロセスのメモリと CPU の使用率が高いことも示しています。 top コマンドは、システム管理者が監視し、必要に応じて修正措置を講じるのに非常に役立ちます。一番上のコマンドの動作を見てみましょう。

top

2. VmStat – 仮想メモリ統計

Linux の VmStat コマンドは、仮想メモリカーネル スレッドディスクシステム プロセスの統計を表示するために使用されます。 I/O ブロック割り込みCPU アクティビティなど。

Linux に VmStat をインストールする

デフォルトでは、vmstat コマンドは Linux システムでは使用できません。vmstat プログラムを含むsysstat というパッケージ (強力な監視ツール) をインストールする必要があります。

sudo yum install sysstat      [On Older CentOS/RHEL & Fedora]
sudo dnf install sysstat      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install sysstat  [On Debian/Ubuntu & Mint]
sudo pacman -S sysstat        [On Arch Linux]

vmstat コマンドの一般的な使用形式は次のとおりです。

vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0  43008 275212   1152 561208    4   16   100   105   65  113  0  1 96  3  0

3. Lsof – 開いているファイルの一覧表示

lsof コマンドは、 開いているすべてのファイルとプロセスのリストを表示するために、 多くのLinux/Unix 系システムで使用されます。含まれるオープン ファイルには、ディスク ファイルネットワーク ソケットパイプデバイスプロセスがあります。強い>。

このコマンドを使用する主な理由の 1 つは、ディスクをアンマウントできず、ファイルが使用中または開かれているというエラーが表示される場合です。このコマンドを使用すると、使用中のファイルを簡単に特定できます。

lsof コマンドの最も一般的な形式は次のとおりです。

lsof

COMMAND     PID   TID TASKCMD             USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
systemd       1                           root  cwd       DIR                8,2      224        128 /
systemd       1                           root  rtd       DIR                8,2      224        128 /
systemd       1                           root  txt       REG                8,2  1567768  134930842 /usr/lib/systemd/systemd
systemd       1                           root  mem       REG                8,2  2714928  134261052 /usr/lib64/libm-2.28.so
systemd       1                           root  mem       REG                8,2   628592  134910905 /usr/lib64/libudev.so.1.6.11
systemd       1                           root  mem       REG                8,2   969832  134261204 /usr/lib64/libsepol.so.1
systemd       1                           root  mem       REG                8,2  1805368  134275205 /usr/lib64/libunistring.so.2.1.0
systemd       1                           root  mem       REG                8,2   355456  134275293 /usr/lib64/libpcap.so.1.9.0
systemd       1                           root  mem       REG                8,2   145984  134261219 /usr/lib64/libgpg-error.so.0.24.2
systemd       1                           root  mem       REG                8,2    71528  134270542 /usr/lib64/libjson-c.so.4.0.0
systemd       1                           root  mem       REG                8,2   371736  134910992 /usr/lib64/libdevmapper.so.1.02
systemd       1                           root  mem       REG                8,2    26704  134275177 /usr/lib64/libattr.so.1.1.2448
systemd       1                           root  mem       REG                8,2  3058736  134919279 /usr/lib64/libcrypto.so.1.1.1c
...

4. Tcpdump – ネットワークパケットアナライザー

tcpdump コマンドは、最も広く使用されているコマンドラインのネットワーク パケット アナライザまたはパケット スニファプログラムの 1 つで、パケットをキャプチャまたはフィルタリングするために使用されます。 >TCP/IPパケットは、ネットワーク上の特定のインターフェイスで受信または転送されます。

また、キャプチャしたパッケージを後で分析できるようにファイルに保存するオプションも提供します。 tcpdump は、ほぼすべての主要な Linux ディストリビューションで使用できます。

tcpdump -i enp0s3

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
10:19:34.635893 IP tecmint.ssh > 192.168.0.124.45611: Flags [P.], seq 2840044824:2840045032, ack 4007244093
10:19:34.636289 IP 192.168.0.124.45611 > tecmint.ssh: Flags [.], ack 208, win 11768, options 
10:19:34.873060 IP _gateway.57682 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.873104 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.895453 IP _gateway.48953 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.895501 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.992693 IP 142.250.4.189.https > 192.168.0.124.38874: UDP, length 45
10:19:35.010127 IP 192.168.0.124.38874 > 142.250.4.189.https: UDP, length 33
10:19:35.135578 IP _gateway.39383 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.135586 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
10:19:35.155827 IP _gateway.57429 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.155835 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
...

5. Netstat – ネットワーク統計

netstat は、受信および送信ネットワークのパケット統計とインターフェイス統計を監視するためのコマンドライン ツールです。これは、すべてのシステム管理者にとって、ネットワーク パフォーマンスを監視し、ネットワーク関連の問題のトラブルシューティングを行うのに非常に便利なツールです。

netstat -a | more

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN
tcp        0      0 tecmint:domain          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:postgres      0.0.0.0:*               LISTEN
tcp        0      0 tecmint:ssh             192.168.0.124:45611     ESTABLISHED
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:postgres      [::]:*                  LISTEN
udp        0      0 0.0.0.0:mdns            0.0.0.0:*
udp        0      0 localhost:323           0.0.0.0:*
udp        0      0 tecmint:domain          0.0.0.0:*
udp        0      0 0.0.0.0:bootps          0.0.0.0:*
udp        0      0 tecmint:bootpc          _gateway:bootps         ESTABLISHED
...

現在では netstat は非推奨になり、ss コマンドが使用されるようになりましたが、ネットワーク ツールキットには netstat がまだ含まれている可能性があります。

6. Htop – Linux プロセス監視

htop は、非常に高度なインタラクティブでリアルタイムの Linux プロセス監視ツールであり、Linux の top コマンド によく似ていますが、ユーザープロセスショートカット キープロセスの垂直方向と水平方向のビューなどを管理するための使いやすいインターフェイス。

htop

htop はサードパーティ ツールであり、Linux システムには付属していないため、システム パッケージ マネージャー ツールを使用してインストールする必要があります。

htop のインストールの詳細については、記事「Linux に Htop (Linux プロセス監視) をインストールする」を参照してください。

7. Iotop – Linux ディスク I/O の監視

iotoptop コマンドhtop プログラムとよく似ていますが、 リアルタイムで監視および表示するアカウンティング機能があります。ディスク I/Oプロセス

iotop ツールは、正確なプロセスとプロセスの使用頻度の高いディスク読み取り/書き込みを見つけるのに非常に役立ちます。

Linux に Iotop をインストールする

デフォルトでは、iotop コマンドは Linux では使用できないため、次のようにインストールする必要があります。

sudo yum install iotop      [On Older CentOS/RHEL & Fedora]
sudo dnf install iotop      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install iotop  [On Debian/Ubuntu & Mint]
sudo pacman -S iotop        [On Arch Linux]

iotop コマンド形式の一般的な使用法は次のとおりです。

iotop

8. Iostat – 入出力統計

iostat は、システムの入力出力のストレージ デバイス統計を収集して表示するシンプルなツールです。このツールは、デバイスローカル ディスクNFS などのリモート ディスクなどのストレージ デバイスのパフォーマンスの問題を追跡するためによく使用されます。 >。

Linux に Iostat をインストールする

iostat コマンドを取得するには、図に示すように sysstat というパッケージをインストールする必要があります。

sudo yum install sysstat      [On Older CentOS/RHEL & Fedora]
sudo dnf install sysstat      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install sysstat  [On Debian/Ubuntu & Mint]
sudo pacman -S sysstat        [On Arch Linux]

iostat コマンドの一般的な使用形式は次のとおりです。

iostat

Linux 4.18.0-193.el8.x86_64 (tecmint)   04/05/2021      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.21    0.03    0.59    2.50    0.00   96.67

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.95        83.35        89.63    1782431    1916653

9. IPTraf – リアルタイム IP LAN モニタリング

IPTraf は、Linux 用のオープンソースのコンソールベースのリアルタイム ネットワーク (IP LAN) 監視ユーティリティです。 TCP フラグ情報、ICMP の詳細、TCP/UDP トラフィックの内訳、TCP 接続パケット、バイト数など、ネットワーク上を通過する IP トラフィック モニターなどのさまざまな情報を収集します。

また、TCP、UDP、IP、ICMP、非 IP、IP チェックサム エラー、インターフェイス アクティビティなどの一般的および詳細なインターフェイス統計に関する情報も収集します。

10. Psacct または Acct – ユーザーアクティビティの監視

psacct または acct ツールは、システム上の各ユーザーのアクティビティを監視するのに非常に役立ちます。どちらのデーモンもバックグラウンドで実行され、システム上の各ユーザーの全体的なアクティビティと、ユーザーによって消費されているリソースを注意深く監視します。

これらのツールは、システム管理者にとって、各ユーザーが何をしているか、どのコマンドを発行したか、ユーザーが使用したリソースの数、ユーザーがシステム上でアクティブになっている時間など、各ユーザーのアクティビティを追跡するのに非常に役立ちます。

11.Monit – Linux のプロセスとサービスの監視

Monit は、システム プロセス、プログラム、ファイル、ディレクトリ、アクセス許可、チェックサム、ファイル システムを自動的に監視および管理する、無料のオープンソースの Web ベースのプロセス監視ユーティリティです。

Apache、MySQL、Mail、FTP、ProFTP、Nginx、SSH などのサービスを監視します。システムのステータスは、コマンド ラインまたは独自の Web インターフェイスを使用して表示できます。

インストールと構成については、記事「Monit (Linux プロセスおよびサービス監視) プログラムのインストールとセットアップ方法」を参照してください。

12. NetHogs – プロセスごとのネットワーク帯域幅の監視

NetHogs は、システム上の各プロセス ネットワーク アクティビティを監視するオープンソースの優れた小さなプログラム (Linux のトップ コマンド に似ています) です。また、各プログラムまたはアプリケーションが使用するリアルタイムのネットワーク トラフィック帯域幅も追跡します。

nethogs

インストールと使用方法については、記事「NetHogs を使用した Linux ネットワーク帯域幅の監視」を参照してください。

13. iftop – ネットワーク帯域幅の監視

iftop は、ターミナルベースのもう 1 つの無料のオープン ソース システム監視ユーティリティで、システム上のネットワーク インターフェイスを通過するネットワーク帯域幅使用率 (ソース ホストと宛先ホスト) の頻繁に更新されるリストを表示します。

iftop は、ネットワーク使用量のコンテキストにおける「top」に似ており、「top」が CPU 使用率に関する洞察を提供するのと同様です。

iftop は、ネットワーク監視ツールの評判の高い「トップ」ファミリーに属しています。ユーザーが選択したネットワーク インターフェイスを監視するように特別に設計されており、指定された 2 つのホスト間の現在の帯域幅使用率に関するリアルタイム データをレンダリングします。

iftop

インストールと使用方法については、記事「iftop – ネットワーク帯域幅使用率の監視」を参照してください。

14. Monitorix – システムとネットワークの監視

Monitorix は、Linux/Unix サーバーで可能な限り多くのシステムおよびネットワーク リソースを実行および監視するように設計された無料の軽量ユーティリティです。

システムおよびネットワーク情報を定期的に収集し、グラフで表示するHTTP Web サーバーが組み込まれています。 システムの負荷平均と使用量メモリ割り当てディスク ドライバーの状態システム サービスネットワークを監視します。ポートメール統計 (SendmailPostfixDovecotなど)、MySQL統計など。

システム全体のパフォーマンスを監視するように設計されており、障害、ボトルネック、異常なアクティビティなどの検出に役立ちます。

インストールと使用方法については、記事「Monitorix a System and Network Monitoring Tool for Linux」を参照してください。

15. Arpwatch – イーサネットアクティビティモニター

Arpwatch は、イーサネットのアドレス解決 (MAC および IP アドレスの変更) を監視するように設計されたプログラムの一種です。 Linux ネットワーク上のネットワーク トラフィックが強力です。

イーサネット トラフィックを継続的に監視し、 ネットワーク上のタイムスタンプとともにIP アドレスとMAC アドレスのペアの変更のログを生成します。ペアリングが追加または変更されたときに、管理者に電子メールアラートを送信する機能もあります。ネットワーク上のARP スプーフィングを検出するのに非常に役立ちます。

インストールと使用法については、記事「Arpwatch to Monitor Ethernet activity」を参照してください。

16. Suricata – ネットワークセキュリティ監視

Suricata は、 向けの高性能オープンソースのネットワーク セキュリティ侵入検知予防監視システムです。 LinuxFreeBSD、 そしてWindows

これは、 非営利財団のOISF (Open Information Security Foundation) によって設計され、所有されています。

インストールと使用法については、記事「Suricata – ネットワーク侵入検知および防御システム」を参照してください。

17. VnStat PHP – ネットワーク帯域幅の監視

VnStat PHP は、「vnstat」と呼ばれる最も人気のあるネットワーキング ツールの Web ベースのフロントエンド アプリケーションです。 VnStat PHP は、ネットワーク トラフィックの使用状況をわかりやすいグラフィカル モードで監視します。

INOUT の合計ネットワーク トラフィック使用量が時間ごと日ごと月ごとに表示されます。 レポートと完全な概要レポート。

インストールと使用方法については、記事「ネットワーク帯域幅の使用状況の監視」を参照してください。

18. Nagios – ネットワーク/サーバーの監視

Nagios は、主要なオープンソースの強力な監視システムであり、ネットワーク/システム管理者がサーバー関連の問題を主要なビジネス プロセスに影響を与える前に特定して解決できるようにします。

Nagios システムを使用すると、管理者はリモートの Linux、Windows、スイッチ、ルーター、プリンターを 1 つのウィンドウで監視できます。重大な警告が表示され、ネットワーク/サーバーで問題が発生したかどうかが示され、問題が発生する前に修復プロセスを開始するのに間接的に役立ちます。

インストール、構成、使用法については、記事「リモート Linux/Windows ホストを監視するための Nagios 監視システムのインストール」を参照してください。

19. Nmon: Linux パフォーマンスの監視

Nmon (Nigel のパフォーマンス モニターの略) ツールは、CPU、メモリ、ディスク使用量、ネットワーク、トップ プロセス、NFS、カーネルなど、すべての Linux リソースを監視するために使用されます。このツールには、オンライン モードとキャプチャ モードの 2 つのモードがあります。

オンライン モードはリアルタイム監視に使用され、キャプチャ モードは後で処理するために出力を CSV 形式で保存するために使用されます。

インストールと使用方法については、記事をお読みください: Linux に Nmon (パフォーマンス監視) ツールをインストールする

20. Collectl: オールインワンのパフォーマンス監視ツール

Collectl は、もう 1 つの強力で機能が豊富なコマンドライン ベースのユーティリティで、CPU 使用率、メモリ、ネットワーク、inode、プロセス、nfs、TCP などの Linux システム リソースに関する情報を収集するために使用できます。 、ソケットなど。

インストールと使用方法については、記事を参照してください: Linux に Collectl (オールインワン パフォーマンス監視) ツールをインストールする

Linux サーバーのパフォーマンスを監視するためにどのような監視プログラムを使用しているかを知りたいと考えています。このリストに含めてほしい重要なツールが欠けている場合は、コメントでお知らせください。忘れずに共有してください。