ログは、システム、アプリケーション、またはネットワークの問題をトラブルシューティングするときに非常に役立ちます。ログファイルにキャプチャされた情報を分析して、システム管理者として情報に基づいた決定を下すのに役立つパターンを明らかにすることもできます。
このガイドでは、UbuntuLinuxサーバーで標準のログファイルを表示する方法について簡単に説明します。
ログファイルを操作するための重要なコマンド
Ubuntu Linuxサーバーでは、ログは通常プレーンテキスト形式で保存されます。したがって、ファイルシステム内を移動したり、Ubuntuターミナルを介してテキストファイルを操作したりするための次の基本的なLinuxコマンドを知っていることが重要です。
cd –ディレクトリの変更
ls –ディレクトリの内容を表示する
cp –ファイルまたはフォルダをコピーする
mv –ファイルまたはフォルダの名前を変更/移動する
ナノ –コンソールベースのテキストエディタ
少ない –テキストファイルのコンテンツを一度に1ページずつ表示する
頭 –テキストファイルの最初の10行を表示する
テール –テキストファイルの最後の10行を表示する
grep –テキストファイルまたは出力データで特定のキーワードを検索する
Ubuntuサーバー上のログファイルの場所
基本的に、ログファイルは / var / logに保存されます Ubuntuサーバー上のディレクトリ。以下のコマンドを実行して、ディレクトリを/ var/logに変更します。
$ cd /var/log
これで、/ var/logの内容を次のようにリストできます。
$ ls
下の図1に示すように、/ var / logディレクトリには、システムログとアプリケーションログに大まかに分類できるいくつかのログファイルが含まれています。
図1:Ubuntuサーバー上のログファイルのリスト
システムログ
システムログには、Ubuntuシステムの操作に関する情報が含まれています。承認ログ、カーネルログ、カーネルリングバッファ、および一般的なシステムイベントを含みます。
認証ログ
承認ログは/var/log/auth.logに保存されます 。ここには、ユーザー認証の試行に関する情報があります。 sudoコマンドの使用を含みます。
以下のコマンドを実行して、auth.logファイルの内容を調べることができます。
$ sudo less /var/log/auth.log
注: キーボードのスペースバーを押して、ページ間をスクロールします。 qを押します 終了します。
grepコマンドを使用して、ログの情報をフィルタリングすることもできます。これが例です。
$ sudo less /var/log/auth.log | grep olu
サンプル出力の情報 以下は、ユーザーoluによるssh経由でUbuntuサーバーへのリモートログインが成功したことを示しています。
Feb 1 15:44:24 Ubuntu sshd [1594]:105.0.0.100ポート35233 ssh2からのoluの公開キーを受け入れました:RSA SHA256:B3zi4x3gdF89wm0GZw + fsAkhckLEsx8fJ0GJiU80CXH 2月1日15:44:24Ubuntusshd [1594]:pam_unix(sshd:session):(uid =0)によってユーザーoluに対してセッションが開かれました 2月1日15:44:24Ubuntusystemd-logind [747]:ユーザーoluの新しいセッション2。 2月1日15:44:24Ubuntusystemd:pam_unix(systemd-user:session):(uid =0)によってユーザーoluのセッションが開かれました |
カーネルログ
カーネルログは/var/log/kern.logに保持されます 。この情報は、カーネルエラーのトラブルシューティングに役立ちます。カーネルはオペレーティングシステムのすべてを制御します。プロセス管理、メモリ管理、デバイス管理を含みます。
次のコマンドを使用して、kern.logファイルの内容を一度に1ページずつ表示します。
$ sudo less /var/log/kern.log
または、これを試して、kern.logファイルの最初の10行を表示してください。
$ sudo head /var/log/kern.log
kern.logで特定の情報を検索します。
$ grep memory /var/log/kern.log
カーネルリングバッファ
カーネルリングバッファは、カーネルハードウェア情報を保持します。情報は/var / log / dmesgに記録されます dmesgを使用して表示できます 指図。この情報には、システムの起動時に検出されたすべてのデバイスが含まれます。
これを使用して、サーバーハードウェアコンポーネントの問題をトラブルシューティングできます。以下のコマンドを実行して、カーネルリングバッファのコンテンツ全体を表示します。
$ dmesg
次のコマンドを試して、カーネルリングバッファの最後の10行を表示します。
$ dmesg | tail
または、grepを使用して特定のキーワードをフィルタリングします。
$ dmesg | grep cpu
一般的なシステムログ
ここでは、 syslogについて説明します。 およびjournalctl
Syslog
Syslogは、一般的なシステムイベントを / var / log / syslogに保存するログメカニズムです。 。ここに保存されている情報には、他のログファイルにはないイベントが含まれている場合があります。
以下のコマンドを実行して、syslogファイルの内容をページごとに表示します。
$ sudo less /var/log/syslog
grepを使用して特定のキーワードを検索することもできます 次のようにコマンドを実行します。
$ sudo grep failed /var/log/syslog
Journalctl
journalctlコマンドは、サーバーログを調べるプロセスを簡素化します。個々のログファイルを調べるのではなく、journalctlを使用して、必要な情報をすばやく見つけてフィルタリングすることができます。
以下のコマンドは、古いものから新しいものへのすべてのログエントリを表示します。
$ journalctl
次のコマンドは警告メッセージを表示します。
$ journalctl -p warning
次のようにカーネルメッセージのみを表示できます。
$ journalctl --dmesg
grep を組み合わせることで、特定のキーワードを検索できます コマンドを実行し、 lessを使用してページごとに結果を表示します 。
$ journalctl | grep ssh | less
特定の日付以降のログ情報を表示します。
$ journalctl --since=2021-02-01
または、特定の時間以降のログ情報を表示します。
$ journalctl --since=12:00
journalctlと入力することもできます 次に、キーボードのTabキーを押して、使用可能なオプションを確認します。
アプリケーションログ
いくつかのアプリケーションは、ログ情報を / var / logに保存します 。たとえば、上記の図1では、 clamav ディレクトリには、ClamAVマルウェア対策アプリケーションに関連するログファイルが含まれています。
人気のあるアプリケーションやサービスの例と、それらのログ情報が保存されている場所を次に示します。
Apache web server logs - /var/log/apache2
NGINX web server logs - /var/log/nginx
Printing system (CUPS) logs - /var/log/cups
その他の有用なログ
lastlogなどの一部のログファイル 、 wtmp 人間が直接読むことはできません。以下は、これらのファイルに含まれる情報の種類とその表示方法についての簡単な説明です。
lastlog
/ var / log / lastlogに保持されている情報 ユーザーとUbuntuサーバーへの最新のログインに関係します。 最後のログを使用する必要があります 次のようにアクセスするコマンド。
$ lastlog
wtmp
var / log / wtmp ファイルは包括的なログインレコードを保持します。
最後を実行します 最後にログインしたユーザーのリストを表示するコマンド。システムの起動/再起動に関する情報も表示される場合があります。
$ last
whoを実行します 現在ログインしているユーザーを確認するコマンド。
$ who
w コマンドは、現在ログインしているユーザーと、Ubuntuサーバーで何をしているかを示します。
$ w
結論
このガイドでは、Ubuntuサーバーで標準のログファイルを表示する方法について簡単に説明しました。これは完全なリストではありませんが、どこを見ればよいかがわかることを願っています。