SlideShare a Scribd company logo
1 of 88
Download to read offline
2012-02-18 #logstudy 01 発表資料

rsyslog入門
株式会社ハートビーツ 滝澤 隆史
2




私は誰
• 氏名: 滝澤 隆史 @ttkzw
• 所属: 株式会社ハートビーツ
 ▫ MSPやってます
• 何やっている人
 ▫ メーラMuttの国際化や日本語対応パッチ作者
 ▫ SpamAssassinの日本語対応パッチ作者
アジェンダ
• syslogの復習
• rsyslogの概要
• rsyslogの機能
syslogとは
• syslogはカーネルやアプリケーションから通知され
  たイベント メッセージをsyslogサーバに送り、ロ
  グファイルに記録する仕組み
• sendmailのログの仕組みとしてEric Allmanが
  syslogデーモンとプロトコルを作った。
• それが他のシステムでも使われて普及してデファク
  ト スタンダードになった。
• RFC 3164 "The BSD syslog Protocol"
 ▫ BSD syslogの実際の動作を後追いでまとめたもの
 ▫ "Standard"ではなく"Infomational"
syslogとは

               リレー
               (relay)

                                        記録
                                               ---
                                               --
                                               -


                         syslogサーバ           ログファイル
                          (collector)
             UNIXソケットあるいは
    装置
             UDPで一方的に送る。
  (device)
             通知確認はない。
syslogの流れ
           アプリケーション

syslog API経由で      <30>Feb 18 12:34:56 hostname prog[1234]: content
syslogメッセージ
を出力
                                設定ファイル /etc/syslog.conf

            syslogサーバ          *.info;mail.none;authpriv.none     /var/log/messages
                               authpriv.*                         /var/log/secure
                               mail.*                             /var/log/maillog
設定ファイルの                        mail.info                          /var/log/mailinfo
ルールに一致した           Feb 18 12:34:56 hostname prog[1234]: content
ファイルに記録
                 ログ
                ファイル
FacilityとSeverity
• syslogメッセージはメッセージのPriority(優先
  度)を示すために、FacilityとSeverityのコードを
  持つ
 ▫ コードはヘッダファイルsyslog.hを参照。
• Facility(ファシリティ)
 ▫ メッセージの種類を示す。
• Severity(重大度)
 ▫ メッセージの重大度を示す。
 ▫ OSによってはこれをPriorityと呼んでいることがある。
• syslog.conf
 ▫ facility.severityの形式で示す。
 ▫ 例) mail.info
Facility                    コード Facility        意味
コード Facility          意味
                                            セキュリティ/認証
 0   kern      カーネル メッセージ     10   authpriv
                                            (プライベート)
               ユーザー レベル
 1   user                     11   ftp      FTP
               メッセージ
 2   mail      メール            16   local0   ローカル利用のために予約

 3   daemon システム デーモン         17   local1   ローカル利用のために予約
               セキュリティ/
 4   auth                     18   local2   ローカル利用のために予約
               認証メッセージ
               syslogサーバーの
 5   syslog                   19   local3   ローカル利用のために予約
               内部生成メッセージ
 6   lpr       ラインプリンター       20   local4   ローカル利用のために予約

 7   news      ネット ニューズ       21   local5   ローカル利用のために予約

 8   uucp      UUCP           22   local6   ローカル利用のために予約

 9   cron      クロック デーモン      23   local7   ローカル利用のために予約
Severity
      コード Serverity          意味
       0   emerg      致命的。システムが利用不能。
       1   alert      警戒。すぐに行動しろ。
       2   crit       危機的
       3   err        エラー
       4   warning    警告
       5   notice     通知
       6   info       情報提供
       7   debug      デバッグ レベルのメッセージ。
syslogメッセージの構造
大項目        小項目         例                 説明
PRI                    <30>              Priority(Facility, Severity)※
HEADER     TIMESTAMP   Feb 18 12:34:56   タイムスタンプ
           HOSTNAME    hostname          ホスト名
MSG        TAG         prog              プログラム名やプロセス名
           CONTENT     [1234]: content   メッセージの内容

※PRIはFacilityのコードを8倍して、Severityのコードを加えた十進数の値
を<>で囲ったもの。deamon(3)とinfo(6)の場合は3×8+6で30となり、
PRIの値としては"<30>"となる

      <30>Feb 18 12:34:56 hostname prog[1234]: content
syslog.conf
• syslogdの設定ファイル
• syslogメッセージのfacilityとseverityに対応し
  た出力先のルールを設定する。

*.info;mail.none;authpriv.none   /var/log/messages
authpriv.*                       /var/log/secure
mail.*                           /var/log/maillog
mail.info                        /var/log/mailinfo
syslog.confの書き方
• ルールはセレクタとアクションから構成される。
 ▫   例)mail.info        /var/log/mailinfo
 ▫   "mail.info"がセレクタ
 ▫   "/var/log/mailinfo"がアクション
 ▫   セレクタとアクションの間はタブ文字で区切る。
• セレクタに一致したメッセージをアクションに示し
  た出力先に出力する。
• ルールに一致したからといって、そこで評価を停止
  することはない。以降のルールも評価する点に注意。
• "#"で始まる行と空行は無視される。
セレクタ
• facilityとseverityの組み合わせ
• facility.severityの形式で記述
 ▫ 例)mail.info
   facilityがmailで、severityがinfo以上のメッセージ
    に一致
• severityが同じであれば、facilityはカンマ区切
  りで複数記述できる。
 ▫ 例)auth,authpriv.none
セレクタ
• ";"に続けて複数を書くことができる。
▫ 例)auth.info;authpriv.info
アクション
アクションの形式            アクションの内容

/var/log/filename   指定したファイル名のファイルに出力する。

|fifoname           名前付きパイプに出力する。

/dev/devicename     端末やコンソールに出力する。

@hostname           別のホストへUDPでメッセージを転送する。

username1,username2,,,, ユーザーの端末にメッセージを表示する。
                    ログインしている全てのユーザーの端末に
*
                    メッセージを表示する。
従来のsyslogの問題点
• メッセージの転送に信頼性がない
 ▫ ネットワーク経由でメッセージを送信するときに
   はUDPを利用する。
 ▫ UDPではパケットの再送を行わなわないため,ロ
   グメッセージを取りこぼす可能性がある。
 ▫ UDPであるため、送信元を詐称した偽のメッセー
   ジでも受け取ってしまう。
従来のsyslogの問題点
• 暗号化できない
 ▫ メッセージは平文である。
 ▫ ネットワークパケットを盗聴することにより,そ
   の内容を盗み見ることが簡単にできる。
従来のsyslogの問題点
• セレクタの制御
 ▫ セレクタではFacilityとSeverityによる制御しかで
   きない。
 ▫ アプリケーション毎や送信元のホスト名毎などに
   よる制御はできない。
• ログのローテーション
 ▫ 自身ではログのローテーションができない。
従来のsyslogの問題点
• ディスクI/Oの処理が非効率
 ▫ ログファイルへの出力時にディスクに対して
   fsyncして確実にディスクに書き出そうとする。
 ▫ ログの出力頻度が非常に多い場合には,システム
   全体の性能が大幅に低下する。
 ▫ sysklogdの拡張機能として、アクションの先頭に
   "-"を付けて、非同期書き込みにすることもできる。
 ▫ 効率的に安全にディスクに書き出す機能が無い。
代替のsyslogデーモン
• syslog-ng
 ▫ 従来のsyslogサーバとの設定ファイルの互換性が
   ない。
• rsyslog
 ▫ sysklogdからフォークしたため、syslogサーバと
   の互換性をある程度維持しつつ、様々な拡張を
   行っている。
 ▫ 最新のLinuxディストリビューションの多くが
   rsyslogを使っている。
rsyslogとは
• メッセージ転送の信頼性を重視して様々な拡張
  を行っているオープンソースのsyslogサーバー
• メインの開発者はRainer Gerhards
• http://www.rsyslog.com/
rsyslogの特徴
• メッセージ転送の信頼性の向上
 ▫ TCP
   TCPによるsyslogメッセージの転送に対応
   TLSによる通信路の暗号化にも対応
 ▫ RELP
   RELP(Reliable Event Logging Protocol)に対応
 ▫ RFC 3195
   RFC 3195 "Reliable Delivery for syslog"の受信の
    み対応
   rawプロファイルには完全対応
   COOKEDプロファイルは実験ステータス
rsyslogの特徴
• ログファイルの扱いの改善
 ▫ 2GB以上のログファイルに対応
   ただし、OSの制限を超えるものではない
 ▫ ログのローテーションに対応
   ログファイルが指定したファイルサイズになったと
    きに、ログをローテーションできる
 ▫ 動的ファイル名に対応
   出力先のファイルのファイル名を動的に生成できる
    ため、日ごとにファイル名を変えることもできる。
rsyslogの特徴
• データベースへの出力
 ▫   MySQL
 ▫   PostgreSQL
 ▫   Oracle
 ▫   libdbi
• 多様な出力先
 ▫   メール
 ▫   プログラムへの標準入力
 ▫   SNMPトラップ
 ▫   HadoopのHDFS
rsyslogの特徴
• 出力するメッセージのカスタマイズ
 ▫ テンプレートにより出力内容をカスタマイズでき
   る。
 ▫ マイクロ秒の精度のタイムスタンプ。
• 柔軟なルールの記述
 ▫ フィルタにより、セレクタより細やかな条件を記
   述できる。
 ▫ 破棄できるアクションが追加。
rsyslogの特徴
• プラグイン モジュールによる機能拡張
 ▫ 上述の様々な機能拡張はプラグイン モジュールに
   より行われている。
 ▫ サードパーティ製のモジュールも作成可能。
rsyslogの歴史
• 2001年: sysklogd 1.4.1
 ▫ このリリース以降はほとんど保守されなくなった。
 ▫ 次のバージョン1.5.0は2007年にリリースされた。
• 2004年:
 ▫ Rainerがsysklogdの改良に取りかかる。
 ▫ sysklogdからフォークしてrsyslogプロジェクト
   となる。
 ▫ 信頼できるメッセージ転送を実装し、後方互換性
   を維持して、sysklogdをそのまま置き換えること
   目指した。
rsyslogの歴史
• 2005年: rsyslog 1.0.0
 ▫   後方互換性を維持
 ▫   TCPに対応
 ▫   MySQLへのログ出力に対応
 ▫   ログファイルサイズ2GB以上に対応
rsyslogの歴史
• 2008年: rsyslog 2.0.0 STABLE
 ▫ この頃から注目を集め始める
 ▫ フィルタ対応
    従来のセレクタでは書けなかった柔軟な条件が書け
     るようになった。
 ▫ 多様なアクションへの対応
    破棄
    コマンドの実行
rsyslogの歴史
• 2008年11月: rsyslog 3.20 [v3-stable]
 ▫ 現在のrsyslogと同じ構造になった。
    プラグイン モジュール化
     プラグイン モジュールにより機能を拡張できる。
 ▫ 後方互換性が一部失われている。
    設定ファイルの形式としてはディレクティブの記述
     が必要
    sysklogd由来のオプションは非推奨になった。
    ただし、後方互換モードのオプションあり
     rsyslogd -c0
rsyslogの現在
• v6
 ▫ rsyslog 6.3.7 (v6-devel)
 ▫ rsyslog 6.2.0 (v6-stable)
• v5
 ▫ rsyslog 5.9.5 (v5-devel)
 ▫ rsyslog 5.8.7 (v5-stable)
• v4
 ▫ rsyslog 4.8.0 (v4-stable)
バージョン番号の付け方
• majar.minor.patchlevel
 ▫ majar
    大きな変更があったときに増える
 ▫ minor
    偶数: 安定版(stable)
    奇数: 開発版(devel)
    奇数: ベータ版(beta)
     安定版にする前にbetaとする。
 ▫ patchlevel
    小さな修正
設定ファイル
• 設定ファイル
 ▫ /etc/rsyslog.conf
設定ファイルの構成
• 設定ファイルの構成
▫   グローバル ディレクティブ
▫   テンプレート
▫   アウトプット チャネル
▫   ルール
• 設定ファイル上の行から順番に評価される点に
  注意
▫ つまり、順番が意味を持つ
設定ファイルの挿入
• $IncludeConfigディレクティブにより別の設定
  ファイルの内容を読み込んでその位置に挿入す
  る。
• 利用目的の例
 ▫ ソフトウェア毎に設定ファイルを用意する。
• 記述方法
 ▫ $IncludeConfig ファイル名
 ▫ 例)
   $IncludeConfig /etc/rsyslog.d/*.conf
    /etc/rsyslog.d/*.confファイルを読み込む
設定ファイルの例(RHEL 6)
 /etc/rsyslog.conf
$ModLoad imuxsock.so
$ModLoad imklog.so
                       モジュールのロード
$ModLoad imudp.so                                              ディレクティブ
$UDPServerRun 514

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

*.info;mail.none;authpriv.none;cron.none   /var/log/messages
authpriv.*                                 /var/log/secure
mail.*                                     -/var/log/maillog
cron.*                                     /var/log/cron       ルール
*.emerg                                    *
uucp,news.crit                             /var/log/spooler
local7.*                                   /var/log/boot.log
設定ファイルの例(Ubuntu 11.10)
/etc/rsyslog.conf
$ModLoad imuxsock
$ModLoad imklog      モジュールのロード
$ModLoad imudp
$UDPServerRun 514

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$RepeatedMsgReduction on
                                                           ディレクティブ
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

$IncludeConfig /etc/rsyslog.d/*.conf
設定ファイルの例(Ubuntu 11.10)
/etc/rsyslog.d/50-default.conf
auth,authpriv.*              /var/log/auth.log
*.*;auth,authpriv.none       -/var/log/syslog
cron.*                       /var/log/cron.log
daemon.*                     -/var/log/daemon.log
kern.*                       -/var/log/kern.log
mail.*                       -/var/log/mail.log
mail.err                     /var/log/mail.err      ルール

*.emerg                      *

daemon.*;mail.*;¥
        news.err;¥
        *.=debug;*.=info;¥
        *.=notice;*.=warn    |/dev/xconsole
グローバル ディレクティブ
• rsyslogの動作に影響を与える設定を記述する
• 記述の形式
 ▫ 「ディレクティブ 設定値」
 ▫ 例)
   $ModLoad imudp.so
    imudpモジュールをロードする。
モジュールのロード
• $ModLoad モジュールのファイル名
 ▫ モジュールをロードし、その機能を有効にする。
• 例)
 ▫ $ModLoad imuxsock.so
   UNIXドメインソケットでのメッセージ受信の機能
    を有効にする。
 ▫ $ModLoad imklog.so
   カーネルロギングの機能を有効にする。
 ▫ $ModLoad immark.so
   "--MARK--"メッセージの出力機能を有効にする。
モジュールのロード
• モジュール特有のディレクティブはモジュールを
  ロードした後の行に記述する。
• 例1)
 ▫ $ModLoad imudp.so
   UDPでのメッセージ受信の機能を有効にする。
 ▫ $UDPServerRun 514
   UDPのポート番号を指定する。
• 例2)
 ▫ $ModLoad imtcp.so
   TCPでのメッセージ受信の機能を有効にする。
 ▫ $InputTCPServerRun 514
   TCPのポート番号を指定する。
テンプレート
• 定義したテンプレートをアクションに割り当て
  ることにより、出力するメッセージの形式を制
  御できる。
• テンプレートの定義
▫ $template テンプレート名,テンプレートの形式
• テンプレートの適応方法
▫ セレクタ   アクション;テンプレート名
テンプレート
• テンプレートの定義例
▫ $template TraditionalFormat,
  "%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%¥n"
   %で囲まれた文字列はプロパティであり、syslog
    メッセージの情報に置き換えられる。
       %TIMESTAMP% → タイムスタンプ
       %HOSTNAME% → ホスト名
       %syslogtag% → タグ
       %msg% → メッセージ
• テンプレートの利用例
▫ *.*      /var/log/trad.log;TraditionalFormat
テンプレートと動的ファイル名
• 出力先のファイル名をテンプレートで定義する
  ことで動的なファイル名のファイルにメッセー
  ジを出力する
• テンプレートの適応方法
▫ アクションに「?テンプレート名」を記述
• テンプレートの定義例
▫ $template DynFile,"/var/log/hosts/%HOSTNAME%.log"
• テンプレートの利用例
▫ *.*                          ?DynFile
参考)プロパティ
• プロパティへのアクセス方法
▫ %propname:fromChar:toChar:options%
  propnameはプロパティ名
  fromCharとtoCharは対象の文字列の範囲を示す。
   省略時は全て。
  optionsはオプション
参考)プロパティ
プロパティ                 説明
msg                   syslogメッセージ内の内容部
hostname              syslogメッセージ内のホスト名
syslogtag             syslogメッセージ内のタグ
programname           syslogメッセージ内のタグ(タグがprog[1234]のとき
                      はprog)。BSD syslogでの本来のタグ。
pri-text              PRI部のテキスト表現(facility.severity)
syslogfacility-text   facilityのテキスト表現
syslogseverity-text severityのテキスト表現
timegenerated         syslogメッセージの受信日時。高精度。
timereported,         syslogメッセージ内のタイムスタンプ。
timestamp
復習)syslogメッセージの構造
大項目        小項目         例                 説明
PRI                    <30>              Priority(Facility, Severity)※
HEADER     TIMESTAMP   Feb 18 12:34:56   タイムスタンプ
           HOSTNAME    hostname          ホスト名
MSG        TAG         prog              プログラム名やプロセス名
           CONTENT     [1234]: content   メッセージの内容

※PRIはFacilityのコードを8倍して、Severityのコードを加えた十進数の値
を<>で囲ったもの。deamon(3)とinfo(6)の場合は3×8+6で30となり、
PRIの値としては"<30>"となる

      <30>Feb 18 12:34:56 hostname prog[1234]: content
参考)プロパティのオプション
オプション             説明
drop-last-if      メッセージの最後のLFを落とす。
date-mysql        mysqlの日時の形式
date-rfc3164      古典的なsyslogの日時の形式
                  例)Jan 1 12:34:56
date-rfc3339      RFC 3339の日時の形式。高精度。
                  例)2012-01-23T12:34:56.123456+09:00
secpath-drop      スラッシュ"/"を落とす。動的ファイル名に用いる。
sedpath-replace   スラッシュ"/"を"_"に置換。動的ファイル名に用いる。
参考)タイムスタンプ
• タイムスタンプの形式
 ▫ RFC3164で定義されたタイプスタンプ
   Jan 1 12:34:56
   syslogの形式
   テンプレートのプロパティのオプション"date-rfc3164"
 ▫ 高精度のRFC3339形式のタイムスタンプ
   2012-01-23T12:34:56.123456+09:00
   rsyslogのデフォルト
   テンプレートのプロパティのオプション" date-rfc3339"
• タイムスタンプには2種類ある
 ▫ syslogメッセージ内のタイムスタンプ
   テンプレートのプロパティの"%timereported%"
   <30>Feb 18 12:34:56 hostname prog[1234]: content
 ▫ syslogメッセージを受信した日時
   テンプレートのプロパティの"%timegenerated%"
参考)タイムスタンプ
• テンプレートで定義
• デフォルトのテンプレートの変更
▫ $ActionFileDefaultTemplateディレクティブでデ
  フォルトのテンプレートを設定できる。
▫ 古い形式に戻す例
  $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
アウトプット チャネル
• アクションに対して様々な処理を行うことを目指し
  た機能。
• 現状ではファイルとファイルの最大サイズに対する
  処理しかできない。
• 例)ログのローテーション
▫ アウトプット チャネルの定義
  $outchannel log_rotation,/var/log/foo.log,
   10000000,/home/me/./log_rotation_script
▫ ルールの記述
  *.* :omfile:$log_rotation
▫ スクリプト: /home/me/log_rotation_script
  mv -f /var/log/foo.log /var/log/foo.log.1
sysklogd由来の拡張機能
• rsyslogはsysklogdをフォークしているので
  sysklogd由来の拡張機能はそのまま使える。
ルール
• 行末にバックスラッシュ"\"を記述すると複数
  行に分けて記述できる。
▫ 例)
  *.=info;*.=notice;*.=warn;¥
          auth,authpriv.none;¥
          cron,daemon.none;¥
          mail,news.none         -/var/log/messages
• セレクタとアクションの間の区切り文字にはタ
  ブ文字とスペースが使える。
セレクタ
• facilityに"*"を記述すると全てのfacilityに一致
  する
• severityに"none"を記述するとそのfacilityに一
  致しない。
• セレクタ内で右側に記述したものは左側を上書
  きする
 ▫ 例)*.info;mail.none;authpriv.none
 ▫ severityがinfoのメッセージ。
 ▫ ただし、facilityがmailとauthprivのものを除く。
セレクタ
• facility.=severityの形式で、severityに等しい
  メッセージのみに対してアクションを実施でき
  る。
• facility.!severityあるいはfacility.!=severityの
  形式で否定の意味を持つ。
アクション
• ファイル名の先頭に"-"を付けると非同期書き込
  みになる。
• 例)
▫ mail.*   -/var/log/maillog
フィルタ
• セレクターの代わりに、フィルタという機能が
  使える。
• メッセージが指定した条件に一致したときに、
  アクションを実行する
• フィルタの種類
▫ プロパティ ベース フィルタ
▫ 式ベース フィルタ
プロパティ ベース フィルタ
• プロパティが条件に一致するかで判断する
• 記述形式
▫ :property, [!]compare-operation, "value"
  property
    テンプレートのときに説明したプロパティ
  compare-operation
    比較演算子
  "value"
    比較対象の値
    「"」は「¥"」に、「¥」は「¥¥」にエスケープする。
プロパティ ベース フィルタ
- プロパティ -
プロパティ                 説明
msg                   syslogメッセージ内の内容部
hostname              syslogメッセージ内のホスト名
syslogtag             syslogメッセージ内のタグ
programname           syslogメッセージ内のタグ(タグがprog[1234]のとき
                      はprog)。BSD syslogでの本来のタグ。
pri-text              PRI部のテキスト表現(facility.severity)
syslogfacility-text   facilityのテキスト表現
syslogseverity-text severityのテキスト表現
timegenerated         syslogメッセージの受信日時。高精度。
timereported,         syslogメッセージ内のタイムスタンプ。
timestamp
プロパティ ベース フィルタ
- 比較演算子 -
比較演算子        説明
contains     プロパティに値が含まれているか確認する。
isempty      プロパティが空であるか確認する。
isequal      プロパティが値に等しいかを比較する。
startswith   プロパティが値で始まっているか確認する。
regex        POSIX BRE正規表現に対して比較する。
ereregex     POSIX ERE正規表現に対して比較する。
!            演算子の前につけて否定を意味する。
プロパティ ベース フィルタの例
• "error"という文字列を含んでいるsyslogメッ
  セージをerror.logに出力する。
 ▫ :msg, contains, "error" /var/log/error.log
式ベース フィルタ
• 複雑な条件式を記述できる。
 ▫ RainerScript
    http://www.rsyslog.com/doc/rainerscript.html
• 記述形式
 ▫ if expr then
    if
      フィルタの開始
    expr
      条件式
    then
      フィルタの終わり
      thenの後にアクションを記述する。
式ベース フィルタの条件式
• 条件式
 ▫ 括弧"()"内の式
 ▫ not, unary minus
 ▫ *, /, % (剰余)
 ▫ +, -, & (文字の結合)
 ▫ ==, !=, <>, <, >, <=, >=, contains
   (strings!), startswith (strings!)
 ▫ and
 ▫ or
式ベース フィルタの関数
• 関数
 ▫ getenv(str)
    文字列の環境変数を返す。
 ▫ strlen(str)
    文字列の長さを返す。
 ▫ tolower(str)
    文字列を小文字に変換して返す。
式ベース フィルタの例
• "error"という文字列を含んでいるsyslogメッ
  セージをerror.logに出力する。
 ▫ if $msg contains 'error' then /var/log/error.log
アクション(従来)
アクションの形式            アクションの内容
/var/log/filename   指定したファイル名のファイルに出力する。
|fifoname           名前付きパイプに出力する。
/dev/devicename     端末やコンソールに出力する。
@hostname           別のホストへUDPでメッセージを転送する。
username1,username2,,, ユーザーの端末にメッセージを表示する。
                    ログインしている全てのユーザーの端末にメッ
*                   セージを表示する。
アクション
アクションの形式                 アクションの内容
@@hostname               別のホストへTCPでメッセージを転送する。
:modname:params          出力モジュールにメッセージを出力する。
>dbhost,dbname,dbuser,
dbpassword               データベースにメッセージを出力する。
~                        メッセージを破棄する。
$channelname             出力チャネルにメッセージを出力する。
?filename                動的なファイル名のファイルに出力する。
^program_filename        サブシェルでプログラムを実行する。
アクション
• IPv6対応
 ▫ @[2001:db8:dead:beef::14]
 ▫ @@[2001:db8:dead:beef::14]
• ポート番号
 ▫   @192.0.2.1:10514
 ▫   @@192.0.2.1:10514
 ▫   @[2001:db8:dead:beef::14]:10514
 ▫   @@[2001:db8:dead:beef::14]:10514
アクション
• テンプレート
 ▫ アクションに「;テンプレート名」を付けると、
   メッセージの出力にテンプレートが適応される。
 ▫ 例)
  :ommysql:dbhost,dbname,user,password;dbtemplate
TCPとキューイング
  • TCPでsyslogメッセージを転送すると、TCPである
    ため、転送先のsyslogサーバのダウンを検知できる。
  • 転送先のサーバがダウンしたら、キューイングして、
    復活したら再送する。
  • 下記はRHEL6のrsyslog.confの例
$WorkDirectory /var/spool/rsyslog # where to place spool files
$ActionQueueFileName fwdRule1 # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList   # run asynchronously
$ActionResumeRetryCount -1    # infinite retries if host is down
*.* @@remote-host:514
プラグイン モジュール
• プラグイン モジュールにより機能を拡張できる。
• パッケージシステムからrsyslogをインストール
  したときには、全てのモジュールが提供されて
  いるわけではない点に注意。
• 入力系のインプット モジュールと出力系のアウ
  トプット モジュールをここで紹介する。
インプット モジュール
モジュール      説明                                  バージョン
imfile     テキストファイルをsyslogメッセージに変換する。
imrelp     RELPによるsyslogメッセージを受信する。
imudp      UDPでsyslogメッセージを受信する。
imtcp      TCPでsyslogメッセージを受信する。
           plain TCP syslog経由でsyslogメッセージを受信す 4.7.3,
imptcp
           る。                                 5.5.8
           Kerberos 5の暗号化と認証を使った保護された
imgssapi
           ネットワークでsyslogメッセージを受信する。
インプット モジュール
モジュール      説明                             バージョン
immark     マークメッセージ「--MARK--」を出力する。
imklog     カーネルログからメッセージを読む。
imuxsock   UNIXソケットでsyslogメッセージを受信する。
im3195     RFC 3195によるsyslogメッセージを受信する。
impstats   rsyslogの内部カウンタの定期的な統計情報を提供 5.7.0,
           する。                        6.1.1
アウトプット モジュール
モジュール       説明                           バージョン
omsnmp      SNMPトラップとしてsyslogメッセージを送信す
            る。
omstdout    標準出力にメッセージを出力する。             4.1.6
omrelp      信頼性のあるRELPプロトコルによるsyslogメッ
            セージを送信する。
omruleset   別のルールセットにメッセージをフォワードする。5.3.4
omgssapi    Kerberos 5の暗号化と認証を使った保護された
            ネットワークでsyslogメッセージを受信する。
ommysql     MySQLのデータベースに出力する。
ompgsql     PostgreSQLのデータベースに出力する。
omlibdbi    libdbi経由でデータベースに出力する。
アウトプット モジュール
モジュール        説明                          バージョン
ommail       メール経由でsyslogメッセージを送信する。     3.17.0
omprog       プログラムの標準入力にメッセージを出力する。 4.3.0
omoracle     Oracleのデータベースに出力する。         4.3.0
omudpspoof   偽装した送信アドレスでUDPでメッセージを送      5.1.3
             信する。
omuxsock     UNIXドメインソケットにメッセージを出力する。 4.7.3,
                                      5.5.7
omhdfs       HadoopのHDFS上のファイルにメッセージを出   5.7.1
             力する。
まとめ
• rsyslogを使わない理由はない

More Related Content

What's hot

Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallAtsushi Tanaka
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)Shinya Sugiyama
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月VirtualTech Japan Inc.
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
知っているようで知らないPAMのお話
知っているようで知らないPAMのお話知っているようで知らないPAMのお話
知っているようで知らないPAMのお話Serverworks Co.,Ltd.
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
 
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてTakuto Wada
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話NipponAlgorithm
 
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Masahito Zembutsu
 

What's hot (20)

Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
知っているようで知らないPAMのお話
知っているようで知らないPAMのお話知っているようで知らないPAMのお話
知っているようで知らないPAMのお話
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Nmapの真実(続)
Nmapの真実(続)Nmapの真実(続)
Nmapの真実(続)
 
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
 
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
 

Similar to #logstudy 01 rsyslog入門

MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説Shoken Fujisaki
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努Insight Technology, Inc.
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ Daisuke Ikeda
 
Postgre SQL security_20170412
Postgre SQL security_20170412Postgre SQL security_20170412
Postgre SQL security_20170412Kazuki Omo
 
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdmod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdTaisuke Yamada
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)inaz2
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会Shigeru Hanada
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境yut148atgmaildotcom
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
Cygwin 1.7 の紹介
Cygwin 1.7 の紹介Cygwin 1.7 の紹介
Cygwin 1.7 の紹介fd0
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかえむ ばーど
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめMikiya Okuno
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 
Postgre sql9.3 newlockmode_and_etc
Postgre sql9.3 newlockmode_and_etcPostgre sql9.3 newlockmode_and_etc
Postgre sql9.3 newlockmode_and_etckasaharatt
 

Similar to #logstudy 01 rsyslog入門 (20)

MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
 
Postgre SQL security_20170412
Postgre SQL security_20170412Postgre SQL security_20170412
Postgre SQL security_20170412
 
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdmod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 
BBBBB
BBBBBBBBBB
BBBBB
 
1MB
1MB1MB
1MB
 
システムコール
システムコールシステムコール
システムコール
 
SystemV IPC
SystemV IPCSystemV IPC
SystemV IPC
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
hbstudy#06
hbstudy#06hbstudy#06
hbstudy#06
 
Cygwin 1.7 の紹介
Cygwin 1.7 の紹介Cygwin 1.7 の紹介
Cygwin 1.7 の紹介
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
Postgre sql9.3 newlockmode_and_etc
Postgre sql9.3 newlockmode_and_etcPostgre sql9.3 newlockmode_and_etc
Postgre sql9.3 newlockmode_and_etc
 

More from Takashi Takizawa

DNS RFCの歩き方(短縮版)
DNS RFCの歩き方(短縮版)DNS RFCの歩き方(短縮版)
DNS RFCの歩き方(短縮版)Takashi Takizawa
 
サバフェス! 2015 Spring LT資料
サバフェス! 2015 Spring LT資料サバフェス! 2015 Spring LT資料
サバフェス! 2015 Spring LT資料Takashi Takizawa
 
BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)Takashi Takizawa
 
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)Takashi Takizawa
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Takashi Takizawa
 
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -Takashi Takizawa
 
#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)Takashi Takizawa
 
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)Takashi Takizawa
 
Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)Takashi Takizawa
 
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証Takashi Takizawa
 
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門Takashi Takizawa
 
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史Takashi Takizawa
 
#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介Takashi Takizawa
 
hbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassinhbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassinTakashi Takizawa
 

More from Takashi Takizawa (20)

DNS RFCの歩き方(短縮版)
DNS RFCの歩き方(短縮版)DNS RFCの歩き方(短縮版)
DNS RFCの歩き方(短縮版)
 
サバフェス! 2015 Spring LT資料
サバフェス! 2015 Spring LT資料サバフェス! 2015 Spring LT資料
サバフェス! 2015 Spring LT資料
 
BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)
 
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
 
nginx入門
nginx入門nginx入門
nginx入門
 
nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
 
RFCについての復習
RFCについての復習RFCについての復習
RFCについての復習
 
DNS RFC系統図
DNS RFC系統図DNS RFC系統図
DNS RFC系統図
 
DNSのRFCの歩き方
DNSのRFCの歩き方DNSのRFCの歩き方
DNSのRFCの歩き方
 
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -
 
#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)
 
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
 
Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)
 
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
 
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
 
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
 
DNS再入門
DNS再入門DNS再入門
DNS再入門
 
#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介
 
hbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassinhbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassin
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

#logstudy 01 rsyslog入門

  • 1. 2012-02-18 #logstudy 01 発表資料 rsyslog入門 株式会社ハートビーツ 滝澤 隆史
  • 2. 2 私は誰 • 氏名: 滝澤 隆史 @ttkzw • 所属: 株式会社ハートビーツ ▫ MSPやってます • 何やっている人 ▫ メーラMuttの国際化や日本語対応パッチ作者 ▫ SpamAssassinの日本語対応パッチ作者
  • 4.
  • 5. syslogとは • syslogはカーネルやアプリケーションから通知され たイベント メッセージをsyslogサーバに送り、ロ グファイルに記録する仕組み • sendmailのログの仕組みとしてEric Allmanが syslogデーモンとプロトコルを作った。 • それが他のシステムでも使われて普及してデファク ト スタンダードになった。 • RFC 3164 "The BSD syslog Protocol" ▫ BSD syslogの実際の動作を後追いでまとめたもの ▫ "Standard"ではなく"Infomational"
  • 6. syslogとは リレー (relay) 記録 --- -- - syslogサーバ ログファイル (collector) UNIXソケットあるいは 装置 UDPで一方的に送る。 (device) 通知確認はない。
  • 7. syslogの流れ アプリケーション syslog API経由で <30>Feb 18 12:34:56 hostname prog[1234]: content syslogメッセージ を出力 設定ファイル /etc/syslog.conf syslogサーバ *.info;mail.none;authpriv.none /var/log/messages authpriv.* /var/log/secure mail.* /var/log/maillog 設定ファイルの mail.info /var/log/mailinfo ルールに一致した Feb 18 12:34:56 hostname prog[1234]: content ファイルに記録 ログ ファイル
  • 8. FacilityとSeverity • syslogメッセージはメッセージのPriority(優先 度)を示すために、FacilityとSeverityのコードを 持つ ▫ コードはヘッダファイルsyslog.hを参照。 • Facility(ファシリティ) ▫ メッセージの種類を示す。 • Severity(重大度) ▫ メッセージの重大度を示す。 ▫ OSによってはこれをPriorityと呼んでいることがある。 • syslog.conf ▫ facility.severityの形式で示す。 ▫ 例) mail.info
  • 9. Facility コード Facility 意味 コード Facility 意味 セキュリティ/認証 0 kern カーネル メッセージ 10 authpriv (プライベート) ユーザー レベル 1 user 11 ftp FTP メッセージ 2 mail メール 16 local0 ローカル利用のために予約 3 daemon システム デーモン 17 local1 ローカル利用のために予約 セキュリティ/ 4 auth 18 local2 ローカル利用のために予約 認証メッセージ syslogサーバーの 5 syslog 19 local3 ローカル利用のために予約 内部生成メッセージ 6 lpr ラインプリンター 20 local4 ローカル利用のために予約 7 news ネット ニューズ 21 local5 ローカル利用のために予約 8 uucp UUCP 22 local6 ローカル利用のために予約 9 cron クロック デーモン 23 local7 ローカル利用のために予約
  • 10. Severity コード Serverity 意味 0 emerg 致命的。システムが利用不能。 1 alert 警戒。すぐに行動しろ。 2 crit 危機的 3 err エラー 4 warning 警告 5 notice 通知 6 info 情報提供 7 debug デバッグ レベルのメッセージ。
  • 11. syslogメッセージの構造 大項目 小項目 例 説明 PRI <30> Priority(Facility, Severity)※ HEADER TIMESTAMP Feb 18 12:34:56 タイムスタンプ HOSTNAME hostname ホスト名 MSG TAG prog プログラム名やプロセス名 CONTENT [1234]: content メッセージの内容 ※PRIはFacilityのコードを8倍して、Severityのコードを加えた十進数の値 を<>で囲ったもの。deamon(3)とinfo(6)の場合は3×8+6で30となり、 PRIの値としては"<30>"となる <30>Feb 18 12:34:56 hostname prog[1234]: content
  • 12. syslog.conf • syslogdの設定ファイル • syslogメッセージのfacilityとseverityに対応し た出力先のルールを設定する。 *.info;mail.none;authpriv.none /var/log/messages authpriv.* /var/log/secure mail.* /var/log/maillog mail.info /var/log/mailinfo
  • 13. syslog.confの書き方 • ルールはセレクタとアクションから構成される。 ▫ 例)mail.info /var/log/mailinfo ▫ "mail.info"がセレクタ ▫ "/var/log/mailinfo"がアクション ▫ セレクタとアクションの間はタブ文字で区切る。 • セレクタに一致したメッセージをアクションに示し た出力先に出力する。 • ルールに一致したからといって、そこで評価を停止 することはない。以降のルールも評価する点に注意。 • "#"で始まる行と空行は無視される。
  • 14. セレクタ • facilityとseverityの組み合わせ • facility.severityの形式で記述 ▫ 例)mail.info  facilityがmailで、severityがinfo以上のメッセージ に一致 • severityが同じであれば、facilityはカンマ区切 りで複数記述できる。 ▫ 例)auth,authpriv.none
  • 16. アクション アクションの形式 アクションの内容 /var/log/filename 指定したファイル名のファイルに出力する。 |fifoname 名前付きパイプに出力する。 /dev/devicename 端末やコンソールに出力する。 @hostname 別のホストへUDPでメッセージを転送する。 username1,username2,,,, ユーザーの端末にメッセージを表示する。 ログインしている全てのユーザーの端末に * メッセージを表示する。
  • 17. 従来のsyslogの問題点 • メッセージの転送に信頼性がない ▫ ネットワーク経由でメッセージを送信するときに はUDPを利用する。 ▫ UDPではパケットの再送を行わなわないため,ロ グメッセージを取りこぼす可能性がある。 ▫ UDPであるため、送信元を詐称した偽のメッセー ジでも受け取ってしまう。
  • 18. 従来のsyslogの問題点 • 暗号化できない ▫ メッセージは平文である。 ▫ ネットワークパケットを盗聴することにより,そ の内容を盗み見ることが簡単にできる。
  • 19. 従来のsyslogの問題点 • セレクタの制御 ▫ セレクタではFacilityとSeverityによる制御しかで きない。 ▫ アプリケーション毎や送信元のホスト名毎などに よる制御はできない。 • ログのローテーション ▫ 自身ではログのローテーションができない。
  • 20. 従来のsyslogの問題点 • ディスクI/Oの処理が非効率 ▫ ログファイルへの出力時にディスクに対して fsyncして確実にディスクに書き出そうとする。 ▫ ログの出力頻度が非常に多い場合には,システム 全体の性能が大幅に低下する。 ▫ sysklogdの拡張機能として、アクションの先頭に "-"を付けて、非同期書き込みにすることもできる。 ▫ 効率的に安全にディスクに書き出す機能が無い。
  • 21. 代替のsyslogデーモン • syslog-ng ▫ 従来のsyslogサーバとの設定ファイルの互換性が ない。 • rsyslog ▫ sysklogdからフォークしたため、syslogサーバと の互換性をある程度維持しつつ、様々な拡張を 行っている。 ▫ 最新のLinuxディストリビューションの多くが rsyslogを使っている。
  • 22.
  • 23. rsyslogとは • メッセージ転送の信頼性を重視して様々な拡張 を行っているオープンソースのsyslogサーバー • メインの開発者はRainer Gerhards • http://www.rsyslog.com/
  • 24. rsyslogの特徴 • メッセージ転送の信頼性の向上 ▫ TCP  TCPによるsyslogメッセージの転送に対応  TLSによる通信路の暗号化にも対応 ▫ RELP  RELP(Reliable Event Logging Protocol)に対応 ▫ RFC 3195  RFC 3195 "Reliable Delivery for syslog"の受信の み対応  rawプロファイルには完全対応  COOKEDプロファイルは実験ステータス
  • 25. rsyslogの特徴 • ログファイルの扱いの改善 ▫ 2GB以上のログファイルに対応  ただし、OSの制限を超えるものではない ▫ ログのローテーションに対応  ログファイルが指定したファイルサイズになったと きに、ログをローテーションできる ▫ 動的ファイル名に対応  出力先のファイルのファイル名を動的に生成できる ため、日ごとにファイル名を変えることもできる。
  • 26. rsyslogの特徴 • データベースへの出力 ▫ MySQL ▫ PostgreSQL ▫ Oracle ▫ libdbi • 多様な出力先 ▫ メール ▫ プログラムへの標準入力 ▫ SNMPトラップ ▫ HadoopのHDFS
  • 27. rsyslogの特徴 • 出力するメッセージのカスタマイズ ▫ テンプレートにより出力内容をカスタマイズでき る。 ▫ マイクロ秒の精度のタイムスタンプ。 • 柔軟なルールの記述 ▫ フィルタにより、セレクタより細やかな条件を記 述できる。 ▫ 破棄できるアクションが追加。
  • 28. rsyslogの特徴 • プラグイン モジュールによる機能拡張 ▫ 上述の様々な機能拡張はプラグイン モジュールに より行われている。 ▫ サードパーティ製のモジュールも作成可能。
  • 29. rsyslogの歴史 • 2001年: sysklogd 1.4.1 ▫ このリリース以降はほとんど保守されなくなった。 ▫ 次のバージョン1.5.0は2007年にリリースされた。 • 2004年: ▫ Rainerがsysklogdの改良に取りかかる。 ▫ sysklogdからフォークしてrsyslogプロジェクト となる。 ▫ 信頼できるメッセージ転送を実装し、後方互換性 を維持して、sysklogdをそのまま置き換えること 目指した。
  • 30. rsyslogの歴史 • 2005年: rsyslog 1.0.0 ▫ 後方互換性を維持 ▫ TCPに対応 ▫ MySQLへのログ出力に対応 ▫ ログファイルサイズ2GB以上に対応
  • 31. rsyslogの歴史 • 2008年: rsyslog 2.0.0 STABLE ▫ この頃から注目を集め始める ▫ フィルタ対応  従来のセレクタでは書けなかった柔軟な条件が書け るようになった。 ▫ 多様なアクションへの対応  破棄  コマンドの実行
  • 32. rsyslogの歴史 • 2008年11月: rsyslog 3.20 [v3-stable] ▫ 現在のrsyslogと同じ構造になった。  プラグイン モジュール化  プラグイン モジュールにより機能を拡張できる。 ▫ 後方互換性が一部失われている。  設定ファイルの形式としてはディレクティブの記述 が必要  sysklogd由来のオプションは非推奨になった。  ただし、後方互換モードのオプションあり  rsyslogd -c0
  • 33. rsyslogの現在 • v6 ▫ rsyslog 6.3.7 (v6-devel) ▫ rsyslog 6.2.0 (v6-stable) • v5 ▫ rsyslog 5.9.5 (v5-devel) ▫ rsyslog 5.8.7 (v5-stable) • v4 ▫ rsyslog 4.8.0 (v4-stable)
  • 34. バージョン番号の付け方 • majar.minor.patchlevel ▫ majar  大きな変更があったときに増える ▫ minor  偶数: 安定版(stable)  奇数: 開発版(devel)  奇数: ベータ版(beta)  安定版にする前にbetaとする。 ▫ patchlevel  小さな修正
  • 35.
  • 36.
  • 38. 設定ファイルの構成 • 設定ファイルの構成 ▫ グローバル ディレクティブ ▫ テンプレート ▫ アウトプット チャネル ▫ ルール • 設定ファイル上の行から順番に評価される点に 注意 ▫ つまり、順番が意味を持つ
  • 39. 設定ファイルの挿入 • $IncludeConfigディレクティブにより別の設定 ファイルの内容を読み込んでその位置に挿入す る。 • 利用目的の例 ▫ ソフトウェア毎に設定ファイルを用意する。 • 記述方法 ▫ $IncludeConfig ファイル名 ▫ 例)  $IncludeConfig /etc/rsyslog.d/*.conf  /etc/rsyslog.d/*.confファイルを読み込む
  • 40. 設定ファイルの例(RHEL 6) /etc/rsyslog.conf $ModLoad imuxsock.so $ModLoad imklog.so モジュールのロード $ModLoad imudp.so ディレクティブ $UDPServerRun 514 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron ルール *.emerg * uucp,news.crit /var/log/spooler local7.* /var/log/boot.log
  • 41. 設定ファイルの例(Ubuntu 11.10) /etc/rsyslog.conf $ModLoad imuxsock $ModLoad imklog モジュールのロード $ModLoad imudp $UDPServerRun 514 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $RepeatedMsgReduction on ディレクティブ $FileOwner syslog $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $PrivDropToUser syslog $PrivDropToGroup syslog $IncludeConfig /etc/rsyslog.d/*.conf
  • 42. 設定ファイルの例(Ubuntu 11.10) /etc/rsyslog.d/50-default.conf auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog cron.* /var/log/cron.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log mail.* -/var/log/mail.log mail.err /var/log/mail.err ルール *.emerg * daemon.*;mail.*;¥ news.err;¥ *.=debug;*.=info;¥ *.=notice;*.=warn |/dev/xconsole
  • 43.
  • 44. グローバル ディレクティブ • rsyslogの動作に影響を与える設定を記述する • 記述の形式 ▫ 「ディレクティブ 設定値」 ▫ 例)  $ModLoad imudp.so  imudpモジュールをロードする。
  • 45. モジュールのロード • $ModLoad モジュールのファイル名 ▫ モジュールをロードし、その機能を有効にする。 • 例) ▫ $ModLoad imuxsock.so  UNIXドメインソケットでのメッセージ受信の機能 を有効にする。 ▫ $ModLoad imklog.so  カーネルロギングの機能を有効にする。 ▫ $ModLoad immark.so  "--MARK--"メッセージの出力機能を有効にする。
  • 46. モジュールのロード • モジュール特有のディレクティブはモジュールを ロードした後の行に記述する。 • 例1) ▫ $ModLoad imudp.so  UDPでのメッセージ受信の機能を有効にする。 ▫ $UDPServerRun 514  UDPのポート番号を指定する。 • 例2) ▫ $ModLoad imtcp.so  TCPでのメッセージ受信の機能を有効にする。 ▫ $InputTCPServerRun 514  TCPのポート番号を指定する。
  • 47.
  • 48. テンプレート • 定義したテンプレートをアクションに割り当て ることにより、出力するメッセージの形式を制 御できる。 • テンプレートの定義 ▫ $template テンプレート名,テンプレートの形式 • テンプレートの適応方法 ▫ セレクタ アクション;テンプレート名
  • 49. テンプレート • テンプレートの定義例 ▫ $template TraditionalFormat, "%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%¥n"  %で囲まれた文字列はプロパティであり、syslog メッセージの情報に置き換えられる。  %TIMESTAMP% → タイムスタンプ  %HOSTNAME% → ホスト名  %syslogtag% → タグ  %msg% → メッセージ • テンプレートの利用例 ▫ *.* /var/log/trad.log;TraditionalFormat
  • 50. テンプレートと動的ファイル名 • 出力先のファイル名をテンプレートで定義する ことで動的なファイル名のファイルにメッセー ジを出力する • テンプレートの適応方法 ▫ アクションに「?テンプレート名」を記述 • テンプレートの定義例 ▫ $template DynFile,"/var/log/hosts/%HOSTNAME%.log" • テンプレートの利用例 ▫ *.* ?DynFile
  • 51. 参考)プロパティ • プロパティへのアクセス方法 ▫ %propname:fromChar:toChar:options%  propnameはプロパティ名  fromCharとtoCharは対象の文字列の範囲を示す。 省略時は全て。  optionsはオプション
  • 52. 参考)プロパティ プロパティ 説明 msg syslogメッセージ内の内容部 hostname syslogメッセージ内のホスト名 syslogtag syslogメッセージ内のタグ programname syslogメッセージ内のタグ(タグがprog[1234]のとき はprog)。BSD syslogでの本来のタグ。 pri-text PRI部のテキスト表現(facility.severity) syslogfacility-text facilityのテキスト表現 syslogseverity-text severityのテキスト表現 timegenerated syslogメッセージの受信日時。高精度。 timereported, syslogメッセージ内のタイムスタンプ。 timestamp
  • 53. 復習)syslogメッセージの構造 大項目 小項目 例 説明 PRI <30> Priority(Facility, Severity)※ HEADER TIMESTAMP Feb 18 12:34:56 タイムスタンプ HOSTNAME hostname ホスト名 MSG TAG prog プログラム名やプロセス名 CONTENT [1234]: content メッセージの内容 ※PRIはFacilityのコードを8倍して、Severityのコードを加えた十進数の値 を<>で囲ったもの。deamon(3)とinfo(6)の場合は3×8+6で30となり、 PRIの値としては"<30>"となる <30>Feb 18 12:34:56 hostname prog[1234]: content
  • 54. 参考)プロパティのオプション オプション 説明 drop-last-if メッセージの最後のLFを落とす。 date-mysql mysqlの日時の形式 date-rfc3164 古典的なsyslogの日時の形式 例)Jan 1 12:34:56 date-rfc3339 RFC 3339の日時の形式。高精度。 例)2012-01-23T12:34:56.123456+09:00 secpath-drop スラッシュ"/"を落とす。動的ファイル名に用いる。 sedpath-replace スラッシュ"/"を"_"に置換。動的ファイル名に用いる。
  • 55. 参考)タイムスタンプ • タイムスタンプの形式 ▫ RFC3164で定義されたタイプスタンプ  Jan 1 12:34:56  syslogの形式  テンプレートのプロパティのオプション"date-rfc3164" ▫ 高精度のRFC3339形式のタイムスタンプ  2012-01-23T12:34:56.123456+09:00  rsyslogのデフォルト  テンプレートのプロパティのオプション" date-rfc3339" • タイムスタンプには2種類ある ▫ syslogメッセージ内のタイムスタンプ  テンプレートのプロパティの"%timereported%"  <30>Feb 18 12:34:56 hostname prog[1234]: content ▫ syslogメッセージを受信した日時  テンプレートのプロパティの"%timegenerated%"
  • 56. 参考)タイムスタンプ • テンプレートで定義 • デフォルトのテンプレートの変更 ▫ $ActionFileDefaultTemplateディレクティブでデ フォルトのテンプレートを設定できる。 ▫ 古い形式に戻す例  $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
  • 57.
  • 58. アウトプット チャネル • アクションに対して様々な処理を行うことを目指し た機能。 • 現状ではファイルとファイルの最大サイズに対する 処理しかできない。 • 例)ログのローテーション ▫ アウトプット チャネルの定義  $outchannel log_rotation,/var/log/foo.log, 10000000,/home/me/./log_rotation_script ▫ ルールの記述  *.* :omfile:$log_rotation ▫ スクリプト: /home/me/log_rotation_script  mv -f /var/log/foo.log /var/log/foo.log.1
  • 59.
  • 60. sysklogd由来の拡張機能 • rsyslogはsysklogdをフォークしているので sysklogd由来の拡張機能はそのまま使える。
  • 61. ルール • 行末にバックスラッシュ"\"を記述すると複数 行に分けて記述できる。 ▫ 例)  *.=info;*.=notice;*.=warn;¥ auth,authpriv.none;¥ cron,daemon.none;¥ mail,news.none -/var/log/messages • セレクタとアクションの間の区切り文字にはタ ブ文字とスペースが使える。
  • 62. セレクタ • facilityに"*"を記述すると全てのfacilityに一致 する • severityに"none"を記述するとそのfacilityに一 致しない。 • セレクタ内で右側に記述したものは左側を上書 きする ▫ 例)*.info;mail.none;authpriv.none ▫ severityがinfoのメッセージ。 ▫ ただし、facilityがmailとauthprivのものを除く。
  • 63. セレクタ • facility.=severityの形式で、severityに等しい メッセージのみに対してアクションを実施でき る。 • facility.!severityあるいはfacility.!=severityの 形式で否定の意味を持つ。
  • 64. アクション • ファイル名の先頭に"-"を付けると非同期書き込 みになる。 • 例) ▫ mail.* -/var/log/maillog
  • 65.
  • 66. フィルタ • セレクターの代わりに、フィルタという機能が 使える。 • メッセージが指定した条件に一致したときに、 アクションを実行する • フィルタの種類 ▫ プロパティ ベース フィルタ ▫ 式ベース フィルタ
  • 67. プロパティ ベース フィルタ • プロパティが条件に一致するかで判断する • 記述形式 ▫ :property, [!]compare-operation, "value"  property  テンプレートのときに説明したプロパティ  compare-operation  比較演算子  "value"  比較対象の値  「"」は「¥"」に、「¥」は「¥¥」にエスケープする。
  • 68. プロパティ ベース フィルタ - プロパティ - プロパティ 説明 msg syslogメッセージ内の内容部 hostname syslogメッセージ内のホスト名 syslogtag syslogメッセージ内のタグ programname syslogメッセージ内のタグ(タグがprog[1234]のとき はprog)。BSD syslogでの本来のタグ。 pri-text PRI部のテキスト表現(facility.severity) syslogfacility-text facilityのテキスト表現 syslogseverity-text severityのテキスト表現 timegenerated syslogメッセージの受信日時。高精度。 timereported, syslogメッセージ内のタイムスタンプ。 timestamp
  • 69. プロパティ ベース フィルタ - 比較演算子 - 比較演算子 説明 contains プロパティに値が含まれているか確認する。 isempty プロパティが空であるか確認する。 isequal プロパティが値に等しいかを比較する。 startswith プロパティが値で始まっているか確認する。 regex POSIX BRE正規表現に対して比較する。 ereregex POSIX ERE正規表現に対して比較する。 ! 演算子の前につけて否定を意味する。
  • 70. プロパティ ベース フィルタの例 • "error"という文字列を含んでいるsyslogメッ セージをerror.logに出力する。 ▫ :msg, contains, "error" /var/log/error.log
  • 71. 式ベース フィルタ • 複雑な条件式を記述できる。 ▫ RainerScript  http://www.rsyslog.com/doc/rainerscript.html • 記述形式 ▫ if expr then  if  フィルタの開始  expr  条件式  then  フィルタの終わり  thenの後にアクションを記述する。
  • 72. 式ベース フィルタの条件式 • 条件式 ▫ 括弧"()"内の式 ▫ not, unary minus ▫ *, /, % (剰余) ▫ +, -, & (文字の結合) ▫ ==, !=, <>, <, >, <=, >=, contains (strings!), startswith (strings!) ▫ and ▫ or
  • 73. 式ベース フィルタの関数 • 関数 ▫ getenv(str)  文字列の環境変数を返す。 ▫ strlen(str)  文字列の長さを返す。 ▫ tolower(str)  文字列を小文字に変換して返す。
  • 74. 式ベース フィルタの例 • "error"という文字列を含んでいるsyslogメッ セージをerror.logに出力する。 ▫ if $msg contains 'error' then /var/log/error.log
  • 75.
  • 76. アクション(従来) アクションの形式 アクションの内容 /var/log/filename 指定したファイル名のファイルに出力する。 |fifoname 名前付きパイプに出力する。 /dev/devicename 端末やコンソールに出力する。 @hostname 別のホストへUDPでメッセージを転送する。 username1,username2,,, ユーザーの端末にメッセージを表示する。 ログインしている全てのユーザーの端末にメッ * セージを表示する。
  • 77. アクション アクションの形式 アクションの内容 @@hostname 別のホストへTCPでメッセージを転送する。 :modname:params 出力モジュールにメッセージを出力する。 >dbhost,dbname,dbuser, dbpassword データベースにメッセージを出力する。 ~ メッセージを破棄する。 $channelname 出力チャネルにメッセージを出力する。 ?filename 動的なファイル名のファイルに出力する。 ^program_filename サブシェルでプログラムを実行する。
  • 78. アクション • IPv6対応 ▫ @[2001:db8:dead:beef::14] ▫ @@[2001:db8:dead:beef::14] • ポート番号 ▫ @192.0.2.1:10514 ▫ @@192.0.2.1:10514 ▫ @[2001:db8:dead:beef::14]:10514 ▫ @@[2001:db8:dead:beef::14]:10514
  • 79. アクション • テンプレート ▫ アクションに「;テンプレート名」を付けると、 メッセージの出力にテンプレートが適応される。 ▫ 例)  :ommysql:dbhost,dbname,user,password;dbtemplate
  • 80.
  • 81. TCPとキューイング • TCPでsyslogメッセージを転送すると、TCPである ため、転送先のsyslogサーバのダウンを検知できる。 • 転送先のサーバがダウンしたら、キューイングして、 復活したら再送する。 • 下記はRHEL6のrsyslog.confの例 $WorkDirectory /var/spool/rsyslog # where to place spool files $ActionQueueFileName fwdRule1 # unique name prefix for spool files $ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) $ActionQueueSaveOnShutdown on # save messages to disk on shutdown $ActionQueueType LinkedList # run asynchronously $ActionResumeRetryCount -1 # infinite retries if host is down *.* @@remote-host:514
  • 82.
  • 83. プラグイン モジュール • プラグイン モジュールにより機能を拡張できる。 • パッケージシステムからrsyslogをインストール したときには、全てのモジュールが提供されて いるわけではない点に注意。 • 入力系のインプット モジュールと出力系のアウ トプット モジュールをここで紹介する。
  • 84. インプット モジュール モジュール 説明 バージョン imfile テキストファイルをsyslogメッセージに変換する。 imrelp RELPによるsyslogメッセージを受信する。 imudp UDPでsyslogメッセージを受信する。 imtcp TCPでsyslogメッセージを受信する。 plain TCP syslog経由でsyslogメッセージを受信す 4.7.3, imptcp る。 5.5.8 Kerberos 5の暗号化と認証を使った保護された imgssapi ネットワークでsyslogメッセージを受信する。
  • 85. インプット モジュール モジュール 説明 バージョン immark マークメッセージ「--MARK--」を出力する。 imklog カーネルログからメッセージを読む。 imuxsock UNIXソケットでsyslogメッセージを受信する。 im3195 RFC 3195によるsyslogメッセージを受信する。 impstats rsyslogの内部カウンタの定期的な統計情報を提供 5.7.0, する。 6.1.1
  • 86. アウトプット モジュール モジュール 説明 バージョン omsnmp SNMPトラップとしてsyslogメッセージを送信す る。 omstdout 標準出力にメッセージを出力する。 4.1.6 omrelp 信頼性のあるRELPプロトコルによるsyslogメッ セージを送信する。 omruleset 別のルールセットにメッセージをフォワードする。5.3.4 omgssapi Kerberos 5の暗号化と認証を使った保護された ネットワークでsyslogメッセージを受信する。 ommysql MySQLのデータベースに出力する。 ompgsql PostgreSQLのデータベースに出力する。 omlibdbi libdbi経由でデータベースに出力する。
  • 87. アウトプット モジュール モジュール 説明 バージョン ommail メール経由でsyslogメッセージを送信する。 3.17.0 omprog プログラムの標準入力にメッセージを出力する。 4.3.0 omoracle Oracleのデータベースに出力する。 4.3.0 omudpspoof 偽装した送信アドレスでUDPでメッセージを送 5.1.3 信する。 omuxsock UNIXドメインソケットにメッセージを出力する。 4.7.3, 5.5.7 omhdfs HadoopのHDFS上のファイルにメッセージを出 5.7.1 力する。