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 の監視
iotop もtop コマンドや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 サーバーが組み込まれています。 システムの負荷平均と使用量、メモリ割り当て、ディスク ドライバーの状態、システム サービス、ネットワークを監視します。ポート、メール統計 (Sendmail、Postfix、Dovecotなど)、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 は、 向けの高性能オープンソースのネットワーク セキュリティ、侵入検知、予防監視システムです。 Linux、FreeBSD、 そしてWindows。
これは、 非営利財団のOISF (Open Information Security Foundation) によって設計され、所有されています。
インストールと使用法については、記事「Suricata – ネットワーク侵入検知および防御システム」を参照してください。
17. VnStat PHP – ネットワーク帯域幅の監視
VnStat PHP は、「vnstat」と呼ばれる最も人気のあるネットワーキング ツールの Web ベースのフロントエンド アプリケーションです。 VnStat PHP は、ネットワーク トラフィックの使用状況をわかりやすいグラフィカル モードで監視します。
IN と OUT の合計ネットワーク トラフィック使用量が時間ごと、日ごと、月ごとに表示されます。 レポートと完全な概要レポート。
インストールと使用方法については、記事「ネットワーク帯域幅の使用状況の監視」を参照してください。
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 サーバーのパフォーマンスを監視するためにどのような監視プログラムを使用しているかを知りたいと考えています。このリストに含めてほしい重要なツールが欠けている場合は、コメントでお知らせください。忘れずに共有してください。