【Linux】rsyslogの設定ファイルの書式
rsyslogの設定ファイルは、/etc/rsyslog.conf
ファイルに記述されます。このファイルには、rsyslogdというデーモンがログをどこに送るかを割り振る設定が含まれています。rsyslogdは、システムやアプリケーションから受信したログメッセージを処理し、設定に従って適切な場所に出力します。
rsyslogの仕組み
- 設定ファイルの読み込みと起動
rsyslogdは起動時に/etc/rsyslog.conf
ファイルを読み込み、設定に基づいて動作を開始します。 - 通知メッセージの受信
rsyslogdには、様々なイベントから通知メッセージが届きます。
メッセージには、何がいつ発生したのか、どれくらい重要なのか、といった情報が含まれています。 - ファシリティとプライオリティ
ファシリティ:メッセージの送信元を表します。
プライオリティ:メッセージの重要度を表します。 - アクションの決定
事前に読み込んだ設定とこれらの情報を基に、ログメッセージをファイルに保存、ターミナル(端末)へ出力、ネットワーク越しのサーバーに転送するかを決定します。
主なファシリティの種類と説明
ファシリティ | 説明 |
---|---|
auth | 認証関連のメッセージ |
authpriv | 認証情報のプライベートメッセージ |
cron | cronデーモンからのメッセージ |
daemon | 各種デーモンからのメッセージ |
kern | カーネルからのメッセージ |
メールシステムからのメッセージ | |
syslog | syslogd内部からのメッセージ |
user | ユーザーからのメッセージ |
local0〜local7 | ローカルユーザー定義のメッセージ |
* | すべてのファシリティ |
プライオリティの種類
プライオリティは、指定したレベル以上のメッセージが収集されます。「none」と「*」は特殊なプライオリティです。例えば、プライオリティに「crit」と指定した場合、「crit,err,‥‥debug」のメッセージが収集されます。
レベル | プライオリティ | 説明 |
---|---|---|
0 | emerg | 緊急。システムが使用不可能。 |
1 | alert | すぐに対処が必要。 |
2 | crit | 重要な状態。 |
3 | err | エラー状態。 |
4 | warn | 警告状態。 |
5 | notice | 通知。正常だが重要な条件。 |
6 | info | 情報。正常な動作の情報。 |
7 | debug | デバッグレベルのメッセージ。 |
– | none | 何もログに記録しない。 |
– | * | すべてのレベルのメッセージ。 |
auth.alert
と設定した場合
auth.alert
と設定すると、認証関連のメッセージで、プライオリティがalert
以上の重要度のメッセージが収集されます。この設定により、すぐに対処が必要な認証エラーなどを迅速に検知できます。
アクションの種類と記述例
アクション | 記述例 | 説明 |
---|---|---|
ファイル名 | /var/log/messages | 指定したファイルにログを保存。 |
ユーザー名 | root | 指定したユーザーにログを送信。 |
@ホスト名 | @remotehost | 指定したホストにUDPでログを転送。 |
@@ホスト名 | @@remotehost | 指定したホストにTCPでログを転送。 |
/dev/console | /dev/console | コンソールにログを出力。 |
* | * | すべてのユーザーにログを送信。 |
/etc/rsyslog.confの記述の仕方
/etc/rsyslog.conf
ファイルには、ファシリティとプライオリティを指定して、ログメッセージをどのように処理するかを記述します。
/etc/rsyslog.confの記述例
*.info;mail.none;authpriv.none;cron.none /var/log/messages
各フィールドの意味
フィールド | 説明 |
---|---|
* | すべてのファシリティ |
.info | info レベル以上のメッセージ |
; | 区切り記号 |
mail.none | mailファシリティのメッセージを除外 |
authpriv.none | authprivファシリティのメッセージを除外 |
cron.none | cronファシリティのメッセージを除外 |
/var/log/messages | ログを保存するファイル |
「;」(セミコロン)記号の後に続く「ファシリティ.none」は、例外を表し、特定のファシリティを除外します。
まとめ
rsyslogの設定ファイル/etc/rsyslog.conf
は、ログの送信先や保存先を決定する重要な役割を持ちます。ファシリティとプライオリティを使って、どのメッセージをどのように処理するかを細かく設定できます。rsyslogはsyslogの拡張版として、より高い信頼性と多機能性を提供し、現代のシステム管理において主流となっています。