SAPシステムのシステムログ情報監視定義ファイルのサンプルファイル(fluentd_sap_syslog_tail.conf)
形式
「テキスト形式のログファイルの監視定義ファイル(fluentd_@@trapname@@_tail.conf.template)」の形式と同様です。
次に示す条件でテキスト形式のログファイルの監視機能を使用して,SAPシステムのシステムログ情報を監視する場合の定義例を,サンプルファイルとして提供します。
■条件
-
監視対象のログファイル
-
SAPシステムのシステムログ情報を抽出するコマンドのログファイルを監視します。
-
コマンド実行環境の言語設定は日本語で,文字コードはSJISです。監視対象のログファイルの文字コードがSJISでない場合,[Input Settings]のfrom_encodingで指定する文字コードを変更してください(Linux環境で動作させる場合,指定する文字コードをUTF-8に変更する必要があります)。
-
-
監視名
「sap_syslog」とします。
-
ログメッセージの例
システムログのメッセージレコードにデフォルトのレイアウトで出力されたログを監視します。
デフォルトのレイアウトは次のとおりです。コマンドの抽出可能なフィールドと仕様については,「jr3slget」を参照してください。
<TIME><INSTANCE><USER><PROGRAM><MSGNO><MSGTEXT>
出力されるログメッセージの例は次のとおりです。
13:58:04o246bci_SD5_00 SAPSYS SAPMSSY1D01トランザクション取消済 00 152 ( ) (中略)
注 <MSGTEXT>の長さは255バイトです。
上記のログメッセージをフィールドごとに構造化すると,次のようになります。
フィールドID
フィールド
値
<TIME>
メッセージ記録時刻
13:58:04
<INSTANCE>
メッセージを記録したサーバ
o246bci_SD5_00
<USER>
メッセージを記録したユーザー
SAPSYS
<PROGRAM>
メッセージを記録したプログラム
SAPMSSY1
<MSGNO>
メッセージ番号
D01
<MSGTEXT>
メッセージテキスト
トランザクション取消済 00 152 ( )
-
監視するログメッセージ
すべてのログを監視します。システムログのメッセージレコードをフィールドごとに切り出し,それぞれをJP1イベントの属性として設定します。各フィールドと正規表現の名前付きキャプチャ機能で切り出す際の名前,およびJP1イベントの拡張属性の対応関係は,次のとおりです。
フィールドID
正規表現で
切り出す際の名前
JP1イベントの属性
設定する内容
<TIME>
sap_time
指定しません。
−
<INSTANCE>
instance
<USER>
user
<PROGRAM>
program
<MSGNO>
msgno
<MSGTEXT>
message
MESSAGE
フィールドの値をそのまま格納します。
(凡例)−:該当なし
-
SEVERITYに設定する値
「Notice」を設定します。
-
JP1イベントに変換するログデータ
SEVERITYの値が「Warning」以上の場合にマッチします。SEVERITYに「Notice」を指定しているため,JP1イベントは発行されず,Fluentdのログにだけ出力されます。
-
IM管理ノードのラベル名
SAP Syslog
■定義例
<worker 0> ## [Metric Settings] <source> @type exec command "echo {}" <parse> @type json </parse> run_interval 60s tag jpc_ima_metrics.tail.sap_syslog </source> <filter jpc_ima_metrics.tail.sap_syslog> @type record_transformer enable_ruby true auto_typecast false <record> __name__ fluentd_logtrap_running instance @@sap_instancename@@ jp1_pc_nodelabel SAP Syslog jp1_pc_category enterprise jp1_pc_logtrap_defname sap_syslog_tail jp1_pc_trendname fluentd job jpc_fluentd jp1_pc_nodelabel_fluentd Log trapper(Fluentd) jp1_pc_addon_program JPC Fluentd </record> </filter> </worker> <worker 3> ## [Input Settings] <source> @type tail tag tail.sap_syslog path @@sap_logpath@@ follow_inodes true refresh_interval 60 skip_refresh_on_startup false read_from_head false encoding "UTF-8" from_encoding "Shift_JIS" read_lines_limit 1000 read_bytes_limit_per_second -1 pos_file ../data/fluentd/tail/sap_syslog.pos path_key tailed_path rotate_wait 5s enable_watch_timer false enable_stat_watcher true open_on_every_update false emit_unmatched_lines false ignore_repeated_permission_error false <parse> @type regexp expression /^(?<sap_time>.{8})(?<instance>.{20})(?<user>.{12})(?<program>.{8})(?<msgno>.{3})(?<message>.*)$/ time_key time null_empty_string false estimate_current_event true keep_time_key false localtime true utc false </parse> </source> ## [Attributes Settings] <filter tail.sap_syslog> @type record_transformer enable_ruby true auto_typecast false renew_record true <record> ID 00007601 MESSAGE ${record["message"]} JP1_SOURCEHOST @@sap_instancename@@ JPC_LOG_TIME ${time.utc.to_i} PRODUCT_NAME /HITACHI/JP1/JPCCS2/LOGTRAP/SAP Syslog PPNAME /HITACHI/JP1/JPCCS2 SEVERITY Notice PLATFORM ${ if RUBY_PLATFORM.downcase =~ /mswin(?!ce)|mingw|cygwin|bccwin/; 'NT'; else 'UNIX'; end } OBJECT_TYPE LOGFILE OBJECT_NAME ${record['tailed_path']} ROOT_OBJECT_TYPE LOGFILE ROOT_OBJECT_NAME ${record['tailed_path']} JP1_TRAP_NAME ${tag_parts[1]} JPC_NODELABEL SAP Syslog </record> </filter> ## [Inclusion Settings] #<filter tail.sap_syslog> # @type grep # <regexp> # key nil # pattern nil # </regexp> # </filter> ## [Exclusion Settings] # <filter tail.sap_syslog> # @type grep # <exclude> # key nil # pattern nil # </exclude> # </filter> ## [Forward Settings] <match tail.sap_syslog> @type rewrite_tag_filter <rule> key SEVERITY pattern /Warning|Error|Critical|Alert|Emergency/ tag ${tag}.jp1event </rule> <rule> key SEVERITY pattern /.*/ tag ${tag}.outputlog </rule> </match> <filter /tail\.sap_syslog\.(jp1event|outputlog)/> @type record_transformer enable_ruby true auto_typecast true renew_record true <record> eventId ${record['ID']} xsystem true message ${record['MESSAGE']} attrs ${record} </record> remove_keys $.attrs.ID remove_keys $.attrs.MESSAGE </filter> </worker>
ファイル
fluentd_sap_syslog_tail.conf
格納先ディレクトリ
■統合エージェントホスト
Windowsの場合
-
物理ホストのとき
Agentパス\conf\sample\
Linuxの場合
-
物理ホストのとき
/opt/jp1ima/conf/sample/
説明
SAPシステムのシステムログ情報を監視するための定義ファイルのサンプルファイルです。
サンプルファイル(fluentd_sap_syslog_tail.conf)をコピーし,必要に応じてコピー先のファイル名を「fluentd_ログ監視名_tail.conf」に変更して使用します。ファイルの配置先については,マニュアル「JP1/Integrated Management 3 - Manager 導入・設計ガイド」の「付録A.4(3)統合エージェントホスト(Windows)」および「付録A.4(4)統合エージェントホスト(Linux)」を参照してください。Script exporter設定ファイル(jpc_script_exporter.yml)で指定したスクリプトごとにこの定義ファイルを作成します。
先頭の文字が「#」である行は,コメントとして扱い,プログラムの動作には影響しません。
文字コード
UTF-8(BOM無し)
改行コード
Windowsの場合:CR+LF
Linuxの場合:LF
定義の反映時期
Fluentdのサービスを再起動したときに,Fluentdの動作に反映します。
定義ファイルを追加もしくは削除,または,[Metric Settings]セクションの値を変更した場合,統合オペレーション・ビューアーのツリー表示に,変更内容を反映します。
反映方法については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.21.2(18)IM管理ノードのツリー情報の作成と反映(Windows)(必須)」を参照してください。
記述内容
「テキスト形式のログファイルの監視定義ファイル(fluentd_@@trapname@@_tail.conf.template)」の「記述内容」の説明を参照してください。
このサンプルファイルをユーザーが使用する場合は,次に示す設定項目を,ユーザー環境に合わせて変更する必要があります。
設定項目 |
初期値 |
設定内容 |
---|---|---|
監視対象のログファイルのパス |
@@sap_logpath@@ |
環境パラメーター設定ファイルでユーザーが指定した,SAPシステムのシステムログ情報の抽出結果を出力するテキストファイルのパスを指定します。 |
システムログ情報を抽出するSAPインスタンス名 |
@@sap_instancename@@ |
SAPシステムのシステムログ情報の抽出結果を出力するSAPインスタンス名を指定します。 |
また,SEVERITYの値が「Warning」以上の場合にマッチするときにJP1イベントが発行される設定となっています。このサンプルではSEVERITYは常に「Notice」が設定されるため,JP1イベントは発行されず,Fluentdのログにだけ出力されます。ログ監視結果をJP1イベントとして出力する場合には,次の下線部分のように定義を変更します。
## [Forward Settings] <match tail.sap_syslog> @type rewrite_tag_filter <rule> key SEVERITY pattern /Notice|Warning|Error|Critical|Alert|Emergency/ tag ${tag}.jp1event </rule> <rule> key SEVERITY pattern /.*/ tag ${tag}.outputlog </rule> </match>