Monitoring CData Virtuality Server

サーバーログをリアルタイムで見ることができます。tail (Linuxシステムを使用していない場合は、Windows用のTail)を使用して、コマンドラインからアクティビティストリームを読み取ります。さらに、サーバーの背後にあるJavaプロセスを監視することもできます。パフォーマンス・カウンターやネットワーク通信のためにJavaプロセスを監視したい場合に使用できるツールについて簡単に説明します。

Process Monitoring on Linux

Linuxには、基本的で便利なツールが用意されています。tophtopnetstattailの4つのツールがあります。topとhtopというツールを使えば、マシン上で実行されているプログラムやサービスのリソース消費を追跡することができます。htopツールはまだインストールされていないかもしれませんが(topは確かにインストールされています)、apt、yum、またはシステムで使用しているパッケージマネージャですぐに入手できます。netstatコマンドラインツールは、システムのTCPおよびUDP接続を確認するのに便利で、出力テーブルをフィルタリングするためにgrepと組み合わせることができます。CData Virtuality Server プロセスのプロセス ID (PID) を指定した後、netstat -aon | grep %PID%を実行し、サーバーが接続に使用するすべてのバインディングとリスニングポート、IP を受け取ることができます。最後のツールであるtailは、ファイルを開き、自動的に更新し、あなたが見ているファイルの最後の行を表示します。これは、サーバーをリアルタイムで監査し、異常をチェックする優れた方法です。すべてのツールはコマンドラインで、ターミナルセッションから起動できます。

代表的なモニタリングツールのOF:

    • top and htop
    • netstat  (特定のプロセスからすべてのネットワークデータを取得するには、netstat -aon | grep %PID%を使用します);
    • tail .

Process Monitoring on Windows

Windows では、システムが提供する標準ツールを使用できます。タスクマネージャを使用して、実行中のプロセスとそのリソース消費量を確認できます。Resource Monitorにアクセスし、さまざまなパフォーマンスカウンターをグラフィカルに視覚化してください。CPUやRAMの使用状況を監査できるだけでなく、ネットワークレートやディスクのパフォーマンスも表示できます。いくつかの情報が欲しいが、小さなグラフの形で視覚化することにこだわらない場合は、タスクマネージャを少し変更し、実行中のプロセスの詳細を与えることができます。これは、CData Virtuality Server に使用されるプロセス ID (PID) が必要な場合にも非常に便利です。例えば、CData Virtuality Server がどのポートをリッスンしているか、リモートホストへの OPEN 接続があるかどうかを、コマンドラインツールの netstat で確認できます。タスクマネージャーを起動し、Processesタブに移動します。次に、メニュー項目Viewをクリックし、Select columnsを選択します。これで、サーバーのパフォーマンスを監視するためのさまざまなカラムが追加されました。CData Virtuality Server プロセスの PID を確認したら、コマンドラインツールnetstat  とパラメータ-aon  を使って、TCP と UDP 接続を持つ全プロセスのリストを取得できます。

代表的なモニタリングツールのOF

  • タスクマネージャと  Resource Monitoring(パフォーマンス監査用のWindows組み込み);
  • netstat (ネットワーク接続と Configuration をチェックおよび管理するための Windows 組み込みコマンドラインツール);
  • TIME for Windows(ログファイルをリアルタイムで監視するサードパーティ製ソフトウェア)。

Local and Remote Monitoring Using JConsole

CData Virtuality Server をカプセル化するJava 仮想マシンを詳細に監視する場合は、JConsole ツールを使用します。JDKがインストールされると、LinuxとWindowsの両方のシステムで利用可能なJava JDKの一部となります。一般的に、WINDOWE インストール後、システムのどこかにbinフォルダがあり、そこに jconsole が配置されます (例: /usr/lib/jvm/java-7-oracle/bin on Linux またはC:︙Program FilesJavajdk1.7.0_60bin on Windows)。CData Virtuality Server のPID をtop(Linux)またはタスクマネージャ(Windows)で取得した後、jconsole、次のいずれかのコマンドで実行できます:

jconsole $PID$
example: jconsole 3225
 
jconsole %host%:%Port%
example1: jconsole myserv.mycorp.local:9999
example2: jconsole 155.2.113.9:9999

jconsoleを実行し、接続パラメータを手入力することもできます。PID ベースの接続はローカルインスタンスでのみ可能であることに注意してください。あらゆるリモート管理には、ホストとポートを介した接続が必要です。

Please note that the default jconsole management port for the CData Virtuality Server is 9999. If you want to change it, you have to modify the dvserver-standalone.xml file at the tag <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>. Remember to open the port by a firewall rule. For more information about ports, see Network Configuration.

System Tables to Monitor

JDBCまたはODBC経由でシステム・テーブルやプロシージャにアクセスできるため、ほとんどのモニタリング・システムでは、簡単なSQLクエリを使用して簡単にチェックできます。

SYSADMIN.ScheduleJobRun

  • 失敗したジョブをチェックするには、status = 'failed'failureReason
  • 長時間実行されているクエリを探すには、例えば、以下のステートメントで60秒以上実行されているクエリをチェックすることができます:

    SELECT sqlCommand,startTime,endTime,status,failureReason FROM SYSADMIN.ScheduleJobRun WHERE TIMESTAMPDIFF( SQL_TSI_SECOND, startTime, endTime ) > 60

    その他の時間間隔についてはDate and Time Functionsを、詳細についてはJobs and Schedulesを参照してください。

SYSADMIN.Queries

このテーブルでは、CData Virtuality Server に対して発行されたすべてのクエリを監視できます。

この例では、60秒以上実行されているクエリをチェックしています:

SELECT query,startTime,endTime,status,failureReason FROM SYSADMIN.Queries WHERE TIMESTAMPDIFF( SQL_TSI_SECOND, startTime, endTime ) > 60

その他の時間間隔についてはDate and Time Functionsを参照してください。

SYSADMIN.getAllDataSourcesMetadataDiff()

このプロシージャは、指定されたデータソースのメタデータの差分を返します:

SYSADMIN.getDataSourceMetadataDiff(IN name string)

WildFly Metrics

WildFlyは、 http://host:port/metrics URL(ホストとポートはWildFly管理インターフェースのもの)上で利用可能なメトリックのセットを公開することができます。デフォルトでは、CData Virtuality Server のWildFly メトリクスは http://localhost:9990/metrics で利用可能です。ホストは、dvserver-standalone.xmlファイルで以下のように構成できます:

<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:YOUR_HOST}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
</interfaces>

この変更にはCData Virtuality Server の再起動が必要です。この後、メトリクスは以下のサイトで利用できるようになります。 http://YOUR_HOST:9990/metrics.

Prometheus JMX Exporter

CData Virtuality Server は、標準的なWildFly メトリクスの代替としてPrometheus JMX Exporter もサポートしています。 Prometheus JMX Exporter メトリクスを構成するには、以下の手順に従います:

1. Download Prometheus JMX Exporter java エージェント(.jar ファイル)を/dvserver/binフォルダに配置します。

2. /dvserver/bin/standalone.conf(*nix の場合)または/dvserver/bin/standalone.conf.bat(Windows の場合)ファイルの #Prometheus JMX Exporter 構成のコメントを解除し、最後の行を以下のように更新します:

rem #Prometheus JMX Exporter
set "JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Djboss.modules.system.pkgs=org.jboss.logmanager -Dsun.util.logging.disableCallerCheck=true"
set "JAVA_OPTS=%JAVA_OPTS% -Xbootclasspath/a:%DVSERVERROOTDIR%\modules\system\layers\base\org\jboss\logmanager\main\jboss-logmanager-2.1.14.Final.jar;%DVSERVERROOTDIR%\modules\system\layers\base\org\wildfly\common\main\wildfly-common-1.5.2.Final.jar"
set "JAVA_OPTS=%JAVA_OPTS% -javaagent:%DVSERVERROOTDIR%\bin\YOUR_PROMETHEUS_AGENT.jar=YOUR_HOST:YOUR_PORT:%DVSERVERROOTDIR%\bin\jmx_prometheus_config.yml"

YOUR_PROMETHEUS_AGENTファイル名、 YOUR_HOSTYOUR_PORTの値が正しいことを確認してください。この例から jboss-logmanager と WildFly のパスをコピーせず、デフォルトで設定ファイル にある値を使用してください。

3. /dvserver/binフォルダにjmx_prometheus_config.yml設定ファイルを作成します。 jmx_prometheus_config.yml設定ファイルの内容についてはPrometheus JMX Exporter documentationを参照してください。

4. この変更にはCData Virtuality Server の再起動が必要です。この後、メトリックスは http://YOUR_HOST:YOUR_PORT/metricsでご覧いただけます。