MathLMの監視

MonitorLMとは?
MonitorLMは使用可能なライセンス数およびチェックアウトされているライセンス数,完全修飾ドメイン名,ライセンスをチェックアウトしているユーザ名等の情報を与える.MonitorLMは出力をターミナルに送ったり,Webのブラウザを開いたり,ファイルに書き込んだりすることができる.MonitorLMの出力は環境設定設定ファイルによってカスタマイズすることができる.MonitorLMは自動的にIPv4およびIPv6の環境をサポートする.
MonitorLMの起動
MonitorLMを起動するためには,MathLMがインストールされている場所にディレクトリを変更し,.\monitorlm servername(Windows),あるいは./monitorlm servername(Linux,Mac)とタイプする.monitorlmコマンドの第1引数にはMathLMを起動しているライセンスサーバの名前を指定する.明示的にサーバ名を指定しなかったら,デフォルトでローカルマシン名が選ばれる.
MonitorLMコマンドラインオプション
monitorlmコマンドで使えるオプションには以下のようなものがある.オプションを指定するための文法は,monitorlm servername options である.
-file file
出力が向けられるファイルを指定する
-format f
-health
サーバが利用可能で正常かどうかをチェックする
-localtime
時間に関するすべての参照で,グリニッジ標準時ではなく現地時間を使うよう指定する
-template file
monitorlmコマンドラインオプション
-fileが設定されていない場合,MonitorLMstdoutに書き出す.
-healthが設定されている場合,他のオプションはすべて無視される.MonitorLMの終了コードは,状態チェックの結果(0は正常,1は異常)を表す.
以下は-formatで可能な3つの出力形式である.
text
出力をテキスト形式でstdoutに書き出す(Linuxのデフォルト)
html
出力をHTML形式で送り,Webブラウザを開く(WindowsとMacのデフォルト)
cgi
出力をHTML形式でstdoutに送る
-format出力形式
MonitorLMがWebブラウザにより直接起動されたらcgi形式が使われる.
-formattextにするとMonitorLMの出力は以下のようになる.
Online help is available at
http://reference.wolfram.com/network

MathLM Version 11.2
MathLM Server hostname.domain.com
Date : Thursday, August 29 2017 14:11:59
    
License Usage Summary:

                            License    Total    Total
Program                        Class    in Use    Authorized
------------------------------------------------------

Mathematica                    A        2        20
MathKernel                    A        4        40


Sub Mathematica                A        0        80
Sub MathKernel                A        0        80

Licenses in Use:

                            License
Program            Version        Class    Username    Hostname            Duration
----------------------------------------------------------------------------
Mathematica        11.1            A        username    client1.domain.com    08:49
Mathematica        11.2            A        username    client2.domain.com    06:33
MathKernel        11.1            A        username    client1.domain.com    08:44
MathKernel        11.2            A        username    client2.domain.com    06:52
MathKernel        11.2            A        username    client2.domain.com    06:52
MathKernel        11.2            A        username    client2.domain.com    06:30

-formatcgiにすると,MonitorLMの出力はHTML形式でstdoutに送られる点に注意のこと.以下は,出力がWebのブラウザで表示されたところである.

MonitorLMの出力のカスタマイズ
テンプレートファイルを編集することにより,MonitorLMからの出力の内容と形式をカスタマイズすることができる.テンプレートファイルはテキストファイルで,以下のような種類の要素を含むことができる.

定義済みの定数タグ

以下はテンプレートファイルに入れることのできるタグ名および可能なファイル形式に対する数値を示した2つの表である.

日付の定数タグ

以下はMonitorLMの日付の定数タグである.
タグ名
可能な値
説明
%CONST_DATE_D#
[1...31]
日付
%CONST_DATE_W#
1 数字 [ 1 ... 7 ] 2 省略形 [ Sun ... Sat ] 3 完全表記 [ Sunday ... Saturday ]
曜日
%CONST_DATE_M#
1 数字 [ 1 ... 12 ] 2 省略形 [ Jan ... Dec ] 3 完全表記 [ January ... December ]
%CONST_DATE_Y#
1 2桁 [ 10 ] 2 4桁 [ 2010 ]
%CONST_DATE_T#
1 12時間 [ 10:20:15 ]
時間
MonitorLM日付の定数タグ

サーバおよびプロセスの定数タグ

以下はMonitorLMのサーバおよびプロセスの定数タグである.
タグ名
説明
%CONST_SERVER_IP
MathLMのIPアドレス
%CONST_SERVER_HOST
MathLMのホスト名
%CONST_SERVER_DOMAIN
MathLMのドメイン
%CONST_SERVER_FQDN
MathLMの完全修飾ドメイン名
%CONST_SERVER_VERSION
MathLMのバージョン
%CONST_CA_FE_AUTHORIZED
許可されたクラスAのフロントエンドの数
%CONST_CA_SUB_FE_AUTHORIZED
許可されたクラスAのサブフロントエンドプロセスの数
%CONST_CB_FE_AUTHORIZED
許可されたクラスBのフロントエンドの数
%CONST_CB_SUB_FE_AUTHORIZED
許可されたクラスBのサブフロントエンドプロセスの数
%CONST_TOTAL_FE_AUTHORIZED
許可されたフロントエンドの総数
%CONST_TOTAL_SUB_FE_AUTHORIZED
許可されたサブフロントエンドプロセスの総数
%CONST_CA_KE_AUTHORIZED
許可されたクラスAのカーネルの数
%CONST_CA_SUB_KE_AUTHORIZED
許可されたクラスAのサブカーネルプロセスの数
%CONST_CB_KE_AUTHORIZED
許可されたクラスBのカーネルの数
%CONST_CB_SUB_KE_AUTHORIZED
許可されたクラスBのサブカーネルプロセスの数
%CONST_TOTAL_KE_AUTHORIZED
許可されたカーネルの総数
%CONST_TOTAL_SUB_KE_AUTHORIZED
許可されたサブカーネルプロセスの総数
%CONST_CA_FE_AVAILABLE
使用可能なクラスAのフロントエンドの数
%CONST_CA_SUB_FE_AVAILABLE
使用可能なクラスAのサブフロントエンドプロセスの数
%CONST_CB_FE_AVAILABLE
使用可能なクラスBのカーネルの数
%CONST_CB_SUB_FE_AVAILABLE
使用可能なクラスBのサブカーネルプロセスの数
%CONST_TOTAL_FE_AVAILABLE
使用可能なカーネルの総数
%CONST_TOTAL_SUB_FE_AVAILABLE
使用可能なサブフロントエンドプロセスの総数
%CONST_CA_KE_AVAILABLE
使用可能なクラスAのカーネルの数
%CONST_CA_SUB_KE_AVAILABLE
使用可能なクラスAのサブカーネルプロセスの数
%CONST_CB_KE_AVAILABLE
使用可能なクラスBのカーネルの数
%CONST_CB_SUB_KE_AVAILABLE
使用可能なクラスBのサブカーネルプロセスの数
%CONST_TOTAL_KE_AVAILABLE
使用可能なカーネルの総数
%CONST_TOTAL_SUB_KE_AVAILABLE
使用可能なサブカーネルプロセスの総数
%CONST_CA_FE_OUT
使用中のクラスAのフロントエンドの数
%CONST_CA_SUB_FE_OUT
使用中のクラスAのサブフロントエンドプロセスの数
%CONST_CB_FE_OUT
使用中のクラスBのフロントエンドの数
%CONST_CB_SUB_FE_OUT
使用中のクラスBのサブフロントエンドプロセスの数
%CONST_TOTAL_FE_OUT
使用中のフロントエンドの総数
%CONST_TOTAL_SUB_FE_OUT
使用中のサブフロントエンドプロセスの総数
%CONST_CA_KE_OUT
使用中のクラスAのカーネルの数
%CONST_CA_SUB_KE_OUT
使用中のクラスAのサブカーネルプロセスの数
%CONST_CB_KE_OUT
使用中のクラスBのカーネルの数
%CONST_CB_SUB_KE_OUT
使用中のクラスBのサブカーネルプロセスの数
%CONST_TOTAL_KE_OUT
使用中のカーネルの総数
%CONST_TOTAL_SUB_KE_OUT
使用中のサブカーネルプロセスの総数
MonitorLMサーバおよびプロセスの定数タグ

カスタマイズ可能な変数タグ

以下はMonitorLMのカスタマイズ可能な変数タグである.
タグ名
可能な値
説明
%VAR_DATE_AMPM
"A.M." "P.M."
時間を表示する際に,a.m.,p.m.に使うテキストを指定する
%VAR_MPROCESS
" Mathematica " "MathKernel" "SubMathematica" "SubMathKernel"
Wolframシステムプロセスのタイトル.クォーテーションの中の最初の文字列はフロントエンドのタイトル,2番目の文字列はカーネルのタイトル,3番目の文字列はサブフロントエンドプロセスのタイトル,4番目の文字列はサブカーネルプロセスのタイトルである
%VAR_LIC_CLASS
"Class A" "Class B"
各ライセンスクラスのラベル
%VAR_CA_AUTHORIZED_HEADER
"Class A Authorized \t Front End \t Kernel"
許可されたクラスAライセンス数のヘッダ.定義済みの定数タグ%CONST_CA_FE_AUTHORIZED%CONST_CA_KE_AUTHORIZEDとともに使う
%VAR_CA_SUB_AUTHORIZED_HEADER
"Class A Authorized \t Front End \t Kernel"
許可されたクラスAサブプロセスライセンス数のヘッダ.定義済みの定数タグ%CONST_CA SUB_FE_AUTHORIZED%CONST_CA SUB_KE_AUTHORIZEDとともに使う
%VAR_CB_AUTHORIZED_HEADER
"Class B Authorized \t Front End \t Kernel"
許可されたクラスBライセンス数のヘッダ.定義済みの定数タグ%CONST_CB_FE_AUTHORIZED%CONST_CB_KE_AUTHORIZEDとともに使う
%VAR_CB_SUB_AUTHORIZED_HEADER
"Class B Authorized \t Front End \t Kernel"
許可されたクラスBサブプロセスライセンス数のヘッダ.定義済みの定数タグ%CONST_CB_SUB FE_AUTHORIZED%CONST_CB_SUB KE_AUTHORIZEDとともに使う
%VAR_TOTAL_AUTHORIZED_HEADER
"Total Authorized \t Front End \t Kernel"
許可されたライセンス総数のヘッダ.定義済みの定数タグ%CONST_TOTAL_FE_AUTHORIZEDCONST_TOTAL_KE_AUTHORIZEDとともに使う
%VAR_TOTAL_SUB_AUTHORIZED_HEADER
"Total Authorized \t Front End \t Kernel"
許可されたサブプロセスライセンス総数のヘッダ.定義済みの定数タグ%CONST_TOTAL_SUB FE_AUTHORIZED%CONST_TOTAL_SUB KE_AUTHORIZEDとともに使う
%VAR_CA_CHECKEDOUT_HEADER
"Class A Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration"
使用中のクラスAライセンスについての情報のヘッダ.繰返しタグ%REP_CA_CHECKOUT_LINEと使う
%VAR_CA_SUB_CHECKEDOUT_HEADER
"Class A Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration"
使用中のクラスAサブプロセスライセンスについての情報ヘッダ.繰り返しタグ%REP_CA_CHECKOUT_LINEと使う
%VAR_CB_CHECKEDOUT_HEADER
"Class B Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration"
使用中のクラスBライセンスについての情報のヘッダ.繰返しタグ%REP_CB_CHECKOUT_LINEと使う
%VAR_CB_SUB_CHECKEDOUT_HEADER
"Class B Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration"
使用中のクラスBサブプロセスライセンスについての情報のヘッダ.繰返しタグ%REP_CB_SUB_CHECKOUT_LINEと使う
%VAR_CHECKEDOUT_HEADER
"Licenses in Use\nUsername \t Hostname \t Program \t License Class \t Slot # \t Duration"
使用中のすべてのライセンスに関する情報のヘッダ.繰返しタグ%REP_GENERAL_CHECKOUT_LINEとともに使う
%VAR_SUB_CHECKEDOUT_HEADER
"Licenses in Use\nUsername \t Hostname \t Program \t License Class \t Slot # \t Duration"
使用中のすべてのサブプロセスライセンスに関する情報のヘッダ.繰返しタグ%REP_GENERAL_SUB CHECKOUT_LINEとともに使う
MonitorLMカスタマイズ可能な変数タグ

注:このセクションで提供する文字列は,デフォルトの設定ではなく可能な値の例である.これらのタグを使うときは,自分のテンプレートで定義しなければならない.

プロセス依存タグ

次はMonitorLMのプロセス依存タグである.
タグ名
説明
%PROC_UID
Wolframシステムプロセス所有者のユーザID.
%PROC_USER
Wolframシステムプロセス所有者のユーザ名
%PROC_IP
Wolframシステムプロセスを使うマシンのIPアドレス
%PROC_HOST
Wolframシステムプロセスを使うマシンのホスト名
%PROC_DOMAIN
Wolframシステムプロセスを使うマシンのドメイン
%PROC_FQDN
Wolframシステムプロセスを使うマシンの完全修飾ドメイン名
%PROC_SLOTNUM
Wolframシステムプロセスのスロット番号
%PROC_VERSION
クライアントのバージョン
%PROC_DURATION
クライアントが使い始めてからの時間
MonitorLMプロセス依存タグ

繰返しタグ

次はMonitorLMの繰返しタグである.
タグ名
可能な値
説明
%REP_CA_CHECKOUT_LINE
"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n"
クラスAのチェックアウトラインで,使用中のクラスAプロセスをリストする表あるいはブロックの各行の形式を指定する.カスタマイズ可能な変数タグの%VAR_CA_CHECKEDOUT_HEADERに当たる
%REP_CA_SUB_CHECKOUT_LINE
"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n"
クラスAのサブプロセスチェックアウトラインで,使用中のクラスAサブプロセスをリストする表あるいはブロックの各行の形式を指定する.カスタマイズ可能な変数タグの%VAR_CA_SUB_CHECKEDOUT_HEADERに当たる
%REP_CB_CHECKOUT_LINE
"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n"
クラスBのチェックアウトラインで,使用中のクラスBプロセスをリストする表あるいはブロックの各行の形式を指定する.カスタマイズ可能な変数タグ%VAR_CB_CHECKEDOUT_HEADERに当たる
%REP_CB_SUB_CHECKOUT_LINE
"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n"
クラスBのサブプロセスチェックアウトラインで,使用中のクラスBサブプロセスをリストする表あるいはブロックの各行の形式を指定する.カスタマイズ可能な変数タグ%VAR_CB_SUB_CHECKEDOUT_HEADERに当たる
%REP_GENERAL_CHECKOUT_LINE
"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %VAR_LIC_CLASS \t %PROC_SLOTNUM \t %PROC_DURATION\n"
一般的なチェックアウトラインで,クラスを分けたくなければこれを使う.カスタマイズ可能な変数タグ%VAR_CHECKEDOUT_HEADERに当たる
%REP_GENERAL_SUB_CHECKOUT_LINE
"%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %VAR_LIC_CLASS \t %PROC_SLOTNUM \t %PROC_DURATION\n"
一般的なサブプロセスチェックアウトラインで,クラスを分けたくなければこれを使う.カスタマイズ可能な変数タグ%VAR_SUB_CHECKEDOUT_HEADERに当たる
MonitorLM繰返しタグ

注:このセクションで提供されている文字列は可能な値の例であり,デフォルトの設定ではない.これらのタグを使うためには,自分のテンプレートでそれを定義しなければならない.

注:テンプレートファイルでは,キーワード%TEXT(前後に空白がない)のみが含まれる行の後に,MonitorLMの出力を構成するテキストラッパーとタグを置かなければならない.カスタマイズされた変数タグの定義は%TEXT行の前に置く.カスタマイズされた変数タグがない場合は,%TEXT行がファイルの最初の行になる.

サンプルと動作
これは,許可されたプロセス数,使用可能なプロセス数,使用中のプロセス数を示す簡単なテキストファイルである.この例では変数定義のタグを定義する必要はない.
結果の出力は以下のような形式になる.
次はもう少し高度な例である.この例は,使用中のプロセスとカスタマイズされた変数タグもリストしている点を除いては上の例と等しい.
結果の出力は次のような形式になる.
次はHTML出力の例である.例えばMonitorLMの出力をWebのブラウザで見たいときに便利である.
結果としての出力は次のような形式になる.