はじめに
Logforwarderを利用して、RMF Monitor IIIの情報を取得することができます。ここでは、RM Monitor IIIの情報の取り込みを行ってみます。
ちなみに、CDPz V2.1では、RMF Monitor IIIのうち、以下の4つのレポートの取得が可能です。
CPC - CPC Capacity Report
DELAY - Delay Report
PROCU - Processor Usage Report
SYSINFO - System Information Report
※SYSLOGと同様、稼働状況をリアルタイムに取得することになるので、後からバッチ的に情報をElasticsearchに取り込むことはできません。
関連記事
CDPzを利用したz/OS-ELK連携 - (1)セットアップ編
CDPzを利用したz/OS-ELK連携 - (2)SYSLOG取得編
CDPzを利用したz/OS-ELK連携 - (3)SMF-バッチ編
CDPzを利用したz/OS-ELK連携 - (4)SMF-リアルタイム編
CDPzを利用したz/OS-ELK連携 - (5)カスタマイズ-共通
CDPzを利用したz/OS-ELK連携 - (6)カスタマイズ-SYSLOG
CDPzを利用したz/OS-ELK連携 - (7)カスタマイズ-CICS
CDPzを利用したz/OS-ELK連携 - (8)カスタマイズ-RMF Monitor III
CDPzを利用したz/OS-ELK連携 - (9)カスタマイズ-fluentdの利用
利用コンポーネント
Logforwarderは、RMFからMonitor IIIの情報をDDS(Distributed Data Server)経由で取得します。そのため、RMFの設定として、Monitor III,および、DDSを有効化しておく必要があります。また、CDPzからDDSに対するアクセスが行えるようにしておく必要があります。
RMF関連設定
RMF自体は稼働している前提とします。
RMF Monitor III
参考:
Defining parameters for Monitor III
Description of Monitor III data gatherer options
設定
関連するプロシージャー、PARMLIBは以下の辺り。
PROCLIB(RMFGAT)
PARMLIB(ERBRMF04)
主なパラメーター
...
CYCLE(1000)
MINTIME(60)
...
CYCLE: サンプル取得単位(millisec)
MINTIME: 集約単位(sec)
上の例だと、1秒単位でサンプル取得して、レポート上は1分単位に集約して出力されます。
CDPzから情報取得する際も、この設定に依存するため、1分単位に集約された情報が取得されることになります。
操作
開始 /F RMF,START III
停止 /F RMF,STOP III
確認
/F RMF,D ACTIVE
/F RMF,D ALL
F RMF,START III
IEE252I MEMBER ERBRMF04 FOUND IN SYS0.PARMLIB
ERB115I START RMFGAT MONITOR III SESSION III
$HASP100 RMFGAT ON STCINRDR
IEF695I START RMFGAT WITH JOBNAME RMFGAT IS ASSIGNED TO USER IBMUSER
, GROUP SYS1
$HASP373 RMFGAT STARTED
IEF403I RMFGAT - STARTED - TIME=14.17.41
ERB105I III: DATA GATHERER ACTIVE
ERB100I III: ACTIVE
ERB425I III: UNABLE TO GATHER RESOURCE HSM
DDS(Distributed Data Server)
参考: Setting up the Distributed Data Server for z/OS
設定
関連するプロシージャー、PARMLIBは以下の辺り。
PROCLIB(GPMSERVE)
PARMLIB(GPMSRV00)
PassTicketの構成
CDPzからDDSにアクセスできるよう、PassTicketの構成をしておきます。
参考: Configuring PassTicket support for the Distributed Data Server
[CICS004@EPLEX1:/u/cics004] tsocmd "RDEFINE PTKTDATA GPMSERVE SSIGNON(KEYMASKED(0000000000000000))"
RDEFINE PTKTDATA GPMSERVE SSIGNON(KEYMASKED(0000000000000000))
ICH10006I RACLISTED PROFILES FOR PTKTDATA WILL NOT REFLECT THE ADDITION(S) UNTIL A SETROPTS REFRESH IS ISSUED.
[CICS004@EPLEX1:/u/cics004] tsocmd "SETROPTS RACLIST(PTKTDATA) REFRESH"
SETROPTS RACLIST(PTKTDATA) REFRESH
操作
開始 /F RMF,DDS
停止 /F RMF,NODDS
F RMF,DDS
ERB140I RMF: DDS OPTION ACCEPTED
IEA631I OPERATOR CICS004 NOW INACTIVE, SYSTEM=ZOS1 , LU=09552FEC
S GPMSERVE.RMFDDS01
ERB141I RMF: STARTING DISTRIBUTED DATA SERVER
$HASP100 GPMSERVE ON STCINRDR
IEF695I START GPMSERVE WITH JOBNAME GPMSERVE IS ASSIGNED TO USER IBMUSER
, GROUP SYS1
$HASP373 GPMSERVE STARTED
IEF403I GPMSERVE - STARTED - TIME=09.05.31
参考
CDPzでは、RMF Monitor IIIのうち、以下の4つのレポートのみ取得可能です。それぞれの詳細情報は以下のリンクから確認可能です。
CPC - CPC Capacity Report
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.3.0/com.ibm.zos.v2r3.erbb500/cfc3.htm#erbb500-gen77
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.3.0/com.ibm.zos.v2r3.erbb700/erbb700132.htm
DELAY - Delay Report
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.3.0/com.ibm.zos.v2r3.erbb500/delay.htm#erbb500-gen80
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.3.0/com.ibm.zos.v2r3.erbb700/erbb700133.htm
PROCU - Processor Usage Report
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.3.0/com.ibm.zos.v2r3.erbb500/erbb500177.htm
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.3.0/com.ibm.zos.v2r3.erbb700/erbb700151.htm
SYSINFO - System Information Report
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.3.0/com.ibm.zos.v2r3.erbb500/erbb500238.htm
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.3.0/com.ibm.zos.v2r3.erbb700/erbb700165.htm
CDPz側構成
RMF DDSとの接続用構成
参考: CDPz - Configuring the z/OS RMF Distributed Data Server to collect RMF Monitor III reports
CDPzからDDSにアクセスするため、CDPz実行ユーザー(ここではCDP201)に対してRACF権限設定を行う。
[CICS004@EPLEX1:/u/cics004] tsocmd "RDEFINE PTKTDATA IRRPTAUTH.GPMSERVE.* UACC(NONE)"
RDEFINE PTKTDATA IRRPTAUTH.GPMSERVE.* UACC(NONE)
ICH10006I RACLISTED PROFILES FOR PTKTDATA WILL NOT REFLECT THE ADDITION(S) UNTIL A SETROPTS REFRESH IS ISSUED.
[CICS004@EPLEX1:/u/cics004] tsocmd "PERMIT IRRPTAUTH.GPMSERVE.* CLASS(PTKTDATA) ID(CDP201)ACCESS(UPDATE)"
PERMIT IRRPTAUTH.GPMSERVE.* CLASS(PTKTDATA) ID(CDP201)ACCESS(UPDATE)
ICH06011I RACLISTED PROFILES FOR PTKTDATA WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED
[CICS004@EPLEX1:/u/cics004] tsocmd "SETROPTS RACLIST(PTKTDATA) REFRESH"
SETROPTS RACLIST(PTKTDATA) REFRESH
Policy作成
Syslogの例と同じようにRMF III関連のData Streamを追加してPolicyを作成する。
DataStreamer/Logforwarder構成
Syslogの例と同様。
ELK側構成
Logstash関連構成
DELAY, SYSINFOでは、数値として扱いたいフィールドに、"N/A"という文字列が入ってくるフィールドが多々ある。型の不一致で取り込みに不具合が生じるため、DELAY, SYSINFOについては、一律で"N/A"文字列を""(nil)に変換することとする。
以下のようにLogstash設定ファイルを修正(いずれも、csvプラグインの前に、mutateプラグインを追加)。
filter {
if [sourceType] == "zOS-RMF_DELAY" {
mutate {
gsub => [ "message", "N/A", "" ]
}
csv{ columns => [ "LOCALSTART", "LOCALEND", "JDELDAN", "JDELASI", "JDETYPX", "JDEPSVCL", "JDEGMIP", "JDELWFL", "JDELUSG", "JDELDEL", "JDELIDL",
"JDELUKN", "JDELPROC", "JDELDEV", "JDELSTOR", "JDELSUBS", "JDELOPER", "JDELENQ", "JDELJES", "JDELHSM", "JDELXCF", "JDELMNT", "JDELMES", "JDELQUI", "J
DELCAP", "JDELCP", "JDELCBP", "JDELSUP", "JDELIFA", "JDELREAS" ]
separator => "," }
}
}
filter {
if [sourceType] == "zOS-RMF_SYSINFO" {
mutate {
gsub => [ "message", "N/A", "" ]
}
csv{ columns => [ "LOCALSTART", "LOCALEND", "SYSPARVC", "SYSMODVC", "SYSMDLVC", "SYSTSVVC", "SYSPOLVC", "SYSPRVVC", "SYSCUVVC", "SYSTSEVC", "SY
SPADVC", "SYSPROVC", "SYSLCPVC", "SYSAPOVC", "SYSPATVC", "SYSPRTVC", "SYSAPTVC", "SYSAOCVC", "SYSATCVC", "SYSLOAVG", "SYSCVAVC", "SYSCUAVC", "SYSMUAVC
", "SYSCUOVC", "SYSMUOVC", "SYSCUIVC", "SYSMUIVC", "SYSAHPVC", "SYSIHPVC", "SYSPKCVC", "SYSPKAVC", "SYSPKOVC", "SYSPKIVC", "SYSPRIVC", "SYSAPIVC", "SY
SICVVC", "SYSAICVC", "SYSIPVVC", "SYSOPVVC", "SYSVEPVC", "SYSTCTVC", "SYSUCTVC", "SYSCCTVC", "SYSCULVC", "SYSNAMVC", "SYSTYPVC", "SYSWFLVC", "SYSTUSVC
", "SYSAUSVC", "SYSTRSVC", "SYSAFCVC", "SYSRSPM", "SYSAUPVC", "SYSAUDVC", "SYSADPVC", "SYSADDVC", "SYSADSVC", "SYSADUVC", "SYSADOVC", "SYSADEVC", "SYS
ADJVC", "SYSADHVC", "SYSADXVC", "SYSADNVC", "SYSADMVC", "SYSCPUVC", "SYSSRBVC", "SYSTCBVC", "SYSIFAVC", "SYSCPVC", "SYSIFCVC", "SYSRSPVC", "SYSVELVC",
"SYSUGMVC", "SYSUGPVC", "SYSUGDVC", "SYSWGDVC", "SYSWGPVC", "SYSDGMVC", "SYSUJMVC", "SYSDJMVC", "SYSDGEVC", "SYSDGHVC", "SYSDGDVC", "SYSDGJVC", "SYSD
GOVC", "SYSDGPVC", "SYSDGSVC", "SYSDGUVC", "SYSDGXVC", "SYSDDSIN", "SYSDDSIT", "SYSDDSIP", "SYSRCTNT", "SYSEAPVC", "SYSLPIVC", "SYSSUPVC", "SYSSUCVC",
"SYSPDPVC", "SYSTODVC", "SYSCPDVC", "SYSAPDVC", "SYSIPDVC", "SYSRGCVC", "SYSDLYVC", "SYSMEMUS", "SYSCBPVC", "SYSCBCVC", "SYSCBDVC", "SYSVECVC" ]
separator => "," }
}
}
また、PROCUのPRUPCLPフィールドには"*
"が入るケースがあるため、"*
"の場合は当該フィールドを削除するロジックを追加。
filter {
if [sourceType] == "zOS-RMF_PROCU" {
csv{ columns => [ "LOCALSTART", "LOCALEND", "PRUPJOB", "PRUPASI", "PRUPCLA", "PRUPCLAX", "PRUPSVCL", "PRUPCLP", "PRUPCPT", "PRUPAACT", "PRUPCBC
T", "PRUPIICT", "PRUPCPE", "PRUPAAPE", "PRUPCBPE", "PRUPIIPE", "PRUPTOTC", "PRUPTOTE", "PRUPTCB", "PRUPSRB", "PRUPPCS", "PRUPEPS", "PRUTCPUT" ]
separator => "," }
if [PRUPCLP] == "*" {
mutate { remove_field => [ "PRUPCLP" ] }
}
}
}