Unix / Linux-システムログ
この章では、Unixでのシステムロギングについて詳しく説明します。
Unixシステムには、非常に柔軟で強力なロギングシステムがあり、想像できるほとんどすべてのものを記録し、ログを操作して必要な情報を取得できます。
Unixの多くのバージョンは、次のような汎用ログ機能を提供します。 syslog。情報をログに記録する必要がある個々のプログラムは、syslogに情報を送信します。
Unix Syslogは、ホストで構成可能な統一されたシステムロギング機能です。システムは、プログラムを実行する一元化されたシステムロギングプロセスを使用します/etc/syslogd または /etc/syslog。
システムロガーの操作は非常に簡単です。プログラムはログエントリをsyslogdに送信し、syslogdは設定ファイルを参照します/etc/syslogd.conf または /etc/syslog そして、一致するものが見つかると、ログメッセージを目的のログファイルに書き込みます。
理解しておくべき4つの基本的なsyslog用語があります-
シニア番号 | 用語と説明 |
---|---|
1 | Facility ログメッセージを送信したアプリケーションまたはプロセスを説明するために使用される識別子。たとえば、メール、カーネル、FTPなどです。 |
2 | Priority メッセージの重要性の指標。レベルは、デバッグ情報から重要なイベントまで、ガイドラインとしてsyslog内で定義されます。 |
3 | Selector 1つ以上の施設とレベルの組み合わせ。着信イベントがセレクターと一致すると、アクションが実行されます。 |
4 | Action セレクターに一致する着信メッセージはどうなりますか—アクションは、メッセージをログファイルに書き込んだり、メッセージをコンソールまたは他のデバイスにエコーしたり、ログインしたユーザーにメッセージを書き込んだり、別のsyslogサーバーにメッセージを送信したりできます。 |
Syslogファシリティ
これで、syslog機能について理解できます。セレクターで利用できる機能は次のとおりです。すべての機能がUnixのすべてのバージョンに存在するわけではありません。
施設 | 説明 |
---|---|
1 | auth 名前とパスワードの要求に関連するアクティビティ(getty、su、login) |
2 | authpriv authと同じですが、選択したユーザーのみが読み取ることができるファイルに記録されます |
3 | console 通常、システムコンソールに送信されるメッセージをキャプチャするために使用されます |
4 | cron cronシステムスケジューラからのメッセージ |
5 | daemon システムデーモンキャッチオール |
6 | ftp ftpデーモンに関連するメッセージ |
7 | kern カーネルメッセージ |
8 | local0.local7 サイトごとに定義されたローカル施設 |
9 | lpr ライン印刷システムからのメッセージ |
10 | メールシステムに関するメッセージ |
11 | mark ログファイルにタイムスタンプを生成するために使用される疑似イベント |
12 | news ネットワークニュースプロトコル(nntp)に関連するメッセージ |
13 | ntp ネットワークタイムプロトコルに関連するメッセージ |
14 | user 通常のユーザープロセス |
15 | uucp UUCPサブシステム |
Syslogの優先順位
Syslogの優先順位は、次の表にまとめられています。
シニア番号 | 優先順位と説明 |
---|---|
1 | emerg 差し迫ったシステムクラッシュなどの緊急事態は、通常、すべてのユーザーにブロードキャストされます |
2 | alert システムデータベースの破損など、すぐに修正する必要のある状態 |
3 | crit ハードウェアエラーなどの重大な状態 |
4 | err 通常のエラー |
5 | Warning 警告 |
6 | notice エラーではないが、特別な方法で処理する必要がある可能性のある状態 |
7 | info 情報メッセージ |
8 | debug プログラムのデバッグ時に使用されるメッセージ |
9 | none メッセージをログに記録しないように指定するために使用される疑似レベル |
施設とレベルの組み合わせにより、ログに記録される内容とその情報の行き先を識別できます。
各プログラムがメッセージをシステムロガーに忠実に送信すると、ロガーはセレクターで定義されたレベルに基づいて、何を追跡し、何を破棄するかを決定します。
レベルを指定すると、システムはそのレベル以上のすべてを追跡します。
/etc/syslog.confファイル
ザ・ /etc/syslog.confファイルは、メッセージがログに記録される場所を制御します。典型的なsyslog.conf ファイルは次のようになります-
*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice /var/log/messages
lpr.info /var/log/lpr.log
mail.* /var/log/mail.log
ftp.* /var/log/ftp.log
auth.* @prep.ai.mit.edu
auth.* root,amrood
netinfo.err /var/log/netinfo.log
install.* /var/log/install.log
*.emerg *
*.alert |program_name
mark.* /dev/console
ファイルの各行には2つの部分が含まれています-
A message selectorログに記録するメッセージの種類を指定します。たとえば、カーネルからのすべてのエラーメッセージまたはすべてのデバッグメッセージ。
アン action fieldそれはメッセージで何をすべきかを示しています。たとえば、ファイルに入れたり、ユーザーの端末にメッセージを送信したりします。
上記の構成の注目すべき点は次のとおりです-
メッセージセレクタには2つの部分があります。 a facility そして a priority。たとえば、kern.debugは、カーネル(ファシリティ)によって生成されたすべてのデバッグメッセージ(優先度)を選択します。
メッセージセレクタkern.debugは、debugよりも大きいすべての優先度を選択します。
施設または優先度の代わりのアスタリスクは「すべて」を示します。例えば、*.debug すべてのデバッグメッセージを意味しますが、 kern.* カーネルによって生成されたすべてのメッセージを意味します。
カンマを使用して複数の機能を指定することもできます。セミコロンを使用して、2つ以上のセレクターをグループ化できます。
ロギングアクション
アクションフィールドは、5つのアクションのいずれかを指定します-
メッセージをファイルまたはデバイスに記録します。例えば、/var/log/lpr.log または /dev/console。
ユーザーにメッセージを送信します。複数のユーザー名をコンマで区切って指定できます。たとえば、root、amrood。
すべてのユーザーにメッセージを送信します。この場合、アクションフィールドはアスタリスクで構成されます。例えば、 *。
メッセージをプログラムにパイプします。この場合、プログラムはUnixパイプ記号(|)の後に指定されます。
別のホストのsyslogにメッセージを送信します。この場合、アクションフィールドは、アットマークが前に付いたホスト名で構成されます。たとえば、@ tutorialspoint.comです。
ロガーコマンド
Unixは loggerコマンド。これは、システムロギングを処理するための非常に便利なコマンドです。ザ・logger コマンドはロギングメッセージをsyslogdデーモンに送信し、その結果、システムロギングを引き起こします。
これは、コマンドラインからいつでも確認できることを意味します。 syslogdデーモンとその構成。loggerコマンドは、コマンドラインからシステムログファイルに1行のエントリを追加する方法を提供します。
コマンドの形式は次のとおりです。
logger [-i] [-f file] [-p priority] [-t tag] [message]...
パラメータの詳細は次のとおりです-
シニア番号 | オプションと説明 |
---|---|
1 | -f filename ログに記録するメッセージとしてファイルファイル名の内容を使用します。 |
2 | -i ロガープロセスのプロセスIDを各行に記録します。 |
3 | -p priority 指定された優先度(指定されたセレクタエントリ)でメッセージを入力します。メッセージの優先度は、数値で指定することも、facility.priorityのペアとして指定することもできます。デフォルトの優先度はuser.noticeです。 |
4 | -t tag ログに追加された各行を指定されたタグでマークします。 |
5 | message 内容がスペースで区切られた、指定された順序で連結されている文字列引数。 |
あなたは使用することができますマンページのヘルプをこのコマンドの完全な構文を確認すること。
ログローテーション
ログファイルは非常に速く成長し、大量のディスク領域を消費する傾向があります。ログローテーションを有効にするために、ほとんどのディストリビューションは次のようなツールを使用しますnewsyslog または logrotate。
これらのツールは、を使用して頻繁に呼び出す必要があります cron daemon。詳細については、manページでnewsyslogまたはlogrotateを確認してください。
重要なログの場所
すべてのシステムアプリケーションは、ログファイルを作成します。 /var/logおよびそのサブディレクトリ。ここにいくつかの重要なアプリケーションとそれに対応するログディレクトリがあります-
応用 | ディレクトリ |
---|---|
httpd | / var / log / httpd |
サンバ | / var / log / samba |
cron | / var / log / |
郵便物 | / var / log / |
mysql | / var / log / |