top・htop・atop・glancesでLinuxのプロセス監視を自動化する方法|ツール比較と設定例

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, システム管理 > top・htop・atop・glancesでLinuxのプロセス監視を自動化する方法|ツール比較と設定例
「サーバーが重い原因を素早く特定したいのに、topコマンドの画面が読みにくくて困っている」
「監視ツールをちゃんと導入したいけど、top/htop/atop/glancesの違いが整理できない」

そういう声は、セミナーやメルマガの読者からもよく届きます。

この記事では、Linux標準のtopコマンドから始まり、インタラクティブなhtop、過去ログが残るatop、総合ダッシュボードのglancesまで、実際の現場で使える視点でまとめて解説します。RHEL 9.4 / Ubuntu 24.04 LTS / AlmaLinux 9で動作確認済みです。

この記事のポイント

・topは標準搭載で今すぐ使える。bキーで強調表示してCPUプロセスを素早く発見できる
・htopはマウス操作対応でプロセスをツリー表示。キル操作も対話式で安全に行える
・atopは過去分まで記録するので「昨夜の負荷スパイク」を事後調査できる唯一の選択肢
・glancesはWebブラウザやREST APIでリモート監視できる。小規模サーバーに最適


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

プロセス監視ツールを使い分けるべき理由

「topだけ知っていれば十分」と思っている方も多いですが、実際の現場ではそうもいきません。

たとえば、夜中の2時にCPU使用率が100%に張り付いてアラートが上がり、朝起きて調査しようとすると、topでは今現在のプロセス状況しか見られません。当時の状態はすでに消えている。そういう場面では、過去ログを残せるatopが必要になります。

一方で、開発環境でちょっとプロセスを確認したいだけなら、topで十分です。リモートにいるチームメンバーにサーバー状況を共有したいなら、glancesのWebUI機能が便利です。

それぞれ得意分野が違います。まず全体像を整理しましょう。
ツール インストール 過去ログ リモート監視 主な用途
top 標準搭載 不可 なし リアルタイム確認(即時)
htop 要インストール 不可 なし 対話式プロセス操作・ツリー表示
atop 要インストール 可能 なし 事後ログ調査・ピーク時の原因追跡
glances 要インストール 不可 WebUI/REST API 総合ダッシュボード・リモート共有

topコマンドの基本と実務で使えるオプション

topはLinux標準搭載のプロセス監視コマンドです。追加インストール不要で、どのサーバーでもすぐに使えます。

1. 基本的な起動と画面の読み方

# topコマンドを起動する top # CPUコアごとの使用率を表示する(topを起動後に「1」キーを押す) # ロードアベレージが高い場合は各コアの状況を確認する

topを起動すると、画面上部に以下の情報が表示されます。

load average: 1分・5分・15分の平均負荷。CPUコア数を超えると過負荷
%Cpu(s): us, sy, ni, id, wa: ユーザー/カーネル/ウェイト/アイドルの割合
MiB Mem / Swap: メモリとスワップの使用状況

「wa」(iowait)が10%を超えている場合はディスクI/Oがボトルネックになっています。「id」(idle)がほぼ0ならCPUがフル稼働している状態です。

2. CPUを多く使っているプロセスを強調表示する

# topを起動した状態でキーを操作する # b ← CPU使用率が高いプロセスを太字ハイライト # P ← CPU使用率の高い順に並べる(デフォルト) # M ← メモリ使用率の高い順に並べる # T ← 累積CPU時間の高い順に並べる(常駐プロセスの発見に有効)

3. プロセスを強制終了する

# top上でkキーを押すとプロセスIDの入力を求められる k # プロセスID(PID)を入力してEnterを押す # 送るシグナルを選択(デフォルト15=SIGTERM、強制終了は9=SIGKILL)

4. バッチモードで結果をファイルに保存する

# 3回分のスナップショットをファイルに保存する top -b -n 3 > /tmp/top_snapshot.txt # cronで定期的に保存する場合の例(5分おきにスナップショット取得) # */5 * * * * /usr/bin/top -b -n 1 >> /var/log/top_cron.log

htopでインタラクティブにプロセスを操作する

htopはtopの機能拡張版です。色分け表示、マウス操作、プロセスのツリー表示など、視認性が大幅に向上しています。

1. インストール手順

# RHEL 9 / AlmaLinux 9 / Rocky Linux 9の場合 dnf install htop # Ubuntu 24.04 LTSの場合 apt install htop # インストール確認 htop --version

2. 主要な操作キー

htopを起動した状態で以下のキーが使えます。

F2(Setup): 表示カラムや色をカスタマイズ
F3(Search): プロセス名をリアルタイム検索
F4(Filter): フィルタリングして絞り込み表示
F5(Tree): 親子関係をツリー形式で表示。どのプロセスが子を多数生成しているか一目でわかる
F6(SortBy): ソートキーを選択する
F9(Kill): 選択中のプロセスにシグナルを送る

3. 実サーバーでの出力例

実際のAlmaLinux 9サーバーで `htop` を起動すると、以下のような画面が表示されます。

# 実行環境: AlmaLinux 9.4 (Emerald Puffin) / 4コア / メモリ8GB # htopの画面イメージ(バッチモード出力) 1 [|||||||||||||||||||||||||||||||||||| 89.5%] 2 [||||||||||| 32.1%] 3 [|||||||||||||||||||||||| 64.7%] 4 [||||||| 22.3%] Mem[||||||||||||||||||||||||||||||||||||| 6.84G/7.77G] Swp[ 0K/2.00G] PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 1234 tomohiro 20 0 512M 128M 32M R 89.5 1.6 2:15.32 php-fpm: worker 512 root 20 0 1.2G 256M 48M S 12.3 3.2 0:45.11 mysqld 321 nginx 20 0 48M 12M 8M S 0.0 0.2 0:01.02 nginx: worker

この出力では、php-fpmのworkerプロセスがCPU89.5%を消費していることが一目でわかります。

atopで過去のプロセス負荷を事後調査する

atopはLinux上で稼働し続け、CPUやメモリ、ディスクI/O、ネットワーク、そしてプロセスごとのリソース使用状況を一定間隔でログファイルに記録します。

「昨夜3時にサーバーが落ちそうになったが原因がわからない」という場面で最初に手が届くツールです。

1. インストールと自動記録の設定

# RHEL 9 / AlmaLinux 9の場合 dnf install atop # Ubuntu 24.04 LTSの場合 apt install atop # atopのデーモンを有効化して自動起動に設定する systemctl enable atop systemctl start atop # 起動確認 systemctl status atop

2. ログの保存場所と保持期間の設定

# ログの保存先(デフォルト) ls -la /var/log/atop/ # atop_20260514 atop_20260515 のように日付ごとにファイルが作られる # 保持期間と記録間隔の設定ファイル # RHEL系: /etc/atoprc または /etc/default/atop # Ubuntu: /etc/default/atop # デフォルトは28日間保持、10秒ごとに記録 # 設定変更例(60秒ごと・14日間保持) # INTERVAL=60 # LOGPATH=/var/log/atop/ # RETENTION=14

3. 過去ログを読み込んで調査する

# 昨日のログを読み込む atop -r /var/log/atop/atop_20260514 # 起動するとtop風の画面になる。スペースキーで次の時刻ブロックに進む # 「t」で時刻を直接指定できる(例: 03:00を指定すると夜3時の状況を確認できる) # CPUを多く使っていたプロセスをテキストで出力する atop -r /var/log/atop/atop_20260514 -P CPU 2>/dev/null | head -50

4. atopの画面の読み方

atopの対話画面では、以下のキーで表示を切り替えられます。

c: プロセスコマンドラインをフルパス表示
m: メモリ消費の多い順に並べる
d: ディスクI/Oの多い順に並べる
n: ネットワーク送受信の多い順に並べる
q: 終了

glancesでWebブラウザからリモート監視する

glancesはPython製の総合監視ツールです。CPU・メモリ・ディスク・ネットワーク・プロセスを1画面にまとめて表示するだけでなく、WebUIやREST APIでリモートからアクセスできる点が他のツールと異なります。

1. インストール手順

# pipでインストールする(OSパッケージより最新バージョンが入ることが多い) pip3 install glances # WebUI機能を使う場合は追加でBottleが必要 pip3 install glances[web] # 確認 glances --version

2. WebUIモードで起動してリモートアクセスする

# WebUIモードで起動(デフォルトポート61208) glances -w # バックグラウンドで起動する場合 nohup glances -w & # 接続確認(サーバーのIPアドレスを確認してから) # ブラウザで http://[サーバーIPアドレス]:61208 にアクセスする

3. REST APIでデータを取得する

# glancesをWebUIモードで起動中に以下のAPIが使える # CPU情報をJSON形式で取得 curl http://localhost:61208/api/3/cpu # メモリ情報を取得 curl http://localhost:61208/api/3/mem # 全プロセス一覧をJSON形式で取得 curl http://localhost:61208/api/3/processlist

4. glancesのalert機能を設定する

# 設定ファイルを作成する mkdir -p ~/.config/glances vi ~/.config/glances/glances.conf # 設定例(CPU使用率80%超でWARNING、95%超でCRITICALと表示する) [cpu] careful=50 warning=80 critical=95 [mem] careful=50 warning=80 critical=95

Prometheus連携で本格的な監視システムを構築する

単一サーバーの確認には上記ツールで十分ですが、複数台のサーバーを管理する場合は、Prometheusとnode_exporterを使った中央集権型の監視が現実的です。

1. node_exporterをインストールして起動する

# node_exporterを各監視対象サーバーにインストール # RHEL 9 / AlmaLinux 9の場合 dnf install golang-github-prometheus-node-exporter # サービスを有効化する systemctl enable node_exporter systemctl start node_exporter # 起動確認(デフォルトポート9100) curl http://localhost:9100/metrics | head -20

2. glancesからPrometheusへエクスポートする

# glancesはPrometheusのエクスポート機能を内蔵している # 設定ファイルに以下を追加する(~/.config/glances/glances.conf) [outputs] prometheus=true # ポート9091でメトリクスを公開する glances -w --enable-plugin prometheus

トラブルシュート:よくある問題と対処法

「htopコマンドが見つからない」と表示される

# エラー例 bash: htop: command not found # 対処:EPELリポジトリからインストールする(RHEL系の場合) dnf install epel-release dnf install htop

「atopのログが空になる」または「Permission denied」が出る

# atopデーモンの起動状態を確認する systemctl status atop # ログディレクトリのパーミッション確認 ls -la /var/log/atop/ # atopデーモンはrootで動く。/var/log/atop/はroot所有が正常 # デーモンが止まっていた場合は起動する systemctl start atop

「glancesのWebUIに接続できない」

# ポート61208が開いているか確認する ss -tlnp | grep 61208 # firewalldでポートを許可する firewall-cmd --add-port=61208/tcp --permanent firewall-cmd --reload # SELinuxが有効な環境では追加で許可が必要な場合がある semanage port -a -t http_port_t -p tcp 61208

プロセスのポート確認には Linux ポート確認の全コマンドも参照してください。

また、システムの起動時間やユニット一覧の確認は systemd-analyze で起動時間計測の記事が参考になります。

どのツールを使うべきか:用途別の推奨まとめ

シーン 推奨ツール 理由
今すぐ原因を調べたい(インストール不要) top -b -n 1 全ディストロに標準搭載
プロセスを操作しながら確認したい htop マウス操作・ツリー表示・絞り込み検索
昨夜の負荷スパイクを調査したい atop -r /var/log/atop/atop_日付 過去ログの再生が可能な唯一の選択肢
リモートでブラウザから確認したい glances -w WebUIとREST APIで外部共有が可能
複数台を中央で管理したい node_exporter + Prometheus スケールするとこれ一択

本記事のまとめ

Linuxのプロセス監視ツールは、それぞれ使い分けが重要です。

top:標準搭載。まず最初に確認するコマンド
htop:視認性とインタラクティブ操作が格段に向上。普段使いに最適
atop:過去ログを記録。事後調査が必要な本番サーバーには必須
glances:WebUIとREST APIでリモート監視できる。チームでの情報共有に便利

サーバー管理者として最低限やっておきたいのは、atopをインストールしてデーモンを自動起動に設定しておくことです。「あの夜に何があったか」が記録に残るだけで、トラブル対応の速度が大幅に変わります。

20年以上サーバーを運用してきた経験から言うと、監視ツールは「問題が起きてから入れる」のでは遅いです。平常時に入れておくからこそ、異常が異常として見えるようになります。

サーバー監視のコマンドを覚えても、障害対応の「型」がなければ現場では使えません

top・htop・atopを使いこなしても、何を見て何を判断するかの「型」がなければ、本番障害で立ち往生します。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。