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
:圧縮されたさらに古いログ
zcat
やzless
を使えば、圧縮されたログも閲覧可能です。
zless /var/log/syslog.2.gz
このようにして、過去のログを調べることもできます。
よく見るエラーメッセージと対応方法
syslogにはさまざまな種類のメッセージが記録されます。よくあるエラーメッセージの一部と、その対処法を紹介します。
NetworkManager関係のエラー
NetworkManager: <warn> DNS failure for somehost.com
→ DNS設定やネットワークの疎通確認が必要です。ping
やdig
で確認しましょう。
サービスの起動失敗
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の確認を習慣にしてみてください。