This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

2 具体的なアプリケーションの監視

2.1 AS/400

IBM AS/400プラットフォームを監視するには、SNMPを使用します。
詳細については、http://publibb.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg244504.html?Openを参照してください

2.2 MySQL

設定ファイル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
2.2.1 mysql[ping]

MySQLが動作しているかどうかをチェック

結果: 0 - 停止 1 - 起動
2.2.2 mysql[uptime]

MySQLの動作時間(秒単位)

2.2.3 mysql[threads]

MySQLのスレッド数

2.2.4 mysql[questions]

処理済みクエリの数

2.2.5 mysql[slowqueries]

時間のかかるクエリの数

2.2.6 mysql[qps]

1秒あたりに処理するクエリの数

2.2.7 mysql[version]

MySQLのバージョンの例: mysql Ver 11.16 Distrib 3.23.49, for pc-linux-gnu (i686)

2.3 Mikrotikルータ

Mikrotikが提供するSNMPエージェントを使用します。詳細については、http://www.mikrotik.comを参照してください

2.4 WIN32

Zabbixディストリビューションに付属する(コンパイル済み)Zabbix W32エージェントを使用します。

2.5 Novell

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を参照してください。

2.6 Tuxedo

UserParameterの定義でTuxedoコマンドラインユーティリティtmadminとqmadminを使用すると、サーバ/サービス/キューごとのパフォーマンスカウンタおよびTuxedoリソースの可用性を取得できます。

2.7 Informix

Informixの標準ユーティリティonstatを使用すると、Informixデータベースのほとんど全ての情報を監視できます。また、Informix SNMPエージェントが提供する情報を取得できます。

2.8 JMX

まずjmxを監視できるようにjvmを設定する必要があります。この操作が可能かどうかを調べるには、jdkに付属するSunのjconsoleユーティリティを、jvmが動作するマシンを指定して実行します。接続できれば、jvmを設定できます。

tomcat環境では、以下のjvmオプションを設定することでjvmを設定可能にできます。

  1. Dcom.sun.management.jmxremote \
  2. Dcom.sun.management.jmxremote.port=xxxxx \
  3. Dcom.sun.management.jmxremote.ssl=false \
  4. Dcom.sun.management.jmxremote.authenticate=true \
  5. Dcom.sun.management.jmxremote.password.file=/path/java/jre/lib/management/jmxremote. password"

ここでは、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をサポートしていると考えられるので、選択肢はさらに増えます。