こんにちは、インフラエンジニアのryuです。
今回は、Linuxでログを確認・監視するときによく使う tail、less、journalctl の使い方を解説します。
Linuxで障害調査をしていると、
「エラーが出たけど、どのログを見ればいいのか分からない」 「ログが大量にあって、必要な行を探せない」 「リアルタイムでログを追いかけたい」
という場面がよくあります。
ログ調査で大切なのは、コマンドを丸暗記することではありません。
今あるログを読みたいのか、これから追加されるログを監視したいのか、特定の文字列だけ探したいのかによって使うコマンドを変えることです。
この記事では、tail -f、tail -F、less の検索、systemd環境で使う journalctl -f まで、初心者向けに順番に解説します。
Linuxでログを監視するには?¶
Linuxでログを確認するときによく使うのは、次の3つです。
tail:ファイル末尾や追記されたログを見るless:ログ全体を移動・検索しながら読むjournalctl:systemdのジャーナルを確認する
例えば、ファイルへ追記されるログをリアルタイムで監視したいなら、
tail -f /var/log/example.log
を使います。

一方、すでに出力された大量のログからエラーを探したいなら、
less /var/log/example.log
の方が確認しやすいことがあります。
さらに、現在のLinuxではsystemdを利用する環境も多く、サービスのログが必ずしも /var/log/ 配下のファイルだけに保存されるとは限りません。
その場合は、
journalctl
を利用します。
まずは、それぞれの違いから見ていきましょう。
tailコマンドとは?¶
tail は、ファイルの末尾を表示するコマンドです。
tail には「尾」という意味があるため、
ファイルの最後を見るコマンド
と覚えると分かりやすいです。
例えば、
tail /var/log/example.log
と実行すると、ファイルの末尾が表示されます。
何もオプションを指定しない場合、通常は最後の10行が表示されます。
表示する行数を指定する¶
最後の50行を見たい場合は、
tail -n 50 /var/log/example.log
とします。
短く、
tail -50 /var/log/example.log
と書ける環境もありますが、初心者のうちは -n を付けた方が意味を理解しやすいでしょう。
障害が発生した直後に、
「まず直近のログだけ確認したい」
という場合によく使います。
tail -f でログをリアルタイム監視する¶
ログ監視で特によく使うのが、
tail -f /var/log/example.log
です。
-f は --follow の短縮形です。
コマンドを実行すると、ファイル末尾を表示したあとも終了せず、新しい行が追加されるたびに画面へ表示されます。

例えばWebサーバーのアクセスログを見ながらブラウザからアクセスすると、
192.0.2.10 - - [04/Sep/2026:10:00:01] "GET / HTTP/1.1" 200 ...
のような新しいログが追加されていくイメージです。
監視を終了するときは、
Ctrl + C
を押します。
tail -f と tail -F の違い¶
ログ監視では、-f と -F の違いも知っておくと便利です。
tail -f /var/log/example.log
は、基本的に現在開いているファイルを追いかけます。
一方、
tail -F /var/log/example.log
は、
--follow=name --retry
に相当します。
つまり、ファイル名を追跡し、ファイルが一度なくなっても再び作成されるのを待って開き直します。
これはログローテーションがあるログを監視するときに便利です。
例えば、
app.log
↓
ローテーション
↓
app.log.1 に変更
↓
新しい app.log が作成
という運用を考えてみましょう。
tail -F app.log なら、新しく作られた app.log を再び追跡できます。
元記事では「tail -f だとローテート後の古いファイルを見てしまう」とだけ説明していましたが、正確には -f はデフォルトでファイルディスクリプタを追跡し、-F はファイル名を追跡して再オープンを試みるという違いです。
ログローテーションを考慮するなら、
tail -F /var/log/example.log
を覚えておくとよいでしょう。
複数のログを同時に監視する¶
tail では複数ファイルも指定できます。
tail -f /var/log/app.log /var/log/error.log
複数ファイルを指定すると、どのファイルから出力されたログなのか分かるようにヘッダーが表示されます。
Webアプリケーションの調査などで、
アクセスログ
+
エラーログ
を同時に確認したい場合に便利です。
lessコマンドとは?¶
less は、ファイルの内容をページ単位で確認できるコマンドです。
less /var/log/example.log
と実行します。

cat でもファイルを表示できますが、大きなログファイルを cat すると大量の行が一気に流れてしまいます。
less なら、
- 上下に移動する
- 先頭・末尾へ移動する
- 文字列を検索する
- 必要なら追記ログを監視する
といった操作ができます。
ログ調査ではかなり便利です。
lessでよく使う操作¶
less を開いたあとによく使うキーをまとめます。
| 操作 | キー |
|---|---|
| 1画面下へ | Space |
| 1画面上へ | b |
| 1行下へ | j / ↓ |
| 1行上へ | k / ↑ |
| ファイル末尾へ | G |
| ファイル先頭へ | g |
| 前方検索 | /文字列 |
| 次の検索結果 | n |
| 前の検索結果 | N |
| 終了 | q |
例えば、ERROR を探したい場合は、
/ERROR
と入力してEnterを押します。
次の ERROR へ移動する場合は、
n
です。
ログ全体を読むときは、この検索機能が特に便利です。
lessで追記ログを監視する¶
less でファイルを開いている状態で、
F
を押すと、ファイル末尾まで移動し、新しいデータが追加されるのを待つモードになります。

tail -f に近い動作です。
監視モードから通常の less 操作へ戻る場合は、
Ctrl + C
を押します。
その後、
/ERROR
のように過去ログを検索できます。
これが less の便利なところです。
リアルタイムでログを見る → 気になる行が出たら止める → 過去ログを検索する
という流れを1つのコマンド内で行えます。
tailとlessはどう使い分ける?¶
初心者のうちは、次のように考えると分かりやすいです。
今から発生するログを見たい¶
tail -f ログファイル
またはログローテーションを考慮して、
tail -F ログファイル
を使います。
すでに出ている大量のログを調べたい¶
less ログファイル
を使います。
監視しながら過去ログも検索したい¶
less ログファイル
を開き、Fで監視モードへ切り替える方法が便利です。
systemd環境ではjournalctlも覚えよう¶
ここが、2020年の元記事から大きく追加したいポイントです。
現在の多くのLinuxディストリビューションでは、systemdが使われています。
systemd環境では、サービスのログが systemd-journald に記録され、journalctl で確認できます。
例えば、
journalctl
とすると、アクセス可能なジャーナルを表示できます。
ログをリアルタイムで追う場合は、
journalctl -f
です。
-f / --follow を付けると、新しいログが追加されるたびに表示されます。
特定のサービスだけ監視する¶
例えばSSHサービスのログを見る場合は、
journalctl -u ssh.service
とします。
リアルタイム監視なら、
journalctl -f -u ssh.service
です。
環境によってサービス名は異なります。
例えばApacheなら、
journalctl -f -u apache2.service
RHEL系でhttpdなら、
journalctl -f -u httpd.service
という形です。
直近のログだけ表示する¶
直近50件だけ確認するなら、
journalctl -n 50
です。
特定サービスなら、
journalctl -u nginx.service -n 50
のように組み合わせられます。
「サービスが起動しない」というときは、
systemctl status サービス名
だけでなく、
journalctl -u サービス名
まで確認できるようになると、原因を探しやすくなります。
/var/log/syslog がない場合は?¶
元記事では、例として /var/log/syslog を使っていました。
ただし、すべてのLinuxで /var/log/syslog が存在するわけではありません。
ディストリビューションや設定によって、
/var/log/messages
/var/log/secure
/var/log/auth.log
など別のファイルを利用することがあります。
また、journaldだけで管理され、期待していたログファイルが存在しない環境もあります。
そのため、
tail -f /var/log/syslog
を実行して、
No such file or directory
と表示されたからといって、Linuxがおかしいとは限りません。
まず、
ls -l /var/log/
でログファイルを確認し、systemd環境なら journalctl も確認しましょう。
grepと組み合わせてログを絞り込む¶
大量のログから特定の文字列だけ見たい場合は、grep と組み合わせる方法もあります。
例えば、
tail -f /var/log/example.log | grep ERROR
とすると、新しく追加された行のうち ERROR を含む行を絞り込めます。
大文字・小文字を区別しないなら、
tail -f /var/log/example.log | grep -i error
です。
ただし、パイプを使ったリアルタイム出力では、コマンドやアプリケーション側のバッファリングによって表示タイミングが変わる場合があります。
まずは単純な tail -f でログが出ているか確認してから、必要に応じて絞り込むと切り分けやすいです。
関連記事:Linuxのgrepコマンドの使い方を解説!文字列検索でよく使うオプションも紹介
権限がなくてログを読めない場合¶
ログファイルを開こうとして、
Permission denied
と表示される場合があります。
その場合、ログの閲覧権限がない可能性があります。
例えば、
sudo less /var/log/example.log
や、
sudo journalctl -u ssh.service
のように管理者権限で確認するケースがあります。
ただし、何でも sudo で実行するのではなく、
ls -l /var/log/example.log
で所有者や権限を確認してみることも大切です。
ログ監視では「エラーの前後」を見る¶
初心者のうちは、
ERROR
と書かれた1行だけを見てしまいがちです。
しかし、実際の障害調査では、その前後に原因が書かれていることがあります。
例えば、
10:00:01 Connection started
10:00:02 Authentication failed
10:00:02 ERROR: login rejected
というログなら、ERROR の1行だけでなく、その直前の Authentication failed も重要です。
less で前後へ移動したり、
grep -C 3 "ERROR" example.log
のように前後数行を確認したりすると、状況を理解しやすくなります。
Linuxのログ監視は実際に触って覚える¶
ログ関連のコマンドは、説明を読むだけよりも実際に触った方が覚えやすいです。
例えば、
tail -f test.log
を1つ目のターミナルで実行し、2つ目のターミナルから、
echo "test log" >> test.log
と追記してみてください。
リアルタイムで、
test log
が表示されます。
InfraAcademyでは、Linuxコマンドをブラウザ上のターミナルで実行しながら学習できます。
「Linuxを勉強しているけど、コマンドを読むだけでなかなか覚えられない」という方は、実際に実行結果を確認しながら進めるのがおすすめです。
Linuxでログ監視する方法まとめ¶
今回は、Linuxでログを確認・監視する方法を解説しました。
まず覚えておきたいのは次の4つです。
tail -n 50 ログファイル
tail -f ログファイル
tail -F ログファイル
less ログファイル
systemd環境なら、
journalctl -f
journalctl -f -u サービス名
も非常によく使います。
使い分けは、
- 直近のログを見る →
tail - 新しいログを追う →
tail -f/tail -F - 大量のログを検索する →
less - systemdのログを見る →
journalctl
と考えると分かりやすいです。
ログ監視は、Linuxサーバーの障害調査で何度も使う基本スキルです。
コマンド名だけを覚えるのではなく、実際にログを書き込みながら「どのように表示が変わるのか」まで確認してみてください。
あわせて読みたい



