「Rsyslog」の版間の差分
(en:Rsyslogへの転送ページ) |
Blackteahamburger (トーク | 投稿記録) (分類を修正) |
||
(2人の利用者による、間の5版が非表示) | |||
1行目: | 1行目: | ||
+ | {{Lowercase title}} |
||
− | #redirect[[en:Rsyslog]] |
||
+ | [[Category:ロギング]] |
||
+ | [[en:Rsyslog]] |
||
+ | {{Related articles start}} |
||
+ | {{Related|syslog-ng}} |
||
+ | {{Related articles end}} |
||
+ | [http://www.rsyslog.com/ rsyslog] は [[syslog-ng]] の代わりとなるロガーで [[syslog-ng]] と比べて多数のメリットが存在します。 |
||
+ | |||
+ | == インストール == |
||
+ | |||
+ | {{Note|衝突が発生しないように {{Pkg|syslog-ng}} パッケージを無効化・アンインストールすることを推奨します。}} |
||
+ | |||
+ | {{AUR|rsyslog}} パッケージを[[インストール]]してください。 |
||
+ | |||
+ | === サービスの起動 === |
||
+ | |||
+ | インストール後 {{ic|rsyslog}} サービスを[[systemd#ユニットを使う|起動・有効化]]してください。 |
||
+ | |||
+ | === ホストネームの設定 === |
||
+ | |||
+ | Rsyslog は {{Pkg|glibc}} の {{ic|gethostname()}} や {{ic|gethostbyname()}} を使ってローカルマシンのホストネームを確認します。[[BIND]] や [[NIS]] が使われていない場合、{{ic|gethostname()}} や {{ic|gethostbyname()}} は {{ic|/etc/hosts}} の中身で完全修飾ドメイン名 (FQDN) をチェックします。 |
||
+ | |||
+ | {{ic|hostname --fqdn}} を実行することで現在設定されているローカルマシンの FQDN を確認できます。rsyslog ではログメッセージを書き出すとき {{ic|hostname --short}} の出力が使われます。完全なホストネームをログで使いたい場合、設定ファイルの先頭に (ファイルにディレクティブを書き出す前に) {{ic|$PreserveFQDN on}} を追加してください。rsyslog は設定ファイルを読み込んでから一行ずつ適用して次の行に進むためです。 |
||
+ | |||
+ | {{ic|/etc/hosts}} ファイルには FQDN を IP アドレスにマッピングする行と、エイリアスを FQDN にマッピングする行が含まれています。下の {{ic|/etc/hosts}} のファイル例を見て下さい: |
||
+ | |||
+ | {{hc|/etc/hosts|<nowiki> |
||
+ | #<ip-address> <hostname.domain.org> <hostname> |
||
+ | #<ip-address> <actual FQDN> <aliases> |
||
+ | 127.0.0.1 localhost.localdomain somehost.localdomain localhost somehost |
||
+ | ::1 localhost.localdomain somehost.localdomain localhost somehost |
||
+ | </nowiki>}} |
||
+ | |||
+ | {{ic|localhost.localdomain}} が最初のアイテムで IP アドレスが指定されており、{{ic|gethostbyname()}} 関数はローカルマシンの FQDN として '''localhost.localdomain''' を返します。そして {{ic|/var/log/messages}} ファイルはホストネームとして '''localhost''' を使います。 |
||
+ | |||
+ | ホストネームとして '''somehost''' を使うには、'''somehost.localdomain''' を最初のアイテムまで移動してください: |
||
+ | |||
+ | {{hc|/etc/hosts|<nowiki> |
||
+ | #<ip-address> <hostname.domain.org> <hostname> |
||
+ | #<ip-address> <actual FQDN> <aliases> |
||
+ | 127.0.0.1 somehost.localdomain localhost.localdomain localhost somehost |
||
+ | ::1 somehost.localdomain localhost.localdomain localhost somehost |
||
+ | </nowiki>}} |
||
+ | |||
+ | == 設定 == |
||
+ | |||
+ | ''rsyslog'' は設定ファイルの {{ic|$WorkDirectory}} 変数で定義されている作業ディレクトリ {{ic|/var/spool/rsyslog}} を作成しません。手動で作成するか、別のディレクトリに変更する必要があります。 |
||
+ | |||
+ | デフォルトでは全ての syslog メッセージは [[systemd]] によって管理されています。systemd から rsyslog にメッセージを引っ張ってくるには ''imjournal'' モジュールをロードしてください: |
||
+ | |||
+ | {{hc|/etc/rsyslog.conf| |
||
+ | $ModLoad imjournal |
||
+ | }} |
||
+ | |||
+ | ログの出力は {{ic|/etc/rsyslog.conf}} で調整できます。デーモンはファシリティレベル (下を参照) を使って何処に何を出力するか決定します。例: |
||
+ | |||
+ | {{hc|/etc/rsyslog.conf| |
||
+ | # The authpriv file has restricted access. |
||
+ | authpriv.* /var/log/secure |
||
+ | }} |
||
+ | |||
+ | 上記の場合 '''authpriv''' ファシリティのメッセージは全て {{ic|/var/log/secure}} に出力されるようになります。 |
||
+ | |||
+ | また、''syslog-ng'' の挙動と同じように {{ic|auth.log}} を使う場合: |
||
+ | |||
+ | {{hc|/etc/rsyslog.conf| |
||
+ | auth.* -/var/log/auth |
||
+ | }} |
||
+ | |||
+ | 詳しくは [http://www.rsyslog.com/doc/rsyslog_conf.html Structure of the rsyslog.conf file] を見て下さい。 |
||
+ | |||
+ | === ファシリティレベル === |
||
+ | |||
+ | {{Note|ファシリティ番号とキーワードはオペレーティングシステムや syslog の実装によって一致したりしなかったりします。できるかぎりキーワードを使うようにしてください。}} |
||
+ | |||
+ | {| class="wikitable" |
||
+ | |- |
||
+ | ! ファシリティ番号 !! キーワード !! ファシリティの説明 |
||
+ | |- |
||
+ | | 0 || kern || カーネルのメッセージ |
||
+ | |- |
||
+ | | 1 || user || ユーザーレベルのメッセージ |
||
+ | |- |
||
+ | | 2 || mail || メールシステム |
||
+ | |- |
||
+ | | 3 || daemon || システムデーモン |
||
+ | |- |
||
+ | | 4 || auth || セキュリティ・認証メッセージ |
||
+ | |- |
||
+ | | 5 || syslog || syslogd によって内部的に生成されたメッセージ |
||
+ | |- |
||
+ | | 6 || lpr || ラインプリンタサブシステム |
||
+ | |- |
||
+ | | 7 || news || ネットワークニュースサブシステム |
||
+ | |- |
||
+ | | 8 || uucp || UUCP サブシステム |
||
+ | |- |
||
+ | | 9 || || クロックデーモン |
||
+ | |- |
||
+ | | 10 || authpriv || セキュリティ・認証メッセージ |
||
+ | |- |
||
+ | | 11 || ftp || FTP デーモン |
||
+ | |- |
||
+ | | 12 || - || NTP サブシステム |
||
+ | |- |
||
+ | | 13 || - || ログ監査 |
||
+ | |- |
||
+ | | 14 || - || ログアラート |
||
+ | |- |
||
+ | | 15 || cron || クロックデーモン |
||
+ | |- |
||
+ | | 16 || local0 || ローカル使用 0 (local0) |
||
+ | |- |
||
+ | | 17 || local1 || ローカル使用 1 (local1) |
||
+ | |- |
||
+ | | 18 || local2 || ローカル使用 2 (local2) |
||
+ | |- |
||
+ | | 19 || local3 || ローカル使用 3 (local3) |
||
+ | |- |
||
+ | | 20 || local4 || ローカル使用 4 (local4) |
||
+ | |- |
||
+ | | 21 || local5 || ローカル使用 5 (local5) |
||
+ | |- |
||
+ | | 22 || local6 || ローカル使用 6 (local6) |
||
+ | |- |
||
+ | | 23 || local7 || ローカル使用 7 (local7) |
||
+ | |} |
||
+ | |||
+ | === セキュリティレベル === |
||
+ | |||
+ | [https://tools.ietf.org/html/rfc5424 RFC 5424] に定義されているように、8つのセキュリティレベルがあります: |
||
+ | |||
+ | {| class="wikitable" |
||
+ | |- |
||
+ | ! コード !! 重要度 !! キーワード !! 説明 !! 備考 |
||
+ | |- |
||
+ | | 0 || Emergency || emerg (panic) || システム利用不能。 || 複数のアプリ/サーバー/サイトに影響する"パニック"状態。この段階になったら全ての技術スタッフの招集が必要。 |
||
+ | |- |
||
+ | | 1 || Alert || alert || いますぐ対策が必要。 || 直ちに問題に対処してください。問題を修正できるスタッフを呼びましょう。例として主要な ISP 接続の喪失などが挙げられます。 |
||
+ | |- |
||
+ | | 2 || Critical || crit || 緊急状態。 || 直ちに問題に対処してください。主要なシステムでの問題を意味します。バックアップ ISP 接続の喪失などが挙げられます。 |
||
+ | |- |
||
+ | | 3 || Error || err (error) || エラー状態。 || 不急の問題。開発者や管理者に連絡してください。一定期間内に解決する必要があります。 |
||
+ | |- |
||
+ | | 4 || Warning || warning (warn) || 警告状態。 || 警告メッセージ。エラーではなりませんが、何も対策を取らないとエラーが発生します。例: ファイルシステムが 85% まで一杯。一定期間内に解決する必要があります。 |
||
+ | |- |
||
+ | | 5 || Notice || notice || 通常状態。 || 普通ではないがエラー状態でもないイベント。開発者や管理者にまとめてメールで通告して問題点がないか調べて下さい。直ちに行動する必要はありません。 |
||
+ | |- |
||
+ | | 6 || Informational || info || 情報メッセージ。 || 通常の作業メッセージ。レポートとして取りまとめたり、スループットの調査などに使います。行動は必要ありません。 |
||
+ | |- |
||
+ | | 7 || Debug || debug || デバッグメッセージ。 || アプリケーションをデバッグするときに有用な開発者用の情報。作業中は無視してかまいません。 |
||
+ | |} |
||
+ | |||
+ | {{Tip|syslog のレベルを覚えるための語呂合わせ (逆順): "Do I Notice When Evenings Come Around Early"。}} |
||
+ | |||
+ | == 参照 == |
||
+ | |||
+ | * [http://www.rsyslog.com/doc/manual.html Rsyslog マニュアル] |
||
+ | * [http://www.rsyslog.com/doc-rsyslog_ng_comparison.html rsyslog's versus syslog-ng]. |
2020年7月15日 (水) 22:52時点における最新版
関連記事
rsyslog は syslog-ng の代わりとなるロガーで syslog-ng と比べて多数のメリットが存在します。
インストール
rsyslogAUR パッケージをインストールしてください。
サービスの起動
インストール後 rsyslog
サービスを起動・有効化してください。
ホストネームの設定
Rsyslog は glibc の gethostname()
や gethostbyname()
を使ってローカルマシンのホストネームを確認します。BIND や NIS が使われていない場合、gethostname()
や gethostbyname()
は /etc/hosts
の中身で完全修飾ドメイン名 (FQDN) をチェックします。
hostname --fqdn
を実行することで現在設定されているローカルマシンの FQDN を確認できます。rsyslog ではログメッセージを書き出すとき hostname --short
の出力が使われます。完全なホストネームをログで使いたい場合、設定ファイルの先頭に (ファイルにディレクティブを書き出す前に) $PreserveFQDN on
を追加してください。rsyslog は設定ファイルを読み込んでから一行ずつ適用して次の行に進むためです。
/etc/hosts
ファイルには FQDN を IP アドレスにマッピングする行と、エイリアスを FQDN にマッピングする行が含まれています。下の /etc/hosts
のファイル例を見て下さい:
/etc/hosts
#<ip-address> <hostname.domain.org> <hostname> #<ip-address> <actual FQDN> <aliases> 127.0.0.1 localhost.localdomain somehost.localdomain localhost somehost ::1 localhost.localdomain somehost.localdomain localhost somehost
localhost.localdomain
が最初のアイテムで IP アドレスが指定されており、gethostbyname()
関数はローカルマシンの FQDN として localhost.localdomain を返します。そして /var/log/messages
ファイルはホストネームとして localhost を使います。
ホストネームとして somehost を使うには、somehost.localdomain を最初のアイテムまで移動してください:
/etc/hosts
#<ip-address> <hostname.domain.org> <hostname> #<ip-address> <actual FQDN> <aliases> 127.0.0.1 somehost.localdomain localhost.localdomain localhost somehost ::1 somehost.localdomain localhost.localdomain localhost somehost
設定
rsyslog は設定ファイルの $WorkDirectory
変数で定義されている作業ディレクトリ /var/spool/rsyslog
を作成しません。手動で作成するか、別のディレクトリに変更する必要があります。
デフォルトでは全ての syslog メッセージは systemd によって管理されています。systemd から rsyslog にメッセージを引っ張ってくるには imjournal モジュールをロードしてください:
/etc/rsyslog.conf
$ModLoad imjournal
ログの出力は /etc/rsyslog.conf
で調整できます。デーモンはファシリティレベル (下を参照) を使って何処に何を出力するか決定します。例:
/etc/rsyslog.conf
# The authpriv file has restricted access. authpriv.* /var/log/secure
上記の場合 authpriv ファシリティのメッセージは全て /var/log/secure
に出力されるようになります。
また、syslog-ng の挙動と同じように auth.log
を使う場合:
/etc/rsyslog.conf
auth.* -/var/log/auth
詳しくは Structure of the rsyslog.conf file を見て下さい。
ファシリティレベル
ファシリティ番号 | キーワード | ファシリティの説明 |
---|---|---|
0 | kern | カーネルのメッセージ |
1 | user | ユーザーレベルのメッセージ |
2 | メールシステム | |
3 | daemon | システムデーモン |
4 | auth | セキュリティ・認証メッセージ |
5 | syslog | syslogd によって内部的に生成されたメッセージ |
6 | lpr | ラインプリンタサブシステム |
7 | news | ネットワークニュースサブシステム |
8 | uucp | UUCP サブシステム |
9 | クロックデーモン | |
10 | authpriv | セキュリティ・認証メッセージ |
11 | ftp | FTP デーモン |
12 | - | NTP サブシステム |
13 | - | ログ監査 |
14 | - | ログアラート |
15 | cron | クロックデーモン |
16 | local0 | ローカル使用 0 (local0) |
17 | local1 | ローカル使用 1 (local1) |
18 | local2 | ローカル使用 2 (local2) |
19 | local3 | ローカル使用 3 (local3) |
20 | local4 | ローカル使用 4 (local4) |
21 | local5 | ローカル使用 5 (local5) |
22 | local6 | ローカル使用 6 (local6) |
23 | local7 | ローカル使用 7 (local7) |
セキュリティレベル
RFC 5424 に定義されているように、8つのセキュリティレベルがあります:
コード | 重要度 | キーワード | 説明 | 備考 |
---|---|---|---|---|
0 | Emergency | emerg (panic) | システム利用不能。 | 複数のアプリ/サーバー/サイトに影響する"パニック"状態。この段階になったら全ての技術スタッフの招集が必要。 |
1 | Alert | alert | いますぐ対策が必要。 | 直ちに問題に対処してください。問題を修正できるスタッフを呼びましょう。例として主要な ISP 接続の喪失などが挙げられます。 |
2 | Critical | crit | 緊急状態。 | 直ちに問題に対処してください。主要なシステムでの問題を意味します。バックアップ ISP 接続の喪失などが挙げられます。 |
3 | Error | err (error) | エラー状態。 | 不急の問題。開発者や管理者に連絡してください。一定期間内に解決する必要があります。 |
4 | Warning | warning (warn) | 警告状態。 | 警告メッセージ。エラーではなりませんが、何も対策を取らないとエラーが発生します。例: ファイルシステムが 85% まで一杯。一定期間内に解決する必要があります。 |
5 | Notice | notice | 通常状態。 | 普通ではないがエラー状態でもないイベント。開発者や管理者にまとめてメールで通告して問題点がないか調べて下さい。直ちに行動する必要はありません。 |
6 | Informational | info | 情報メッセージ。 | 通常の作業メッセージ。レポートとして取りまとめたり、スループットの調査などに使います。行動は必要ありません。 |
7 | Debug | debug | デバッグメッセージ。 | アプリケーションをデバッグするときに有用な開発者用の情報。作業中は無視してかまいません。 |