#logstudy 01 rsyslog入門

27,365 views
27,124 views

Published on

#logstudy 01 rsyslog入門

Published in: Technology
0 Comments
59 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
27,365
On SlideShare
0
From Embeds
0
Number of Embeds
1,869
Actions
Shares
0
Downloads
272
Comments
0
Likes
59
Embeds 0
No embeds

No notes for slide

#logstudy 01 rsyslog入門

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

×