mq
zOS

MQ for z/OSのSMFレコードをcsvで出力してみる

More than 1 year has passed since last update.


IBM MQ for z/OSのパフォーマンス/キャパシティ・プランニング

IBM MQ for z/OS(MQ)のパフォーマンス管理、キャパシティ・プランニングを行う上で必要となる情報は、SMFを使用して収集する事ができます。

収集したレポーティングツールとして、製品提供のツールを使用することもできますが、多くの場合はよりリーダブルなフォーマットで出力することがができる、MP1Bというサポートパックを使用されます。

MP1BでもCSV形式でレコードを出力することも可能ですが、出力可能なのは一部の情報だけだったりと、少し物足りないような気もします。

今回はmq-smf-csvというツールを使用してcsv形式でSMFレコードを出力してみます。


導入

当記事ではwindows7を使用しています。他プラットフォームでは試していませんが同じ手順で問題無いでしょう。

git環境があれば任意のディレクトリにgit cloneするだけ。簡単ですね。

git clone https://github.com/ibm-messaging/mq-smf-csv.git

git環境がない場合は上記のページからzipをダウンロードして任意のディレクトリに展開すればよいでしょう。


SMFデータの取得

ダンプしたMQのSMFレコードをftpで落としてきましょう。

>ftp zos.system.com

zos.system.com に接続しました。
220-FTP Server (user 'takad')
220
ユーザー (zos.system.com:(none)): takad
331-Password:
331
パスワード:
230-220-FTPD1 IBM FTP CS V2R1 at zos.system.com, 04:30:23 on 2016-08-20.
230-TAKAD is logged on. Working directory is "TAKAD.".
ftp>
ftp> bin #バイナリで落とす
200 Representation type is Image
ftp> quote site rdw #RDWを付加
200 SITE command was accepted
ftp> get 'takad.smfdump.mq' ./mqsmf.bin
200 Port request OK.
125 Sending data set TAKAD.SMFDUMP.MQ
250 Transfer completed successfully.
ftp: 1857656 バイトが受信されました 1.57秒 1181.72KB/秒。

俺は面倒が嫌いなんだ、という場合はサンプルのSMFがinstall_dir/testing/dataにSMFレコードがあるのでそれを使うといいでしょう。


実行してみる

実行ファイルはinstall_dir/bin/windowsにあります。他にはaix/linuxが確認できます。

まずは-hをつけてヘルプを見てみましょう。

MQ SMF CSV - Build Aug  4 2016 19:16:43

Usage: mqsmfcsv [-o <output dir>] [-a] [ -d <level> ]
[-h yes|no] [ -i <input file> [-m <max records>]
[-r ] [-t <ticker>]
-a Append to files if they exist. Default is overwrite.
-d <Level> Debug by dumping binary records (Level = 1 or 2).
-h yes|no Print column headers for new output files. Default is yes.
-i <Input file> Default is to read from stdin.
-m <Max records> End after formatting M records. Default to process all.
-o <Directory> Where to put output files. Default to current directory.
-r Do not print '=' on numeric-looking strings.
-s SQL mode - generate DDL for tables.
-t <Ticker> Print progress message every T records.

細かいオプションはさておき、とりあえずinputとoutputを指定してあげれば良さそうです。

> mqsmfcsv.exe -i mqsmf.bin .\output

うまくいけば、"SMF-hoge.csv"のようなファイルが生成されているはずです。

あとはExcelなりで開いてソート→グラフ化とすれば、可視化できて良いでしょう。


最後に

このツールではSMFレコードをダイレクトに出力するため、多いものでは列が400近くにもなり、Excelで見るにはちょっと辛いです。

DDLを一緒に作ってくれるSQL modeというものもあるので、うまくDBに突っ込んで、ElasticSearchなどでもっと簡単にソート/抽出/グラフ化したいところです。