Unix / Linux – システムロギング

スポンサーリンク

本当にわからないとこがあった場合一人では解決できません。
『teratail』とはエンジニア特化型のQ&Aサイトです。 すべてのエンジニアさんが抱えている悩みを共有して 解決するための質問サイトです
無料なのでまずは登録して使ってみてください。メールアドレスだけで登録可能です ----------------------------------------------------------------------------------------

この章では、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サーバにメッセージを送信したりすることができます。

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

内容が指定された順序で連結され、スペースで区切られた文字列引数。

 

ログローテーション


ログファイルは非常に高速になり、大量のディスク領域を消費する傾向があります。ログのローテーションを有効にするには、ほとんどのディストリビューションでnewsysloglogrotateなどのツールを使用します

これらのツールは、cronデーモンを使用して頻繁に呼び出される必要があります。詳細は、newsyslogまたはlogrotateのマニュアルページを参照してください。

重要なログの場所


すべてのシステムアプリケーションは、/ var / logとそのサブディレクトリにログファイルを作成します。重要なアプリケーションとそれに対応するログディレクトリはほとんどありません。

応用 ディレクトリ
httpd / var / log / httpd
samba / var / log / samba
cron / var / log /
mail / var / log /
mysql us/ var / log /

次のページ

前のページ

スポンサーリンク

プログラミングは独学からは挫折の可能性が高いです。まずは無料体験ができる
コードキャンプが本当におすすめ。無料体験でわからないところを聞きましょう。
転職補助つき。カリキュラム終了後に転職紹介をしてくれます。