この章では、Unixでのシステムログについて詳しく説明します。
Unixシステムは非常に柔軟で強力なロギングシステムを備えており、何でもほとんど記録してから、ログを操作して必要な情報を取得するようにできています。
Unixの多くのバージョンでは、syslogと呼ばれる汎用のロギング機能が提供されています。情報を記録する必要がある個々のプログラムは、syslogに情報を送信します。
Unixのsyslogは、ホストが設定可能で統一されたシステムロギング機能です。設定されているシステムファイルは、/ etc / syslogdまたは/ etc / syslogになります。
システムロガーの操作は非常に簡単です。プログラムはログエントリをsyslogdに送信し、syslogdは設定ファイル/etc/syslogd.confまたは/ etc / syslogを調べ、一致するものが見つかるとそのログメッセージを目的のログファイルに書き込みます。
理解する必要がある4つの基本的なsyslog用語があります。
S.No. | 期間および説明 |
---|---|
1 | Facility
ログメッセージを送信したアプリケーションまたはプロセスを記述するために使用される識別子。たとえば、mail、kernel、ftpなどです。 |
2 | Priority
メッセージの重要性を示す指標。レベルは、デバッグ情報から重要なイベントまで、syslog内でガイドラインとして定義されています。 |
3 | Selector
1つ以上の施設とレベルの組み合わせ。着信イベントがセレクタと一致すると、アクションが実行されます。 |
4 | Action
セレクタに一致する着信メッセージには何が起こりますか?アクションは、メッセージをログファイルに書き込んだり、コンソールまたは他のデバイスにメッセージをエコーしたり、ログインしたユーザにメッセージを書き込んだり、別のSyslogサーバにメッセージを送信したりすることができます。 |
Contents
Syslog機能
これでsyslog機能について理解できるようになりました。セレクターで利用可能な機能は次のとおりです。Unixのすべてのバージョンにすべての機能があるわけではありません。
施設 | 説明 |
---|---|
1 | auth
名前とパスワードの要求に関連するアクティビティ(getty、su、login) |
2 | authpriv
authと同じですが、選択したユーザーだけが読むことができるファイルに記録します。 |
3 | console
一般にシステムコンソールに向けられたメッセージをキャプチャするために使用されます |
4 | cron
cronシステムスケジューラからのメッセージ |
5 | daemon
システムデーモンcatch-all |
6 | ftp
ftpデーモンに関するメッセージ |
7 | kern
カーネルメッセージ |
8 | local0.local7
サイトごとに定義されたローカル施設 |
9 | lpr
ライン印刷システムからのメッセージ |
10 | mail
メールシステムに関するメッセージ |
11 | mark
ログファイルにタイムスタンプを生成するために使用される疑似イベント |
12 | news
ネットワークニュースプロトコル(nntp)に関するメッセージ |
13 | ntp
ネットワーク時間プロトコルに関するメッセージ |
14 | user
通常のユーザープロセス |
15 | uucp
UUCPサブシステム |
Syslogの優先順位
syslogの優先順位は次の表にまとめられています。
S.No. | 優先度と説明 |
---|---|
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つの部分があります。
- ログに記録するメッセージの種類を指定するメッセージセレクタ。たとえば、すべてのエラーメッセージ、またはカーネルからのすべてのデバッグメッセージになります
- アクションフィールドのメッセージを使って何をすべきかと言います。たとえば、ファイルに入れたり、メッセージをユーザーの端末に送信したりなどの動作を司る
上記の構成の注目すべき点は次のとおりです。
- メッセージセレクタには、ファシリティとプライオリティの 2つの部分があります。たとえば、kern.debugは、カーネル(ファシリティ)によって生成されたすべてのデバッグメッセージ(優先度)を選択します。
- メッセージセレクタkern.debugは、debugより大きいすべての優先順位を選択します。
- ファシリティまたはプライオリティの代わりにアスタリスクを付けると、「すべて」となります。たとえば、* .debugはすべてのデバッグメッセージを意味し、kern。*はカーネルによって生成されるすべてのメッセージを意味します。
- カンマを使用して複数の機能を指定することもできます。2つ以上のセレクタは、セミコロンを使用してグループ化できます。
ロギングアクション
アクションフィールドは、5つのアクションの1つを指定します。
- メッセージをファイルまたはデバイスに記録します。たとえば、/ var /log/ lpr.logまたは/ dev / consoleです。
- ユーザーにメッセージを送信します。カンマで区切って複数のユーザー名を指定できます。たとえば、root、amroodなどです。
- すべてのユーザーにメッセージを送信します。この場合、アクションフィールドはアスタリスクで構成されます。例えば、 *とか。
- メッセージをプログラムにパイプします。この場合、プログラムはUnixパイプ記号(|)の後に指定されます。
- 別のホストのsyslogにメッセージを送信します。この場合、アクションフィールドはホスト名の前にアットマークが付いています。たとえば、@ networkenginer.comなど
loggerコマンド
Unixはloggerコマンドを提供しています。これは、システムロギングを処理するための非常に便利なコマンドです。ロガーコマンドは、syslogdデーモンにログメッセージを送信し、その結果、システムロギングを引き起こします。
つまり、コマンドラインからいつでもsyslogdデーモンとその設定を確認できます。loggerコマンドは、コマンドラインからシステムログファイルに1行のエントリを追加する方法を提供します。
コマンドの形式は次のとおりです。
logger [-i] [-f file] [-p priority] [-t tag] [message]...
ここにパラメータの詳細があります –
S.No. | オプションと説明 |
---|---|
1 | -f filename
ログするメッセージとしてファイルfilenameの内容を使用します。 |
2 | -i
各行でロガープロセスのプロセスIDを記録します。 |
3 | -p priority
指定された優先度(指定されたセレクタエントリ)でメッセージを入力します。メッセージの優先順位は数値で指定することも、facility.priorityのペアとして指定することもできます。デフォルトの優先順位はuser.noticeです。 |
4 | -t tag
ログに追加された各行を指定されたタグでマークします。 |
5 | message
内容が指定された順序で連結され、スペースで区切られた文字列引数。 |
ログローテーション
ログファイルは非常に高速になり、大量のディスク領域を消費する傾向があります。ログのローテーションを有効にするには、ほとんどのディストリビューションでnewsyslogやlogrotateなどのツールを使用します。
これらのツールは、cronデーモンを使用して頻繁に呼び出される必要があります。詳細は、newsyslogまたはlogrotateのマニュアルページを参照してください。
重要なログの場所
すべてのシステムアプリケーションは、/ var / logとそのサブディレクトリにログファイルを作成します。重要なアプリケーションとそれに対応するログディレクトリはほとんどありません。
応用 | ディレクトリ |
---|---|
httpd | / var / log / httpd |
samba | / var / log / samba |
cron | / var / log / |
/ var / log / | |
mysql | us/ var / log / |
次のページ