Linuxのログ管理入門!/var/logディレクトリの基本構成とトラブルシューティング
生徒
「Linuxの勉強を始めたのですが、システムが故障したときやエラーが起きたとき、どこを調べればいいのか分かりません……。」
先生
「それは不安ですよね。Linuxには『ログ』という、システムの活動記録を保存する仕組みがあります。まずは『/var/log』という場所を覗いてみましょう。」
生徒
「ログ……記録のことですね!でも、中にはたくさんのファイルがあって、どれを見ればいいのか迷いそうです。」
先生
「最初は誰でもそうですよ。どのファイルに何が書かれているか、その基本構成を一つずつ丁寧に解説していきますね。これを覚えればトラブル解決の第一歩になります!」
1. ログ(Log)とは何か?初心者のためのイメージ解説
Linuxにおける「ログ(Log)」とは、コンピューターの中で起こった出来事を時系列に記録した「航海日誌」や「日記」のようなものです。パソコンの中でプログラムが動いた、誰かがログインした、あるいはエラーが発生して処理が止まった、といった全ての情報がこのログに書き込まれます。
プログラミング未経験の方にとって、ログは難しく感じるかもしれません。しかし、例えば銀行の通帳をイメージしてみてください。「いつ、誰が、いくら出し入れしたか」が記録されているからこそ、計算が合わないときに原因を突き止められますよね。Linuxのログもそれと同じで、「いつ、何が原因で不具合が起きたのか」を特定するための最も重要な手がかりになります。
2. /var/logディレクトリの役割と場所
Linuxでは、大切なログファイルが保存される場所が決まっています。それが「/var/log(バー・ログ)」というディレクトリ(フォルダのこと)です。Linuxの仕組みでは、役割ごとにファイルを置く場所が整理されており、「var」は「variable(可変)」の略で、時間とともに内容が増えたり変わったりするデータを置く場所を指します。
この場所を確認するには、ls(リスト)というコマンドを使います。まずは、どのようなファイルが入っているのか、魔法の合言葉だと思って入力してみましょう。
ls /var/log
alternatives.log auth.log btmp dist-upgrade dpkg.log journal lastlog syslog wtmp
このように、ずらりとファイル名が表示されます。これらがLinuxの健康状態を記録しているファイルたちです。
3. 最も重要なログファイル「syslog」を読もう
数あるログファイルの中で、初心者がまず覚えるべきなのが「syslog(シスログ)」です。これは、システム全体の一般的なメッセージやエラー情報が記録される「メインの日記帳」です。何か困ったことがあれば、まずはこのファイルを確認するのが鉄則です。
ログファイルはテキスト形式(文字だけ)で保存されています。内容を確認するには、lessコマンドを使うと便利です。lessは長い文章をスクロールしながら読むための道具です。読み終わったらキーボードの「q」を押すと元の画面に戻れます。
less /var/log/syslog
Jan 9 10:00:01 my-computer systemd[1]: Starting Daily apt upgrade...
Jan 9 10:05:22 my-computer kernel: [ 1234.56] usb 1-1: new high-speed USB device
Jan 9 10:10:45 my-computer CRON[5678]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
左側には日付と時刻が書かれており、「何時何分に何が起きたか」が一目でわかります。これがトラブルシューティングの鍵となります。
4. セキュリティに関わる「auth.log」の確認
次に大切なのが「auth.log(オース・ログ)」です。「auth」は「authentication(認証)」の略で、ユーザーのログインに関する記録が残ります。誰がログインに成功したか、あるいはパスワードを間違えて失敗したかといったセキュリティに関わる情報がここに集まります。
知らない間に誰かが自分のサーバーに入ろうとしていないか、不正アクセスを調査するときによく使われます。このファイルを見るには管理者権限(ルート権限)が必要な場合が多いため、コマンドの前にsudo(スードゥー:一時的に管理者として実行する)を付けるのが一般的です。
tail -n 5 /var/log/auth.log
Jan 9 12:00:05 localhost sshd[1234]: Accepted password for user1 from 192.168.1.10 port 54321 ssh2
Jan 9 12:05:10 localhost sshd[5678]: Failed password for invalid user admin from 10.0.0.5 port 12345 ssh2
上記のtail -n 5というコマンドは、「ファイルの最後の5行だけを表示して」という命令です。最新のログイン状況をサッと確認したいときに非常に役立ちます。
5. ログが自動で整理される「ログローテーション」の仕組み
毎日記録を書き続けていると、ログファイルはどんどん巨大になっていき、最後にはハードディスクを使い果たしてしまいます。それを防ぐための仕組みが「ログローテーション(Log Rotation)」です。
これは、古いログファイルを別名で保存して新しく作り直したり、古すぎるものを自動で削除したりする「整理整頓」の機能です。/var/logの中を見ると、syslog.1やsyslog.2.gzといった名前のファイルを見かけることがあります。これはローテーションによって「昨日のログ」「一昨日のログ」として切り分けられたものです。
「.gz」という拡張子がついているものは、データが圧縮(小さく丸められている状態)されていることを意味します。中身を見たいときは、通常のコマンドではなくzlessなどの専用コマンドを使います。
6. トラブル時に役立つログ監視「tail -f」コマンド
不具合が起きている真っ最中に、「今まさに何が起きているのか」をリアルタイムで観察したいことがあります。そんなときに最強の武器になるのが、tail -fコマンドです。このコマンドを実行すると、画面が止まったままになり、新しいログが書き込まれるたびに自動で表示が更新されます。
例えば、Webサイトが表示されない原因を調べているときに、このコマンドを実行しながらブラウザでサイトにアクセスしてみます。すると、エラーが出た瞬間に画面にその理由が表示されるのです。
tail -f /var/log/syslog
(ここで新しいログが書き込まれるのを待機する状態になります...)
Jan 9 15:30:12 my-computer systemd[1]: Started web-server.service.
この「リアルタイム監視」ができるようになると、中級者への道が開けます。作業を止めたいときは、キーボードの「Ctrl(コントロール)」キーを押しながら「c」を押してください。
7. その他の重要なログファイル一覧
Linuxには、用途に合わせて他にも様々なログファイルが存在します。代表的なものを表にまとめました。これらを知っておくだけで、どこを調べればよいかの勘が働くようになります。
| ファイル名 | 記録される内容 |
|---|---|
| dmesg | コンピューターの部品(ハードウェア)や起動時の記録。 |
| kern.log | カーネル(Linuxの心臓部)からのメッセージ。深刻なエラー。 |
| dpkg.log | ソフトのインストールやアンインストールの記録。 |
| apache2/ または nginx/ | Webサーバーの記録。ホームページへのアクセス状況など。 |
| mail.log | メールの送受信に関する記録。 |
8. ログ管理で初心者が気をつけるべきポイント
ログを扱う際に最も注意すべき点は、「勝手にログファイルを消さないこと」です。ファイルが大きくなって容量を圧迫しているからといって、初心者が手動で削除すると、ログを記録しているプログラムが「書き込み先がない!」とパニックを起こしてエラーになることがあります。
もし容量が足りなくなった場合は、削除するのではなく、前述したログローテーションの設定(logrotateコマンドなど)を見直すのが正解です。また、ログには個人情報やパスワードの断片が含まれることもあるため、中身をSNSなどにそのまま貼り付けないように注意しましょう。
まずは/var/logを眺めてみて、「いつもと違うところはないかな?」と観察する習慣をつけることが、Linuxマスターへの近道です。最初は意味がわからなくても大丈夫です。エラーという英単語(Error, Fail, Critical)を探すところから始めてみましょう。