InfraAcademy

InfraAcademy Blog

Linuxでログ監視するコマンドtailとlessの使い方解説【現役エンジニアが詳しく解説】

| #Linux #Linux初心者 #コマンド
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、インフラエンジニアのryuです。

今回は、Linuxでログを確認・監視するときによく使う taillessjournalctl の使い方を解説します。

Linuxで障害調査をしていると、

「エラーが出たけど、どのログを見ればいいのか分からない」 「ログが大量にあって、必要な行を探せない」 「リアルタイムでログを追いかけたい」

という場面がよくあります。

ログ調査で大切なのは、コマンドを丸暗記することではありません。

今あるログを読みたいのか、これから追加されるログを監視したいのか、特定の文字列だけ探したいのかによって使うコマンドを変えることです。

この記事では、tail -ftail -Fless の検索、systemd環境で使う journalctl -f まで、初心者向けに順番に解説します。

Linuxでログを監視するには?

Linuxでログを確認するときによく使うのは、次の3つです。

  • tail:ファイル末尾や追記されたログを見る
  • less:ログ全体を移動・検索しながら読む
  • journalctl:systemdのジャーナルを確認する

例えば、ファイルへ追記されるログをリアルタイムで監視したいなら、

tail -f /var/log/example.log

を使います。

tail -f /var/log/syslog

一方、すでに出力された大量のログからエラーを探したいなら、

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 の短縮形です。

コマンドを実行すると、ファイル末尾を表示したあとも終了せず、新しい行が追加されるたびに画面へ表示されます。

ログ監視tail

例えばWebサーバーのアクセスログを見ながらブラウザからアクセスすると、

192.0.2.10 - - [04/Sep/2026:10:00:01] "GET / HTTP/1.1" 200 ...

のような新しいログが追加されていくイメージです。

監視を終了するときは、

Ctrl + C

を押します。

tail -ftail -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

と実行します。

lessコマンドの実行結果

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を勉強しているけど、コマンドを読むだけでなかなか覚えられない」という方は、実際に実行結果を確認しながら進めるのがおすすめです。

InfraAcademyで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サーバーの障害調査で何度も使う基本スキルです。

コマンド名だけを覚えるのではなく、実際にログを書き込みながら「どのように表示が変わるのか」まで確認してみてください。

あわせて読みたい

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る