Unixシステムでログをチェックする方法

ページ名:Unixシステムでログをチェックする方法

このWikiHowでは、一般的なUnixオペレーティングシステムで最も重要なログの場所を教えます。LinuxのすべてのバージョンとFreeBSDのデフォルトのログの場所は/var/logですが、実際のログの名前はシステムによって異なります。Solarisを使用している場合、ログは/var/admにあります。ほとんどのログはフラットなテキストファイルで、cat、more、tail、またはテキストエディタで開いて見ることができます。しかし、dmesg(カーネルのリングバッファ情報を含む)やlastlog(ユーザーのログイン情報を示す)のようなログは、特定のコマンドを実行することで見ることができます。

知っておくべきこと

  • シェルプロンプトを開き、/var/logに移動してログを見つけます。
  • 認証、スタートアップメッセージ、バックグラウンドサービスなどの一般的なログについて学んでください。
  • ログの詳細情報を得るために使えるコマンドがいくつかあります。例えば、「cat」コマンドを使ってログの内容全体を見ることができます。
方法1

ログの検索

  1. Ctrl+Alt+Tを押す。シェルのプロンプトが開きます。
  2. cd /var/log と入力し、↵ Enterキーを押します。Linuxのログ・ファイルの場所である/var/logに移動します。
    • Solarisを使用している場合、ログは/var/admにあります。
  3. ls -a と入力して ↵ Enter キーを押します。ディレクトリ内の全ファイルのリストが表示されます。
  4. 一般的なログを学ぶ。ログは、実行しているLinuxのバージョンや使用しているソフトウェアやサービスなど、さまざまな要因によって異なります。以下は、最も一般的なログファイルの概要です(Solarisを使用している場合は、/var/logを/var/admに置き換えるだけです):
    • /var/log/auth.log:/var/log/auth.log: Debian/Ubuntu LinuxとFreeBSDの認証ログ(成功したものも失敗したものも)。
      • Solarisユーザーは/var/adm/authlogを使う。
    • /var/log/boot.log:起動メッセージとブート情報。
    • /var/log/cron:ほとんどのUnixバージョンのcron関連のすべてのメッセージ。
      • Solarisを使用している場合、cronログは/var/cron/logにあります。
    • /var/log/daemon.log:バックグラウンド・サービスを実行しています。
    • /var/log/dmesg:デバイス・ドライバー・メッセージ。このログを見るには、dmesgコマンドを使う必要がある。
    • /var/log/faillog:失敗したログインのみ。
    • /var/log/httpdまたは/var/log/apache2:Apacheウェブサーバーのログ。
    • /var/log/maillogまたはvar/log/mail.log:メールサーバー情報。
    • /var/log/lastlog:全ユーザーの最終ログインを表示。このログを見るには、lastlogコマンドを使う必要がある。
    • /var/log/messages:SolarisとFreeBSD、およびLinuxのFedora、RedHat、CentOSの一般的なシステムメッセージ:
    • /var/log/secure:RedHat/CentOS用の認証ログ(成功した試行と失敗した試行)。
    • /var/log/syslog:Ubuntu Linux、Linux Mint、Debian Linuxベースのシステムの一般的なシステムメッセージ。 Solarisを使っている場合は、ここにメール関連のメッセージがある。
    • /var/log/utmp:各ユーザーの現在のログイン状態。
    • /var/log/wtmp:ユーザーのログインとログアウトの時間。
方法2

ログの表示

  1. ログのすべての内容を見るには、catコマンドを使います。ログがフラットなテキストファイルである限り、cat lognameを実行してログ全体を見ることができます。
    • まだroot権限を持っていない場合は、各コマンドの前にsudoを使ってください。
  2. ログの内容を画面ごとに見るには、moreを使う。これらのログの多くはサイズが大きいので、catを使うのはイライラするかもしれない。画面ごとにログを見たい場合は、more lognameを使うと画面ごとにログを見ることができる。
    • Enterキーで1行ずつスクロールするか、スペースキーで1画面ずつスクロールする。
    • 戻るにはbを、プロンプトに戻るにはqを押す。
  3. ログをリアルタイムで表示するには、tail -fを使う。これは、新しい項目が書き込まれると常に更新されるログのライブバージョンを表示します。例えば、Apacheに問題がある場合、tail -f /var/log/httpdを実行し、トラブルシューティングの間、ターミナルウィンドウで開いておくと役に立つかもしれない。
    • ログの最後を見たいだけで、リアルタイムで更新されているかどうかは気にしない場合は、tail -20 /var/log/httpdを実行して、最後の20行を表示する。20 "は、下から何行目であってもかまいません。
    • また、tailで表示された内容をgrepにパイプすることで、解析することもできる。例えば、tail -f /var/log/auth.log | grep 'Invalid user'とすると、すべての無効なユーザーを表示します。
      • コマンドの「パイプアウト」とは、出力を別のコマンドにリダイレクトすることです。基本的に、2つ以上のコマンドを同時に使うことができる。
  4. ログを開くにはviを使う。viやvimなどのテキストエディタを使えば、ほとんどのログを開いて見ることができる。そのためには、vi /var/log/auth.log(または希望のログ名)を使うだけです。その後、必要に応じてログを自由にナビゲートしたり、エディタの検索ツールを使ったりすることができる。viやvimでは、コマンド・モードでスラッシュを使って文字列を検索することができる。
    • 例えば、「/smtp」と入力してEnterを押すと、ファイル内の「smtp」の次のインスタンスが検索される。検索文字列の次のインスタンスに移動するにはnを、前に戻るにはN(大文字)を押す。
  5. カーネルからのメッセージを見るにはdmesgを使う。var/log/dmesgを見るには、このコマンドを使う必要がある。
    • ログを画面ごとに移動するには、dmesg | moreを実行する。
    • 特定のエントリーを検索するには、dmesgとgrepを併用する。たとえば、ハードディスクのエントリだけを表示するには、dmesg | grep -i sdaを実行する。
      • -iはgrepに大文字小文字を無視させる。
    • ログの最初の10行だけを見るには、dmesg | head -10を実行する。10」を、見たいファイルの先頭からの行数に置き換える。ファイルの最後も同様に見るには、dmesg | tail -10を実行する。
  6. 各ユーザーの最終ログイン日を見るには、lastlogを使う。/var/log/lastlogは、/var/log/dmesgと同様、バイナリ・ファイルであるため、表示にはコマンドを使用する必要がある。lastlogと入力してEnterを押すだけで、ログを見ることができますし、より簡単に見るためにパイプ(|=パイプ)を使うこともできます。例えば、lastlog|moreを使えば、ログを画面ごとに読むことができますし、lastlog|grep rootを使えば、rootのログイン情報だけを表示することができます。
この記事は、CC BY-NC-SAの下で公開された " How to Check Logs in Unix Systems " を改変して作成されました。特に断りのない限り、CC BY-NC-SAの下で利用可能です。

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧