Pocket

rsyslogのバージョンアップとデフォルト設定

  • add this entry to hatena bookmark

Unix系OSで昔から導入されているシスログデーモン「syslogd」に変わるシスログとして、CentOS6からは標準で「rsyslog」が導入されています。今更かもしれませんが、rsyslogについて少し掘り下げて調べてみたので、記録しておきます。

rsyslog の機能

rsyslogの「r」は「reliable(信頼できる)」から取っているようで、以下の機能が特筆されています。

  • UDPよりもプロトコル的に信頼性の高いTCPを利用可能
  • モジュール追加による機能拡張(メール送信やDBへのログ保存など)
  • テンプレートやマクロを利用したsyslogファイルの詳細な制御

rsyslog の稼働状況確認、バージョンアップ

私のCentOS6.2環境では、rsyslog 4.6.2 が導入されていました。

# rpm -qa |grep syslog
rsyslog-4.6.2-12.el6.x86_64
#
# rpm -qi rsyslog
Name        : rsyslog
(省略)
Version     : 4.6.2
(省略)
#
# /sbin/rsyslogd -v
rsyslogd <strong>4.6.2</strong>, compiled with:
        FEATURE_REGEXP:                         Yes
        FEATURE_LARGEFILE:                      No
        FEATURE_NETZIP (message compression):   Yes
        GSSAPI Kerberos 5 support:              Yes
        FEATURE_DEBUG (debug build, slow code): No
        Atomic operations supported:            Yes
        Runtime Instrumentation (slow code):    No

See http://www.rsyslog.com for more information.
#

プロセス状況は以下の状態でした。

# ps -awef|grep syslog | grep -v grep
root      1069     1  0 May04 ?        00:03:45 /sbin/rsyslogd -i /var/run/syslogd.pid -c 4
#

rpm で新しいバージョン「5.8.10」にバージョンアップが可能な状態でしたので、バージョンアップしました。

# yum info rsyslog
(省略)
<strong>Installed Packages</strong>
Name        : rsyslog
Arch        : x86_64
Version     : 4.6.2
(省略)
<strong>Available Packages</strong>
Name        : rsyslog
Arch        : x86_64
Version     : 5.8.10
(省略)
#
# yum update rsyslog
(省略)
Updated:
  rsyslog.x86_64 0:5.8.10-2.el6

Complete!
#

以上でアップデート処理が終わりました。
バージョンアップ結果として、以下の各種確認コマンドで、問題がない事を確認します。(表示結果は省略します。)

# rpm -qa | grep rsyslog
# yum info rsyslog
# ps -awef|grep rsyslog | grep -v grep
# /sbin/rsyslogd -v

念の為、再起動して問題ない事と、/var/log/messages も確認しておきます。(表示結果は省略します)

# ps -awef|grep syslog|grep -v grep
# /etc/init.d/rsyslog stop
# /etc/init.d/rsyslog start
# tail /var/log/messages
# ps -awef|grep syslog | grep -v grep

以上で、問題なくrsyslogをバージョンアップできた事が確認できました。

rsyslogのデフォルト設定

rsyslogの設定ファイルは、デフォルトでは「/etc/rsyslog.conf」になります。

MODULES

rsyslogはモジュールを利用する構成になっており、「$ModLoad」で指定されたモジュールをロードする事になります。

モジュールには「Input Modules」と「Output Modules」があります。

デフォルトでロードされているモジュールは「Input Modules」です。頭文字を取って「im***」というモジュール名になっているようです。デフォルトでは「OutputModules」は定義されていません。

  • imuxsock
    • unix sockets, including the system log socket
    • provides support for local system logging (e.g. via logger command)
    • この設定値は、どんな環境でも基本的に必要になる設定値になると思います。
  • imklog
    • kernel logging
    • Reads messages from the kernel log and submits them to the syslog engine.
    • provides kernel logging support (previously done by rklogd)
    • この設定値は、どんな環境でも基本的に必要になる設定値になると思います。
  • immark
    • デフォルトではコメントアウトされています。
    • support for mark messages
    • provides –MARK– message capability
  • imudp
    • デフォルトではコメントアウトされています。
    • 他ノードからのsyslogメッセージを受け付けない場合は不要な設定値です。
    • udp syslog message input
    • UDPではなくTCPを使う場合は、後述の「imtcp」を使います。
  • imtcp
    • デフォルトではコメントアウトされています。
    • 他ノードからのsyslogメッセージを受け付けない場合は不要な設定値です。
    • input plugin for tcp syslog
    • 他ノードからのsyslogメッセージを受け付ける際に、信頼性の高いTCPを利用したい際に利用します。TCPポート指定は「InputTCPServerRun」でポート番号を指定します。

GLOBAL DIRECTIVES

rsyslogで出力するメッセージでの timestampフォーマットや、「/etc/rsyslog.conf」以外の設定ファイルのインクルード設定が定義されています。

RULES

今までのsyslogと同じです。

設定ファイル「/etc/rsyslog.conf」のチェック

rsyslog.conf を編集した場合は、以下のコマンドで文法チェックが可能です。

# /sbin/rsyslogd -N 1 -c5

※ 「-c」の部分は、rsyslogバージョンを指定する形になります。

loggerコマンド

loggerコマンドを使って、rsyslogへのメッセージ送付が可能です。テスト用途などでも使えます。

以下がコマンド実行例です。

# logger -p user.info "TEST Message" (ファシリティ:user、プライオリティ:info を指定したテスト)
# logger -p mail.info "TEST Message" (ファシリティ:mail、プライオリティ:info を指定したテスト)

それぞれの実行結果の確認は、rsyslog.conf で設定されたファイルで「TEST Message」文字列が出力されている事を確認できれば良いです。

備考

デフォルトでは、今までのsyslogとほぼ同じ設定になっているかと思います。

rsyslogでは、デフォルト設定値以外に、様々な設定ができます。設定方法についての記載は、別の機会にしたいと思います。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。