IBM AS/400プラットフォームを監視するには、SNMPを使用します。
詳細については、http://publibb.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg244504.html?Openを参照してください。
設定ファイルmisc/conf/zabbix_agentd.confには、MySQLの監視に使用できるパラメータのリストが記述されています。
### Set of parameter for monitoring MySQL server (v3.23.42 and later)
### Change -u and add -p if required
#UserParameter=mysql[ping],mysqladmin -uroot ping|grep alive|wc -l
#UserParameter=mysql[uptime],mysqladmin -uroot status|cut f2 -d”:”|cut -f1 -d”T”
#UserParameter=mysql[threads],mysqladmin -uroot status|cut f3 -d”:”|cut -f1 -d”Q”
#UserParameter=mysql[questions],mysqladmin -uroot status|cut f4 -d”:”|cut -f1 -d”S”
#UserParameter=mysql[slowqueries],mysqladmin -uroot status|cut f5 -d”:”|cut -f1 -d”O”
#UserParameter=mysql[qps],mysqladmin -uroot status|cut -f9 d”:”
#UserParameter=version[mysql],mysql -V
MySQLが動作しているかどうかをチェック
MySQLの動作時間(秒単位)
MySQLのスレッド数
処理済みクエリの数
時間のかかるクエリの数
1秒あたりに処理するクエリの数
MySQLのバージョンの例: mysql Ver 11.16 Distrib 3.23.49, for pc-linux-gnu (i686)
Mikrotikが提供するSNMPエージェントを使用します。詳細については、http://www.mikrotik.comを参照してください。
Zabbixディストリビューションに付属する(コンパイル済み)Zabbix W32エージェントを使用します。
NovellのMRTG Extension Program for NetWare Server(MRTGEXT.NLM)エージェントを使用します。このエージェントは、Zabbixが使用するプロトコルと互換性があります。入手するには、http://forge.novell.com/modules/xfmod/project/?mrtgextを参照してください。
アイテムは、[タイプ]に[Zabbixエージェント]を指定し、MRTGEXTのマニュアルを参照してキーを指定する必要があります。
例:
** UTIL1 **
1分間の平均CPU使用率
** CONNMAX **
ライセンスされている接続の最大数
** VFKSys **
ボリュームSysの空き容量(バイト単位)
このエージェントがサポートするパラメータの詳細なリストについては、エージェントに付属するreadme.txtを参照してください。
UserParameterの定義でTuxedoコマンドラインユーティリティtmadminとqmadminを使用すると、サーバ/サービス/キューごとのパフォーマンスカウンタおよびTuxedoリソースの可用性を取得できます。
Informixの標準ユーティリティonstatを使用すると、Informixデータベースのほとんど全ての情報を監視できます。また、Informix SNMPエージェントが提供する情報を取得できます。
まずjmxを監視できるようにjvmを設定する必要があります。この操作が可能かどうかを調べるには、jdkに付属するSunのjconsoleユーティリティを、jvmが動作するマシンを指定して実行します。接続できれば、jvmを設定できます。
tomcat環境では、以下のjvmオプションを設定することでjvmを設定可能にできます。
ここでは、jmxサーバをポートXXXXXで実行すること、パスワード認証を使用すること、およびjmxremote.passwordファイルに保存されているパスワードを参照することを指示しています。詳細については、jconsoleに関するSunのドキュメントを参照してください。(よりセキュアな接続をさせるにはsslを有効にしたほうが良いと思われるでしょう。)
必要な設定が完了したら、jconsoleを実行して、現在公開されている情報を全て取得することができます。(正常に接続できることも確認できます。)jconsoleを使用すると、informationタブから特定のjmx属性を照会する際に必要な情報を取得することもできます。
tomcat環境では、jmx属性の値を取得する(またはjmxの動作を設定する)方法は2つあります。1つは、tomcatが提供するサーブレットを使用する方法です。(jbossについては不明)。もう1つはjmxコマンドラインツールを使用して正しい構文の要求を送信する方法です。
システムが使用するスレッドのピーク値を取得することを考えます。jconsoleでjmxオブジェクトを展開し、java.lang → Threadingを選択します。Threadingを選択した後、infoタブをクリックすると、mbeanの名前として「java.lang:type=Threading」と表示されていることを確認できます。
tomcat環境では、以下のコマンドを実行できます:
curl -s -u<jmxusername>:<jmxpassword> 'http://<tomcat_hostname>/manager/jmxproxy/?qry=java.lang:type=Threading'
ここで、jmxのユーザ名とパスワードは、前述のjvmオプションで指定したファイルで定義されているユーザ名とパスワードを使用します。qryに渡しているのはjconsoleで調べた文字列です。
このコマンドを実行すると、ここで指定したjmxキーで取得できる測定基準が全て出力されます。出力を解析して、必要な数値を取得します。
jmxインタフェースにhttp要求を渡すことができるサーブレットが存在しない環境では、以下のようなコマンドラインツールを使用します。
/<pathTo>/java -jar /<pathTo>/cmdline-jmxclient.jar <jmxusername>:<jmxpassword> <jvmhostname>:<jmxport> java.lang:type=Threading PeakThreadCount
コマンドラインクライアントとの違いは、必要な属性を具体的に指定する必要がある点です。属性を指定しない場合、Threadingの全ての属性のリストが出力されます。
この場合も、出力を解析して、必要な数値を取得します。
必要なデータを確実に取得できるようになったら、そのコマンドをzabbixのUserParameterに指定します。
例
UserParameter=jvm.maxthreads, /usr/bin/curl -s -u<jmxusername>:<jmxpassword> 'http://<tomcat_hostname>/manager/jmxproxy/?qry=java.lang:type=Threading' | /bin/awk '/^PeakThreadCount\:/ { gsub( /[^0123456789]/, "" ); print $1 }'
または
UserParameter=jvm.maxthreads, /<pathTo>/java -jar /<pathTo>/cmdline-jmxclient.jar <jmxusername>:<jmxhostname> <jvmhostname>:<jmxport> java.lang:type=Threading PeakThreadCount | <some filter to grab just the number you need - left as an exercise to the reader>
これで完了です。
javaコマンドラインクライアントを使用するよりも、http経由でサーブレットを使用するほうが、処理を起動して情報を取得する際の負荷は軽減されます。
コマンドラインjmxクライアントは、以下のURLから入手できます。http://crawler.archive.org/cmdline-jmxclient/
jvmを監視するためのjmxの設定については、以下のURLを参照してください。http://java.sun.com/j2se/1.5.0/docs...ment/agent.html
JMXの概要については、以下のURLを参照してください。http://java.sun.com/j2se/1.5.0/docs...verviewTOC.html
追加情報: 1.5 jvmはSNMPをサポートしていると考えられるので、選択肢はさらに増えます。