SlideShare a Scribd company logo

#logstudy 01 rsyslog入門

#logstudy 01 rsyslog入門

1 of 88
Download to read offline
2012-02-18 #logstudy 01 発表資料

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




私は誰
• 氏名: 滝澤 隆史 @ttkzw
• 所属: 株式会社ハートビーツ
 ▫ MSPやってます
• 何やっている人
 ▫ メーラMuttの国際化や日本語対応パッチ作者
 ▫ SpamAssassinの日本語対応パッチ作者
アジェンダ
• syslogの復習
• rsyslogの概要
• rsyslogの機能
#logstudy 01 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を使っている。
#logstudy 01 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
    小さな修正
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
設定ファイル
• 設定ファイル
 ▫ /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
#logstudy 01 rsyslog入門
グローバル ディレクティブ
• 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のポート番号を指定する。
#logstudy 01 rsyslog入門
テンプレート
• 定義したテンプレートをアクションに割り当て
  ることにより、出力するメッセージの形式を制
  御できる。
• テンプレートの定義
▫ $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
#logstudy 01 rsyslog入門
アウトプット チャネル
• アクションに対して様々な処理を行うことを目指し
  た機能。
• 現状ではファイルとファイルの最大サイズに対する
  処理しかできない。
• 例)ログのローテーション
▫ アウトプット チャネルの定義
  $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
#logstudy 01 rsyslog入門
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
#logstudy 01 rsyslog入門
フィルタ
• セレクターの代わりに、フィルタという機能が
  使える。
• メッセージが指定した条件に一致したときに、
  アクションを実行する
• フィルタの種類
▫ プロパティ ベース フィルタ
▫ 式ベース フィルタ
プロパティ ベース フィルタ
• プロパティが条件に一致するかで判断する
• 記述形式
▫ :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
#logstudy 01 rsyslog入門
アクション(従来)
アクションの形式            アクションの内容
/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
#logstudy 01 rsyslog入門
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
#logstudy 01 rsyslog入門
プラグイン モジュール
• プラグイン モジュールにより機能を拡張できる。
• パッケージシステムから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を使わない理由はない

Recommended

PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12Nobuto Murata
 

More Related Content

What's hot

Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンKentaro Yoshida
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較beyond Co., Ltd.
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...NTT DATA Technology & Innovation
 
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...NTT DATA Technology & Innovation
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NETterurou
 
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
 
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...NTT DATA Technology & Innovation
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceToru Makabe
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...NTT DATA Technology & Innovation
 
もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】
もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】
もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】WESEEKWESEEK
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌LINE Corporation
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 

What's hot (20)

Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
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
 
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
 
もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】
もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】
もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 

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環境
 
1MB
1MB1MB
1MB
 
BBBBB
BBBBBBBBBB
BBBBB
 
システムコール
システムコールシステムコール
システムコール
 
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
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動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
 

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の歩き方
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
#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の紹介
 

Recently uploaded

20240227_IoTLT_vol108____kitazaki_v1.pdf
20240227_IoTLT_vol108____kitazaki_v1.pdf20240227_IoTLT_vol108____kitazaki_v1.pdf
20240227_IoTLT_vol108____kitazaki_v1.pdfAyachika Kitazaki
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
00001_test_automation_portfolio_20240227
00001_test_automation_portfolio_2024022700001_test_automation_portfolio_20240227
00001_test_automation_portfolio_20240227ssuserf8ea02
 
20240227 完全に理解した LT 「mise いいよ mise」 / morishin
20240227 完全に理解した LT 「mise いいよ mise」 / morishin20240227 完全に理解した LT 「mise いいよ mise」 / morishin
20240227 完全に理解した LT 「mise いいよ mise」 / morishinMakoto Mori
 
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介FumieNakayama
 
BusTimeTable by Edge Runtime - 公共交通オープンデータ最前線2024 -
BusTimeTable by Edge Runtime - 公共交通オープンデータ最前線2024 -BusTimeTable by Edge Runtime - 公共交通オープンデータ最前線2024 -
BusTimeTable by Edge Runtime - 公共交通オープンデータ最前線2024 -yuutahatano
 

Recently uploaded (6)

20240227_IoTLT_vol108____kitazaki_v1.pdf
20240227_IoTLT_vol108____kitazaki_v1.pdf20240227_IoTLT_vol108____kitazaki_v1.pdf
20240227_IoTLT_vol108____kitazaki_v1.pdf
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
00001_test_automation_portfolio_20240227
00001_test_automation_portfolio_2024022700001_test_automation_portfolio_20240227
00001_test_automation_portfolio_20240227
 
20240227 完全に理解した LT 「mise いいよ mise」 / morishin
20240227 完全に理解した LT 「mise いいよ mise」 / morishin20240227 完全に理解した LT 「mise いいよ mise」 / morishin
20240227 完全に理解した LT 「mise いいよ mise」 / morishin
 
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
Kubernetes環境のアプリケーションバックアップソフトウェアKasten K10ご紹介
 
BusTimeTable by Edge Runtime - 公共交通オープンデータ最前線2024 -
BusTimeTable by Edge Runtime - 公共交通オープンデータ最前線2024 -BusTimeTable by Edge Runtime - 公共交通オープンデータ最前線2024 -
BusTimeTable by Edge Runtime - 公共交通オープンデータ最前線2024 -
 

#logstudy 01 rsyslog入門

  • 1. 2012-02-18 #logstudy 01 発表資料 rsyslog入門 株式会社ハートビーツ 滝澤 隆史
  • 2. 2 私は誰 • 氏名: 滝澤 隆史 @ttkzw • 所属: 株式会社ハートビーツ ▫ MSPやってます • 何やっている人 ▫ メーラMuttの国際化や日本語対応パッチ作者 ▫ SpamAssassinの日本語対応パッチ作者
  • 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を使っている。
  • 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  小さな修正
  • 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
  • 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のポート番号を指定する。
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 力する。