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(19)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>