モニタリング方法

Edge for Private Cloud v. 4.16.09

このドキュメントでは、オンプレミスでサポートされているコンポーネントの監視手法について説明します。 デプロイする方法を説明します

JMX の有効化

JMX は、Cassandra ではデフォルトで有効になり、他のすべての Edge ではデフォルトで無効になっています。 説明します。したがって、コンポーネントごとに個別に JMX を有効にする必要があります。

各コンポーネントは、異なるポートで JMX をサポートしています。次の表に、JMX ポートと そのポートで JMX を有効にするように変更したファイルを次のように変更します。

コンポーネント JMX ポート ファイル
管理サーバー 1099 /opt/apigee/edge-management-server/bin/start
Message Processor 1101 /opt/apigee/edge-mesage-processor/bin/start
Qpid 1102 /opt/apigee/edge-qpid-server/bin/start
Postgres 1103 /opt/apigee/edge-postgres-server/bin/start

たとえば、Management Server で JMX を有効にするには、 エディタで /opt/apigee/edge-management-server/bin/start を実行します。次の行が使われています。 Management Server を起動します。

exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config 
-Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path 
-Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel

この行を編集して以下を追加します。

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote.local.only=false  
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 

この行では、管理サーバーの JMX ポート番号を 1099 として指定しています。 各コンポーネントのポート番号を指定します。例:

exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts 
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote.local.only=false  
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 
-Djava.security.auth.login.config=$conf_path/jaas.config 
-Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel

ファイルを保存してから、コンポーネントを再起動します。たとえば、Compute Engine のインスタンスを サーバー:

> /opt/apigee/apigee-service/bin/ apigee-service edge-management-server restart

JMX 認証の有効化と有効化 JMX パスワードの設定

Management Server、Message Processor、Qpid、Postgres のモニタリング プロセスは、 JMX を使用します。JMX はデフォルトで有効になっており、リモート JMX アクセスにパスワードは必要ありません。

JMX 認証を有効にするために、各コンポーネントには change_jmx_auth アクションがあり、これを使用して 認証の有効化/無効化、JMX 認証情報の設定などができます。

JMX 認証を有効にするには、次のコマンドを使用します。

>  /<inst_root>/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile

ここで

  • comp は、edge-management-server、edge-message-processor、 Edge-qpid-server、または edge-postgres-server.
  • 次の選択肢があります。 <ph type="x-smartling-placeholder">
      </ph>
    • -u: ユーザー名
    • -p: パスワード
    • -e: y(有効にする)または n (dsiable)
  • 構成ファイルの内容: <ph type="x-smartling-placeholder">
      </ph>
    • JMX_USERNAME=ユーザー名
    • JMX_ENABLED=y/n
    • JMX_PASSWORD=password (設定されていない場合、または -p で渡されない場合は、プロンプトが表示されます)

たとえば、コマンドラインでオプションを使用するには、次のようにします。

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y

構成ファイルがある場合:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile

複数のノードで Edge を実行している場合は、すべてのノードで同じ ユーザー名とパスワードです。

後で JMX 認証を無効にするには、次のコマンドを使用します。

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n

管理サーバー

使用 JConsole によるシステムのヘルスチェックのモニタリングと情報の処理

JConsole(JMX 準拠のツール)を使用して、ヘルスチェックとプロセスの統計情報を管理およびモニタリングします。 JConsole を使用すると、Management Server(または任意のサーバー)によって公開された JMX 統計情報を利用できます。 グラフィカルインターフェースで表示できますJConsole の使用方法の詳細については、http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html をご覧ください。

JConsole と次のサービス URL を使用して JMX 属性をモニタリングします (MBeans)です。

service:jmx:rmi:///jndi/rmi://<ip address>:<port>/platform

ここで、<ip address> は Management Server(または あります。デフォルトでは、Management Server のポートは 1099 です。

次の表に、JMX の一般的な統計情報を示します。

JMX MBeans

JMX 属性

メモリ

HeapMemoryUsage

NonHeapMemoryUsage

用途

注: 属性値は、commit された、 init、max、used です。

Edge Application API の使用 チェック

Management Server(または任意のサーバー)で API チェックを実行するには、次の関数を呼び出します。 CURL コマンド:

curl http://<host>:8080/v1/servers/self/up

ここで、&lt;host&gt; は管理用の IP アドレスです。 できます。

この呼び出しは「true」を返します。「false」に設定します。true の場合、ノードは稼働しており、Java サービスは稼働しています。 できます。

HTTP 200(OK)レスポンスを受信しない場合、Edge はポート 8080 に応答できません。 できます。

トラブルシューティング

  1. サーバーにログインして、次のコマンドを実行します。
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service Edge 管理サーバーのステータス
  2. サービスが実行されていない場合は、サービスを開始します。
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service Edge-management-server start

Edge の使用 アプリケーション - ユーザー、組織、デプロイのチェック

Management Server は、各オンプレミス ゾーンでその他すべての区画をまとめて管理する インストールできます。ユーザー、組織、デプロイのステータスは管理サーバーで確認できます 以下のコマンドを発行します。

curl -u userEmail:password http://localhost:8080/v1/users
curl -u userEmail:password http://localhost:8080/v1/organizations
curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments

システムに「deployed」と表示されます。ステータスが表示されます。失敗した場合は、 次のとおりです。

  1. Management Server のログを確認する(&lt;inst_root&gt;/apigee/var/log/edge-management-server) 確認してください
  2. Management Server に対して呼び出しを行い、機能しているかどうかを確認します。 確認します。
  3. ELB からサーバーを削除してから、Management Server を再起動します。
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service Edge-management-server の再起動

ルーター

Router(または任意のサーバー)で API チェックを実行するには、次の CURL を呼び出します。 command:

curl http://<host>:8081/v1/servers/self/up

ここで、host は Router の IP アドレスです。

この呼び出しは「true」を返します。「false」に設定します。true の場合、ノードは稼働しており、ルーター 表示されます。

HTTP 200(OK)レスポンスを受信しない場合、Edge はポート 8081 に応答できません。 できます。

トラブルシューティング

  1. サーバーにログインして、次のコマンドを実行します。
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service エッジルーターのステータス
  2. サービスが実行されていない場合は、サービスを開始します。
    /&lt;inst_root&gt;/apigee/apigee-service/bin/apigee-service エッジルーターの起動
  3. 再起動後、動作していることを確認します。
    curl -v http://localhost:port/v1/servers/self/up

    ここで、port は Router では 8081、Message Processor では 8082 です。

Message Processor

使用 JConsole によるシステムのヘルスチェックのモニタリングと情報の処理

Management Server についても同じ操作を行います。

: ポート – 1101 を使用してください。

Edge Application API の使用 チェック

前述のルーターについても同じ手順を行います。

: ポート 8082 を使用していることを確認してください。

JMX メッセージ フロー チェックの使用

Management Server についても同じ操作を行います。

: ポート – 1101 を使用してください。

Qpid サーバー

JConsole の使用 システムのヘルスチェックをモニタリングし、情報を

Management Server についても同じ操作を行います。

: ポート – 1102 を使用してください。

Edge Application API チェックの使用

Management Server についても同じ操作を行います。

: ポート 8083 を使用していることを確認してください。次の CURL コマンドは、 Qpid Server でもサポートされています。

curl http://<qpid_IP>:8083/v1/servers/self

Postgres サーバー

使用 JConsole によるシステムのヘルスチェックのモニタリングと情報の処理

Management Server についても同じ操作を行います。

: ポート - 1103 を使用していることを確認してください。

Edge Application API チェックの使用

Management Server についても同じ操作を行います。

: ポート 8084 を使用していることを確認してください。次の CURL コマンドは、 Postgres Server でもサポートされます。

curl http://<postgres_IP>:8084/v1/servers/self

Edge の使用 アプリケーションの編成と環境のチェック

Postgres サーバーにオンボーディングされている組織名と環境名を確認できます。 次の CURL コマンドを実行します。

curl http:// <postgres_IP>:8084/v1/servers/self/organizations

: ポート 8084 を使用していることを確認してください。

組織名と環境名が表示されます。

Edge アプリケーションの axstatus を使用する チェック

分析サーバーのステータスを確認するには、次の CURL を発行します。 使用できます。

curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus

すべての分析サーバーの [SUCCESS] ステータスが表示されます。上記の CURL の出力 コマンドを示しています。

{
  "environments" : [ {
    "components" : [ {
      "message" : "success at Thu Feb 28 10:27:38 CET 2013",
      "name" : "pg",
      "status" : "SUCCESS",
      "uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]"
     }, {
      "message" : "success at Thu Feb 28 10:29:03 CET 2013",
      "name" : "qs",
      "status" : "SUCCESS",
      "uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]"
     } ],
    "message" : "",
    "name" : "prod"
   } ],
  "organization" : "acme",
  "status" : "SUCCESS"
}

PostgreSQL データベース

check_postgres.pl の使用 スクリプト

PostgreSQL データベースをモニタリングするには、標準のモニタリング スクリプト check_postgres.pl を使用します。このスクリプトは、次の場所から入手できます。 http://bucardo.org/wiki/Check_postgres.

: スクリプト check_postgres.pl を各 Postgres にインストールする必要があります。 あります。

スクリプトを実行する前に:

  1. perl-Time-HiRes.x86_64 がインストールされていることを確認します。これは、 高精度アラーム、スリープ、gettimeofday、インターバルタイマーを実装しています。たとえば、 次のコマンドを使用してインストールできます。
    yum インストール perl-Time-HiRes.x86_64

スクリプト check_postgres.pl を使用した API 呼び出しのデフォルトの出力は、Nagios と互換性があります。変更後 スクリプトをインストールしたら、次のチェックを行います。

  1. データベースのサイズ - データベースのサイズを確認します。
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --Critical='900 GB'
  2. データベースへの受信接続 - データベースへの受信接続の数をチェックします。 データベースを調べて、最大許容接続数と比較します。
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action バックエンド
  3. データベースの可用性とパフォーマンス - データベースが稼働しているか、 使用可能:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. ディスク容量 - ディスク容量を確認します。
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --Critical='90%'
  5. オンボーディングされた組織/環境 - 組織の数と Postgres ノードにオンボーディングされた環境:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result schemaname='analytics' の pg_tables から%fact などのテーブル名を使用します。--warning='80' --Critical='90'--valtype=integer

: http://bucardo.org/check_postgres/check_postgres.pl.html を参照してください。 を参照してください。

DB チェック

PostgreSQL データベースに適切なテーブルが作成されていることを確認できます。PostgreSQL にログインする データベースに

psql  -h /opt/apigee/var/run/apigee-postgresql/  -U apigee -d apigee

次のコマンドを実行します。

\d analytics."<org>.<env>.fact"

postgres のヘルス ステータスを確認する プロセス

postgres マシンで API チェックを実行するには、次の CURL コマンドを呼び出します。

http://<postgres_IP>:8084/v1/servers/self/health/

: ポート 8084 を使用していることを確認してください。

postgres プロセスがアクティブになると、「ACTIVE」ステータスが返されます。Postgres が 「INACTIVE」ステータスが返されます。

Postgres のリソース

Apache Cassandra

JConsole の使用 – モニタリングタスク 統計データ

JConsole と次のサービス URL を使用して JMX 属性をモニタリングします (MBeans)です。

service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi

ここで、<ip address> は Cassandra の IP アドレスです。 あります。

JMX はデフォルトで Cassandra に対して有効になっています。Cassandra へのリモート JMX アクセスには、 あります。

JMX 認証を有効にしてパスワードを追加するには:

  1. /&lt;inst_root&gt;/apigee/customer/application/cassandra.properties を編集します。 ファイルが存在しない場合は作成します。
  2. このファイルに次の内容を追加します。
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. ファイルを保存します。
  4. 次のファイルを $JAVA_HOME ディレクトリから以下にコピーします。 /&lt;inst_root&gt;/apigee/data/apigee-cassandra/:
    cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password

    cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
  5. jmxremote.password と ファイルにユーザー名とパスワードを追加します。
    cassandra パスワード

    ここで、password は JMX のパスワードです。
  6. jmxremote.access と 次のロールを追加します。
    cassandra 読み取り / 書き込み
  7. ファイルの所有者が「apigee」であることを確認します。ファイルモードが 400 であることを確認します。
    &gt;chown apigee:apigee /&lt;inst_root&gt;/apigee/data/apigee-cassandra/jmxremote.*
    &gt;chmod 400 /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
  8. configure を実行する Cassandra:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra 構成
  9. Cassandra を再起動します。
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra 再起動

後で認証を無効にするには:

  1. /&lt;inst_root&gt;/apigee/customer/application/cassandra.properties を編集します。
  2. ファイルから次の行を削除します。
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Cassandra で構成を実行します。
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra 構成
  4. Cassandra を再起動します。
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra 再起動

Cassandra JMX の統計情報

JMX MBeans

JMX 属性

ColumnFamilies/apprepo/environments

ColumnFamilies/apprepo/organizations

ColumnFamilies/apprepo/apiproxy_revisions

ColumnFamilies/apprepo/apiproxies

ColumnFamilies/audit/audits

ColumnFamilies/audit/audits_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

nodetool ユーティリティを使用して、 クラスタノードを管理する

Cassandra のコマンドライン インターフェースである nodetool ユーティリティを使用して、 提供します。このユーティリティは &lt;inst_root&gt;/apigee/apigee-cassandra/bin にあります。

nodetool ユーティリティの詳細については、http://www.datastax.com/docs/1.0/references/nodetool をご覧ください。

すべての Cassandra クラスタノードで、次の呼び出しを行うことができます。

  1. 一般的なリング情報(単一の Cassandra ノードでも可能): 「上」「Normal」自動的に適用されます。
    [host]# nodetool -h localhost 着信音

    上記のコマンドの出力は次のようになります。
    住所 DC ラック ステータス ステータス 負荷 所有 トークン
    192.168.124.201 dc1 ra1 上方 通常 1.67 MB 33,33% 0
    192.168.124.202 dc1 ra1 上方 通常 1.68 MB 33,33% 56713727820156410577229101238628035242
    192.168.124.203 dc1 ra1 上方 通常 1.67 MB 33,33% 113427455640312821154458202477256070484
  2. ノードに関する一般情報(ノードあたりの呼び出し)
    nodetool -h localhost info

    上記のコマンドの出力は次のようになります。
    トークン : 0
    ゴシップがアクティブ : true
    読み込み : 1.67 MB
    世代番号 : 1361968765
    稼働時間(秒): 78108
    ヒープメモリ(MB): 46,80 / 772,00
    データセンター : dc1
    ラック : ra1
    例外 : 0 件
  3. Thrift サーバーのステータス(クライアント API の提供)
    host]# nodetool -h localhost ステータススリフト

    上記のコマンドの出力には、ステータスが「running」と表示されます。
  4. データ ストリーミング オペレーションのステータス: Cassandra のトラフィックを監視します。 ノード
    nodetool -h localhost netstats 192.168.124.203

    上記のコマンドの出力は次のようになります。
    モード: NORMAL
    /192.168.124.203 には何もストリーミングされません
    /192.168.124.203 から何もストリーミングされていません
    プール名がアクティブ、保留中、完了
    コマンド なし 0 1,688
    回答 該当なし 0 292277

Cassandra モニタリング(UI)

datastax opscenter の URL(http://www.datastax.com/products/opscenter)を参照してください。

Cassandra リソース

http://www.datastax.com/docs/1.0/operations/monitoring をご覧ください。

Apache ZooKeeper

ZooKeeper ステータスの確認

  1. ZooKeeper プロセスが実行されていることを確認します。ZooKeeper は PID ファイルを &lt;inst_root&gt;/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid に書き込みます。
  2. ZooKeeper ポートをテストして、ポート 2181 とポート 2181 への TCP 接続を確立できることを確認する すべての ZooKeeper サーバーで 3888。
  3. ZooKeeper データベースから値を読み取れることを確認します。ZooKeeper を使用して接続する クライアント ライブラリ(または /&lt;inst_root&gt;/apigee/apigee-zookeeper/bin/zkCli.sh) 読み取ります
  4. ステータスを確認します。
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

ZooKeeper の 4 文字の単語の使用

ZooKeeper は、サービス アカウントに送信される少数のコマンド(4 文字の単語)を netcat(nc)または telnet を使用してポート 2181 に接続し、

ZooKeeper コマンドの詳細については、http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands をご覧ください。

例:

  • srvr: すべての詳細情報を表示します。 指定します。
  • stat: 簡単な説明が表示されます。 認証と認可が行われます。

ZooKeeper ポートに次のコマンドを発行できます。

  1. 4 文字のコマンド ruok を実行して、サーバーがエラー以外の状態で動作しているかどうかをテストします。 「imok」が返されます。
    echo ruok |nc <ホスト> 2,181

    戻り値:
    imok
  2. 4 文字のコマンド stat を実行して、サーバーのパフォーマンスと接続されたクライアントを一覧表示する できます。
    echo stat |nc <ホスト> 2,181

    戻り値:
    Zookeeper バージョン: 3.4.5-1392090、 ビルド日: 09/30/2012 17:52 GMT
    クライアント:
    /0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0)
    /192.168.124.201:42388[1](queued=0,recved=8433,sent=8433)
    /192.168.124.202:42185[1](queued=0,recved=1339,sent=1347)
    /192.168.124.204:39296[1](queued=0,recved=7688,sent=7692)
    レイテンシ(最小/平均/最大): 0/0/128
    受信済み: 26144
    送信済み: 26160
    接続数: 4
    未処理: 0
    Zxid: 0x2000002c2
    モード: フォロワー
    ノード数: 283

    : ZooKeeper が Mode: Leader に設定されているかどうかを確認することが重要な場合があります。 フォロワーやオブザーバーです。
  3. netcat(nc)が使用できない場合は、代わりに Python を使用できます。ファイルを作成する zookeeper.py という名前の 次の要素が含まれます。
    インポート時間、ソケット、
    sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    c.connect((sys.argv[1], 2181))
    c.send(sys.argv[2])
    time.sleep(0.1)
    print c.recv(512)


    以下の Python 行を実行します。
    Python zookeeper.py 192.168.124.201 Ruok
    Python zookeeper.py 192.168.124.201 stat

OpenLDAP

LDAP レベルのテスト

OpenLDAP をモニタリングして、特定のリクエストが適切に処理されているかどうかを確認できます。イン つまり、正しい結果を返す特定の検索があるかどうかを確認します。

  1. ldapsearch を使用する (yum install openldap-clients) システム管理者のエントリをクエリできますこのエントリは、すべての API 呼び出しの認証に使用されます。
    ldapsearch -b &quot;uid=admin,ou=users,ou=global,dc=apigee,dc=com&quot;-x -W -D "cn=manager,dc=apigee,dc=com"- 時間 ldap://localhost:10389 -LLL

    LDAP 管理者パスワード
    の入力を求められます。 LDAP パスワードを入力します。

    パスワードを入力すると、次の形式のレスポンスが表示されます。
    dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com
    オブジェクト クラス: OrganizationsPerson
    オブジェクト クラス: ユーザー
    objectClass: inetOrgPerson
    objectClass: 上
    uid: 管理者
    Cn: 管理者
    sn: 管理者
    userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ=
    =
    メール: opdk@apigee.com
  2. Management Server が LDAP の問題に引き続き接続されているかどうかを確認します。
    curl -u <ユーザーの電子メール>:<パスワード>http://localhost:8080/v1/users/&lt;ADMIN&gt;

    戻り値:
    {
    &quot;emailId&quot;: <管理者>、
    「firstName」: "admin",
    "lastName": "admin"
    }

また、OpenLDAP キャッシュをモニタリングして、ディスク アクセスの回数を減らすこともできます。 システムの性能向上につながりますGoogle Cloud コンソールでキャッシュ サイズをモニタリングして OpenLDAP サーバーは、ディレクトリ サーバーのパフォーマンスに大きな影響を与える可能性があります。ログは ファイル(&lt;inst_root&gt;/apigee/var/log) キャッシュに関する情報が表示されます。