Monitoring CData Virtuality Server
サーバーログをリアルタイムで見ることができます。tail
(Linuxシステムを使用していない場合は、Windows用のTail)を使用して、コマンドラインからアクティビティストリームを読み取ります。さらに、サーバーの背後にあるJavaプロセスを監視することもできます。パフォーマンス・カウンターやネットワーク通信のためにJavaプロセスを監視したい場合に使用できるツールについて簡単に説明します。
Process Monitoring on Linux
Linuxには、基本的で便利なツールが用意されています。top、htop、netstat、tailの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_HOST
、YOUR_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でご覧いただけます。