「監視ツールをちゃんと導入したいけど、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でリモート監視できる。小規模サーバーに最適
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
プロセス監視ツールを使い分けるべき理由
「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」キーを押す) # ロードアベレージが高い場合は各コアの状況を確認する
・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
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
また、システムの起動時間やユニット一覧の確認は 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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:Linuxサーバー監視の基礎|サーバー状態を見る11項目とコマンド対応表
- 前のページへ:Linuxの文字コード判定と変換コマンドまとめ|nkf・iconv・file -iと文字化け対処
- この記事の属するカテゴリ:Linuxtips・システム管理へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます