ログ・監視系

【Linuxの基礎知識】ログ・監視系でよくあるトラブルと解決の入口

Linuxサーバーを安定して運用するためには、ログと監視の仕組みを理解し適切に活用することが欠かせません。

ログが肥大化してディスクを圧迫したり、監視ツールの出力を正しく読み取れなかったりすると、トラブルの早期発見が難しくなります。

ここではログ・監視系で起こりやすいトラブルと、その解決の入口を整理します。

トラブル例(ログ・監視系)

ログと監視はLinux運用に欠かせない要素ですが、仕組みやツールの使い方を誤解するとトラブルの発見や対応が遅れてしまいます。

ここでは、ログ・監視系で起こりやすいトラブルの全体像をまとめます。

ログ・監視系で実際に多くの管理者が直面するのは、ログの見方や監視コマンドの読み取りに関する問題です。

さらに、ログ肥大によるディスク圧迫や、長期的な性能変化の見落としも頻出します。

以下に、具体的なトラブル事例とその切り分けポイントを整理します。

トラブル事象原因の切り分け解決記事
リソース監視ができないツール選定や基本操作を理解していないリソース監視ツールの使い方を徹底解説!
ログの見方が分からないjournalctlの基本操作を理解していないjournalctlの具体的な使い方を初心者向けに解説
ログが肥大化して容量を圧迫logrotateの仕組みや設定を導入していないLinuxでログ肥大を防ぐlogrotateの基本と自作アプリ対応法
ハード異常を把握できないdmesgの確認不足や読み方を誤っているdmesgの読み方とハードウェアトラブル対応
ボトルネックが特定できないvmstatやiostatの指標を理解していないvmstatとiostatでボトルネックを見抜く
長期的な負荷推移が追えないsarコマンドの利用や設定不足sarコマンドでサーバー性能を長期監視する方法
リアルタイム監視ができないtop / htop の違いや操作を理解していないtop / htopの違いと使い分け|リアルタイム監視の基本
ログを他サーバーに転送できないrsyslogの転送設定が未導入または誤設定rsyslogでログを転送する方法と設定例

リソース監視ツールの使い方を徹底解説!

Linuxシステムを安定して運用するには、CPUやメモリ、ディスクI/O、ネットワークといったリソースの状態を把握し続けることが欠かせません。

top や vmstat、iostat などの監視ツールを適切に使えば、負荷の兆候を早期に発見し、障害を未然に防ぐことができます。

ただし、表示される数値や指標を正しく読み解けなければ、問題の本質を見逃してしまうこともあります。

ここでは、代表的なモニタリングツールの特徴と見方、さらに実際のトラブルシューティングでどう活用できるのかを整理しています。

日常的な監視から緊急対応まで役立つ知識をまとめており、システムの安定稼働に直結する実践的な内容となっています。

リソース監視ができない場合の対策

リソース状況を把握できないと、CPUやメモリ不足が表面化してから対応せざるを得なくなります。

[原因の切り分け]

原因確認方法解決策
監視ツールを導入していないrpm -qa | grep sysstat などで確認sysstat や top/htop/vmstat をインストール
導入済みでも基本操作を理解していないman コマンドや --help で使用方法を確認主要コマンド(sar, iostat, mpstat など)を練習
監視対象の指標が未設定プロセスやリソースの測定ポイントを見直す監視設定ファイルにCPU・メモリ・I/Oなどの対象を追加
ログ収集が無効sar -u を実行し統計が出力されるか確認sysstat サービスを有効化し systemctl enable/start で稼働させる
権限不足で監視できない特定の監視コマンド実行時にエラーが出るか確認必要に応じて sudo 権限で実行または権限調整

もっと詳しく

journalctlの具体的な使い方を初心者向けに解説

Linuxでサーバーを運用していると、必要なログが見つからず困る場面は避けられません。

systemd 環境では従来の /var/log/messages だけでは不十分で、そこで役立つのが journalctl です。

サービスの起動やエラー、システム全体の状態まで一括で参照でき、時系列や条件を指定して効率的に絞り込むことができます。

初心者にとっても扱いやすいコマンドでありながら、実務では障害調査や運用監視に欠かせない強力な機能を備えています。

ここでは journalctl の基本的な操作方法から、現場で活用できる実践的な使い方までを整理し、ログ管理を一段とわかりやすくするための知識をまとめています。

ログの見方が分からない場合の対策

[原因の切り分け]

原因確認方法解決策
journalctl の基本操作を知らないjournalctl -xe で直近のログを確認公式ドキュメントや man journalctl を確認し基本操作を習得
期間指定やフィルタリングを理解していない--since, --until, -u オプションを試すよく使う条件付きオプションを組み合わせて検索に慣れる
systemd と従来ログの違いを把握していない/var/log/messages と併せて比較systemd 環境では journalctl、非 systemd 環境では rsyslog を使い分ける
権限不足で読めない一般ユーザーで閲覧時にエラーになるか確認sudo journalctl を利用するか、必要に応じて権限を調整
ログローテーション後に対象が見つからない/var/log/ 配下のファイル数や更新日時を確認logrotate 設定を見直し、保存期間や世代数を適切に調整

もっと詳しく

Linuxでログ肥大を防ぐlogrotateの基本と自作アプリ対応法

Linuxで稼働するシステムやアプリケーションでは、ログが増え続けることでディスクを圧迫したり、解析やバックアップに時間がかかるといった問題が起こります。

こうしたトラブルを未然に防ぐ仕組みが logrotate です。定期的にログを分割・圧縮・削除することで、必要な情報を残しながら容量を効率的に管理できます。

標準のシステムログだけでなく、自作アプリケーションのログにも対応させることが可能で、適切に設定すれば長期運用でも安定した環境を維持できます。

ここでは logrotate の基本動作や設定の考え方に加え、実際に自作アプリへ適用する際の実践的なポイントを整理しています。

ログが肥大化してディスクを圧迫する場合の対策

[原因の切り分け]

原因確認方法解決策
logrotate 未導入rpm -qa | grep logrotate で確認パッケージマネージャで logrotate をインストール
対象ファイル設定が不足/etc/logrotate.d/ の有無を確認必要なログファイルを対象に設定を追加
古いログが圧縮・削除されていない/var/log/ の容量推移を確認logrotate の設定で世代数や圧縮オプションを調整
サービス再起動で設定が反映されていないsystemctl status logrotate で稼働状況を確認定期的に logrotate を cron で実行させる
アプリ独自ログが対象外アプリケーション設定で出力先を確認独自ログも logrotate の設定に追加

もっと詳しく

dmesgの読み方とハードウェアトラブル対応

Linuxサーバーを運用していると、ディスクが認識されない、USB機器が動作しない、ネットワークカードが応答しないといったハードウェアトラブルに直面することがあります。

そんなとき一次診断の手掛かりとなるのが dmesg です。

カーネルが出力するメッセージを確認でき、起動時に認識されたハードウェアやドライバの読み込み状況、エラー内容までを把握できます。

システム管理者にとっては欠かせないツールですが、出力は膨大で英語メッセージも多く、初心者にとって読み解くのは容易ではありません。

ここでは dmesg の役割や基本的な読み方を整理し、実際のハードウェア障害を切り分けるためにどのように活用できるのかをまとめています。

ハード異常を把握できない場合の対策

[原因の切り分け]

原因確認方法解決策
dmesg を確認していないdmesg | grep -i error で異常を調査定期的に dmesg を確認し自動通知の仕組みを導入
メッセージを誤解しているログの内容をドキュメントと照合公式ドキュメントやエラーメッセージ集を参照して正しく解釈
警告を見逃している定期的に dmesg を確認する仕組みを構築監視ツールと連携し、警告発生時に通知されるよう設定
ハード障害とソフト不具合の切り分けができていないsmartctl -a /dev/sdX でディスク状態を確認SMART情報やメモリテストツールを利用して物理故障を判定
ログが上書きされて過去の異常を確認できないjournalctl --since "1 day ago" で履歴確認ログを外部ストレージや集中管理サーバーに保存

もっと詳しく

vmstatとiostatでボトルネックを見抜く

Linuxサーバーが遅いと感じたとき、原因がCPUの処理能力にあるのか、メモリ不足なのか、あるいはディスクI/Oの遅延なのかを見極める必要があります。

vmstatはCPUやメモリ、プロセスの状態を数値化して表示し、iostatはCPUとストレージI/Oの状況を把握するのに適しています。

両者を組み合わせることで、システム全体の負荷分布を効率よく把握でき、どこにボトルネックがあるのかを明確にできます。

サーバーの性能低下を的確に切り分けるために欠かせないツール群として、基本的な見方から実際の利用シーンまで整理しています。

ボトルネックが特定できない場合の対策

[原因の切り分け]

原因確認方法解決策
vmstat の指標を理解していないvmstat 1 で CPU / wait を確認CPU待機時間・メモリスワップの意味を整理し、他コマンドと併用
iostat の分析が不足iostat -x で I/O を分析高い %util や await を基準にディスク負荷を判断し、必要に応じて分散
長期観測データ不足継続的に出力を保存して傾向を分析sar や sysstat を導入し履歴を収集、閾値を設定して監視
ネットワーク要因を除外していないiftop や sar -n DEV でトラフィックを確認帯域使用率を可視化し、他リソースと合わせて総合的に判断
複数リソースの相関を見落としているvmstat, iostat, sar を並行確認CPU・メモリ・I/O・ネットワークを突き合わせ、隠れたボトルネックを特定

もっと詳しく

sarコマンドでサーバー性能を長期監視する方法

サーバーの動作が重いとき、その原因を突き止めるには一瞬の状態を見るだけでは不十分で、時間の経過による変化を追うことが欠かせません。

sar コマンドは sysstat パッケージに含まれるツールで、CPUやメモリ、ディスクI/O、ネットワークなどのリソース利用状況を定期的に収集し、履歴として蓄積します。

これにより、過去にさかのぼって障害の発生タイミングやリソース逼迫の兆候を確認することができ、突発的な不具合の原因調査や将来の性能劣化を予測する手がかりとなります。

長期的な視点でサーバーを監視し、安定稼働を維持するために重要なコマンドのひとつです。

長期的な負荷推移が追えない場合の対策

[原因の切り分け]

原因確認方法解決策
sar 未導入rpm -qa | grep sysstat で確認パッケージマネージャで sysstat をインストール
ログ収集が有効化されていないsystemctl status sysstat で確認systemctl enable --now sysstat で常駐化
監視項目の不足sar -u, -r, -n などのオプション確認必要な指標を指定して定期収集、グラフ化ツールと連携
保存期間が短すぎるcat /etc/sysconfig/sysstat でHISTORY設定を確認保存日数を延長し、長期傾向を分析できるよう調整
データ容量不足で古いログが消えるdf -h で /var の空き容量を確認ディスク容量を確保し、ログ用パーティションを分離

もっと詳しく

top / htopの違いと使い分け|リアルタイム監視の基本

Linuxで稼働中のシステムを監視する際に定番となるのが top と htop です。

どちらもCPUやメモリ、プロセスの状況をリアルタイムに確認できるツールですが、特徴は大きく異なります。

top は標準で多くのディストリビューションに搭載されており、軽量かつ確実に動作する一方、表示はシンプルで操作は限定的です。

対して htop は色分けされた直感的な表示やカーソル操作に対応しており、プロセスの階層構造を視覚的に確認できる点が強みです。

両者を比較して理解しておくことで、状況に応じて適切に使い分けることができ、日常の監視から障害対応まで効率的に進められるようになります。

リアルタイム監視が難しい場合の対策

[原因の切り分け]

原因確認方法解決策
top の基本操作を知らないtop 実行時のキー操作を確認主要ショートカット(q, k, h, 数字キー)を習得し、必要に応じてカスタマイズ
htop を導入していないyum install htop で導入状況を確認htop を導入し、色分け表示やプロセスツリーを活用
I/O 負荷の把握不足iotop を使って I/O の状況を確認iotop を導入し、ディスク負荷の原因プロセスを特定
ネットワーク負荷の可視化不足iftop や nload で通信量を確認iftop を導入し、リアルタイムで通信状況を監視
複数サーバーの統合監視ができない監視基盤の有無を確認Prometheus や Zabbix を導入し、集中管理・可視化を実現

もっと詳しく

rsyslogでログを転送する方法と設定例

複数台のサーバーを管理していると、ログを一か所に集約できれば効率的だと感じることは多いでしょう。

障害発生時に各サーバーへログインして確認するのは手間がかかり、情報が分散していると原因の切り分けも遅れてしまいます。

そこで役立つのが rsyslog のログ転送機能です。Linuxに標準搭載されている rsyslog は、ログの収集や分類、保存に加えて、ネットワーク経由で別のサーバーへ送信する仕組みを備えています。

専用のログサーバーを構築すれば、アプリケーションやデータベースなど各サーバーのログを集中管理でき、監視や障害対応を大幅に効率化できます。

セキュリティ監査や長期的な保管、さらには分析基盤との連携にも活用できる実践的な仕組みです。

ログを他サーバーに転送できない場合の対策

[原因の切り分け]

原因確認方法解決策
rsyslog 転送設定未導入/etc/rsyslog.conf を確認転送先の設定行(*.* @@host:514 など)を追記して rsyslog を再起動
転送ルールの誤り/etc/rsyslog.d/ を確認対象ファイル・優先度の指定を修正し、正しくルールを記述
受信サーバー設定不足受信側でポート開放や保存状況を確認受信側の rsyslog.conf でモジュール imudp/imtcp を有効化し、firewalld でポートを開放
ネットワーク疎通不良ping 宛先IP / nc -z 宛先IP 514通信経路を確認し、ファイアウォールやルータでポートを開放
SELinux による制約getenforce で SELinux 状態を確認必要に応じて semanage port で rsyslog のポートを許可

もっと詳しく

よくあるエラーと解決法

ログや監視の仕組みを扱う際には、コマンド未導入や権限不足、設定ミスといったトラブルが頻発します。

ここでは、実務で遭遇しやすいエラーとその解決方法を一覧化しました。

エラー内容原因解決法
journalctl: command not foundsystemd-journald 関連パッケージが未導入

sudo dnf install systemd

Failed to get journal fieldsjournal ファイルの破損/権限不足

sudo journalctl --verify

sudo chmod 640 /var/log/journal/*

logrotate not working/etc/logrotate.conf の書式誤り、cron が無効

sudo logrotate -d /etc/logrotate.conf

systemctl status crond

dmesg: read kernel buffer failedカーネルメッセージの読み取り権限不足

sudo dmesg

journalctl -k

vmstat: command not foundsysstat パッケージが未導入

sudo dnf install sysstat

sar: Cannot open /var/log/sa/saXXsysstat サービスが無効、ログ収集が開始されていない

sudo systemctl enable --now sysstat

sar -u

rsyslog: cannot open socket転送先サーバー未稼働/firewall でブロック

telnet target-host 514

sudo firewall-cmd --list-all

次のおすすめ記事

実践環境を整える

ここまで学んだ知識を実際に試すには、Linuxを動かす環境が必要です。手軽に始めるならVPSを利用するのがおすすめです。
VPS徹底比較!ConoHa・さくら・Xserverの選び方



VPSを利用してLinux環境を準備したら、実際の設定は下記の記事が参考になります。
VPSに開発環境を自動構築する方法|Apache+Tomcat+PostgreSQL

よく読まれている記事

1

「私たちが日々利用しているスマートフォンやインターネット、そしてスーパーコンピュータやクラウドサービス――これらの多くがLinuxの力で動いていることをご存じですか? 無料で使えるだけでなく、高い柔軟 ...

2

Linux環境でよく目にする「Vim」という名前。サーバーにログインしたら突然Vimが開いてしまい、「どうやって入力するの?」「保存や終了ができない!」と困った経験をした人も多いのではないでしょうか。 ...

3

ネットワーク技術は現代のITインフラにおいて不可欠な要素となっています。しかし、ネットワークを深く理解するためには、その基本となる「プロトコル」と「レイヤ」の概念をしっかり把握することが重要です。 こ ...

4

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

5

Javaは世界中で広く使われているプログラミング言語であり、特に業務システムやWebアプリケーションの開発において欠かせない存在です。本記事では、初心者向けにJavaの基礎知識を網羅し、環境構築から基 ...

-ログ・監視系