Categories: linux

Linuxのシステムログを確認する方法:/var/log/syslogの読み方と活用術

Linuxを使っていると、動作の不具合やエラーの原因を調べたいときに「ログファイル」を確認する必要があります。中でも重要なのが「/var/log/syslog」です。このファイルにはシステム全体のさまざまなログが記録されており、トラブル対応やセキュリティチェックに役立ちます。しかし、初心者にとっては「どこを見ればいいのか」「どうやって確認すればいいのか」がわかりにくいものです。この記事では、/var/log/syslogの確認方法や読み方、実用的な使い方について詳しく解説します。Linuxをより深く理解し、効率よくトラブルシュートできる力を身につけましょう。


/var/log/syslogとは?

/var/log/syslogは、Linuxシステムで発生したさまざまなイベントを記録する重要なログファイルです。起動時のプロセス情報、サービスの挙動、カーネルのメッセージ、cronの実行結果、ネットワーク関連のエラーなど、多種多様なログが集約されています。UbuntuなどのDebian系ディストリビューションではこのファイルが広く利用されており、Red Hat系では「/var/log/messages」が似た役割を果たします。

システムのトラブルを追跡したり、セキュリティインシデントの確認、定期的な監査にも欠かせない存在です。


/var/log/syslogを確認する基本コマンド

syslogの内容を確認するためには、ターミナルでいくつかの基本コマンドを使います。

catコマンド

すべての内容を表示したいときはcatを使います。

cat /var/log/syslog

ただし、ファイルのサイズが大きいため、一度に表示されてしまい読みづらくなることがあります。

lessコマンド

スクロールしながら確認するにはlessが便利です。

less /var/log/syslog

矢印キーで上下に移動でき、qで終了できます。

tailコマンド

最新のログを確認したいときはtailを使用します。

tail /var/log/syslog

特にリアルタイムで追いかけたい場合は-fオプションを付けます。

tail -f /var/log/syslog

これでログが追加されるたびに自動で表示されるようになります。


ログの見方:行の構成と意味

syslogの各行は、基本的に以下のような構成になっています。

Apr  5 10:22:01 myserver CRON[12345]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
  • Apr 5 10:22:01:日時(ログが記録されたタイムスタンプ)
  • myserver:ホスト名
  • CRON[12345]:ログを出力したプロセス名とプロセスID
  • (root):その処理を実行したユーザー
  • CMD (cd / && run-parts…):実行されたコマンド内容やログメッセージ

この形式を知っておくと、必要な情報を素早く読み取ることができます。


特定のキーワードで絞り込みたいとき

ログの中から特定のエラーやキーワードを探すときにはgrepコマンドが活躍します。

例:cronに関するログを確認する場合

grep CRON /var/log/syslog

例:errorを含むログだけ見たい場合

grep -i error /var/log/syslog

-iオプションは大文字小文字を無視するため、ERRORやErrorも含まれます。


syslogのローテーションにも注意しよう

/var/log/syslogは定期的にローテーションされており、古いログは次のようなファイルに保存されます。

/var/log/syslog.1
/var/log/syslog.2.gz
  • .1:前回のsyslog
  • .gz:圧縮されたさらに古いログ

zcatzlessを使えば、圧縮されたログも閲覧可能です。

zless /var/log/syslog.2.gz

このようにして、過去のログを調べることもできます。


よく見るエラーメッセージと対応方法

syslogにはさまざまな種類のメッセージが記録されます。よくあるエラーメッセージの一部と、その対処法を紹介します。

NetworkManager関係のエラー

NetworkManager: <warn>  DNS failure for somehost.com

→ DNS設定やネットワークの疎通確認が必要です。pingdigで確認しましょう。

サービスの起動失敗

systemd[1]: Failed to start apache2.service

→ サービスの設定ミスや依存関係のエラーが考えられます。以下で詳細を確認:

journalctl -xe

journalctlとの違いと使い分け

最近のLinuxでは、systemdに対応したディストリビューションでjournalctlも使われるようになっています。

journalctl

このコマンドでもシステムログは確認できますが、syslogはあくまでテキストファイルで簡単に確認・コピー・保存ができる点が強みです。一方、journalctlはフィルタリングやサービスごとの表示が得意です。


セキュリティチェックにも活用できる

/var/log/syslogはセキュリティ関連のログも記録されており、不審なアクセスやサービスの異常終了などを見逃さないためにも定期的に確認しておきたいところです。

例:SSHのアクセスログを確認

grep sshd /var/log/syslog

不審なIPアドレスからの接続が頻発している場合、ファイアウォールやfail2banの設定を検討しましょう。


ログ監視の自動化もおすすめ

手動でログを確認するのは手間がかかるため、監視ツールやスクリプトで自動化するのも有効です。たとえば、ログの中に「error」があったらメールで通知するシェルスクリプトなどをcronに登録する方法があります。

grep -i error /var/log/syslog | mail -s "Syslog error alert" admin@example.com

まとめ

/var/log/syslogはLinuxにおける非常に重要なログファイルです。トラブル対応、セキュリティ対策、パフォーマンスの監視など、さまざまな場面で活用できます。基本的なコマンド(cat、less、tail、grep)を押さえておくだけでも、システムの状況を把握しやすくなります。さらに、定期的な確認や自動化を取り入れることで、より安定した運用が実現できるでしょう。Linuxを使いこなす第一歩として、ぜひsyslogの確認を習慣にしてみてください。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。