モニタリング方法

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

概要

Edge では、複数の方法でサービスの詳細を取得したり、サービスを確認したりできます。 ステータスです。次の表に、対象ごとに実施できるチェックの種類を示します。 service:

Mgmt API
コンポーネント メモリ使用量 [JMX*] Service Check(サービスの確認) ユーザー/組織/ デプロイ ステータス axstatus データベース チェック apigee-service のステータス apigee-monit**
Management Server
Message Processor
ルーター
Qpid
Postgres
詳細 詳細 詳細 詳細 詳細 詳細 詳細

* JMX を使用する前に、JMX を有効にする必要があります。 JMX を有効にするをご覧ください。

** apigee-monit サービスは、コンポーネントが稼働しているかどうかを確認し、 必要ない場合は再起動してください。詳しくは、Google Cloud での自己修復 apigee-monit をインストールします。

ポートと構成ファイルのモニタリング

各コンポーネントは、Java Management Extensions(JMX)と Management API のモニタリング呼び出しを ポートごとに異なります。「 次の表に、サーバーの種類ごとに JMX と Management API のポートを示します。 構成ファイルの場所:

コンポーネント JMX ポート Management API ポート 構成ファイルの場所
管理サーバー 1099 8080 $APIGEE_ROOT/customer/application/management-server.properties
Message Processor 1101 8082 $APIGEE_ROOT/customer/application/message-processor.properties
ルーター 1100 8081 $APIGEE_ROOT/customer/application/router.properties
Qpid 1102 8083 $APIGEE_ROOT/customer/application/qpid-server.properties
Postgres 1103 8084 $APIGEE_ROOT/customer/application/postgres-server.properties

JMX を使用してコンポーネントをモニタリングする

以降のセクションでは、JMX を使用して Edge コンポーネントをモニタリングする方法について説明します。

JMX を有効にする

認証または SSL ベースの通信なしで JMX を有効にするには、次の手順を行います。 注: 本番環境システムでは、暗号化した認証と SSL の両方を有効にする必要があります。 セキュリティです。

  1. 適切な設定ファイルを編集します( 構成ファイルのリファレンスをご覧ください)。構成ファイルが存在しない場合は作成します。
    conf_system_jmxremote_enable=true
  2. 構成ファイルを保存して、apigee:apigee が所有していることを確認します。
  3. 適切な Edge コンポーネントを再起動する
    apigee-service edge-management-server restart

JMX を無効にするには、conf_system_jmxremote_enable プロパティを削除するか、 値を false に設定します。次に、適切な Edge コンポーネントを再起動します。

JMX での認証

Edge for Private Cloud は、ファイルに保存された詳細情報を使用したパスワード ベースの認証をサポートしています。 セキュリティを強化するために、パスワードをハッシュとして保存できます。

  1. Edge-* コンポーネントで JMX 認証を有効にするには、適切な構成ファイルを編集します。 ( 構成ファイルのリファレンスをご覧ください)。構成ファイルが存在しない場合は作成します。
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_authenticate=true
    conf_system_jmxremote_encrypted_auth=true
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
    構成ファイルを保存して、apigee:apigee が所有していることを確認します。
  2. パスワードの SHA256 ハッシュを作成します。
    echo -n '' | openssl dgst -sha256
  3. JMX ユーザー認証情報を含む jmxremote.password ファイルを作成します。 <ph type="x-smartling-placeholder">
      </ph>
    1. 次のファイルを $JAVA_HOME ディレクトリから以下にコピーします。 /opt/apigee/customer/application/<component>/ ディレクトリ内にあります。
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
    2. ファイルを編集し、次の構文を使用して JMX のユーザー名とパスワードを追加します。
      USERNAME <HASH-PASSWORD>
    3. ファイルの所有者が apigee であることと、ファイルモードが 400 であることを確認します。
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
  4. JMX ユーザー権限を持つ jmxremote.access ファイルを作成します。 <ph type="x-smartling-placeholder">
      </ph>
    1. 次のファイルを $JAVA_HOME ディレクトリから以下にコピーします。 ディレクトリ /opt/apigee/customer/application/<component>/
      
      cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
    2. ファイルを編集し、JMX ユーザー名に続けて権限(READONLY/READWRITE)を追加します
      USERNAME READONLY
    3. ファイルの所有者が apigee であることと、ファイルモードが 400 であることを確認します。
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
  5. 適切な Edge コンポーネントを再起動します。
    apigee-service edge-management-server restart

JMX 認証を無効にするには、このプロパティを削除するか、 conf_system_jmxremote_authenticate するか、値を false に変更します。 適切な Edge コンポーネントを再起動します。

JMX での SSL

Edge-* コンポーネントで SSL ベースの JMX を有効にするには:

  1. 適切な構成ファイルを編集する ( 構成ファイルのリファレンスをご覧ください)。構成ファイルが存在しない場合は作成します。
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_ssl=true
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
    conf_system_javax_net_ssl_keystorepassword=<keystore-password>
    構成ファイルを保存して、apigee:apigee が所有していることを確認します。
  2. サーバーキーを格納するキーストアを準備し、 上記の構成 conf_system_javax_net_ssl_keystore。キーストア ファイルを確認する apigee:apigee で読み取ることができます。
  3. 適切な Edge コンポーネントを再起動します。
    apigee-service edge-management-server restart

SSL ベースの JMX を無効にするには、プロパティ conf_system_jmxremote_ssl を削除します。 値をfalseに変更します。適切な Edge コンポーネントを再起動します。

Jconsole 経由のモニタリング

jconsole を使用したモニタリング手順は、 https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole.

「JMX で SSL が有効になっている場合は、トラストストアとトラストストアのパスワードを使用して jconsole を起動する必要がある」という 1 行を追加できます。参照: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

JConsole によるモニタリング

JConsole(JMX 準拠のツール)を使用して、ヘルスチェックとプロセスの統計情報を管理およびモニタリングします。 JConsole では、サーバーによって公開された JMX 統計情報を使用して、 グラフィカルインターフェースです詳細については、次をご覧ください: JConsole の使用

JMX で SSL が有効になっている場合は、トラストストアとトラストストアのパスワードを使用して JConsole を起動する必要があります。 <ph type="x-smartling-placeholder"></ph>をご覧ください。 JConsole の使用をご覧ください。

JConsole では、次のサービス URL を使用して、 JMX:

service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi

ここで

  • IP_address は、モニタリングするサーバーの IP アドレスです。
  • port_number は、使用するサーバーの JMX ポート番号です。 モニタリングできます。

たとえば、Management Server をモニタリングするには、次のようなコマンドを実行します( サーバーの IP アドレスは 216.3.128.12 です)。

service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi

この例では、管理サーバーの JMX ポートであるポート 1099 を指定していることに注意してください。その他の JMX と Management API のモニタリング ポートをご覧ください。

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

JMX MBeans JMX 属性

メモリ

HeapMemoryUsage

NonHeapMemoryUsage

用途

構成ファイルのリファレンス

以降のセクションでは、Edge コンポーネント構成に加える必要のある変更について説明します。 JMX 関連の構成用のディレクトリです。詳しくは、 詳細については、ポートと構成ファイルのモニタリングをご覧ください。 情報です。

適切なコンポーネントの構成ファイルに追加する JMX 構成

  • エッジ コンポーネントで JMX エージェントを有効にします。デフォルトは false です。
    conf_system_jmxremote_enable=true

パスワード ベースの認証の構成

  • パスワード ベースの認証を有効にする。デフォルトは false です。
    conf_system_jmxremote_authenticate=true
  • アクセス ファイルのパス。Apigee ユーザーのみが所有し、読み取ることができる必要があります。
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
  • パスワード ファイルのパス。Apigee ユーザーのみが所有し、読み取ることができる必要があります。
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
  • 暗号化された形式でのパスワードの保存を有効にします。デフォルトは false です。
    conf_system_jmxremote_encrypted_auth=true

SSL ベースの JMX の構成

  • JMX 通信の SSL を有効にします。デフォルトは false です。
    conf_system_jmxremote_ssl=true
  • キーストアへのパス。Apigee ユーザーのみが所有し、読み取ることができる必要があります。
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
  • キーストアのパスワード:
    conf_system_javax_net_ssl_keystorepassword=changeme

オプションの JMX 構成

記載されている値はデフォルト値であり、変更できます。

  • JMX ポート。次の表にデフォルト値を示します。
    conf_system_jmxremote_port=
  • JMX RMI ポート。デフォルトでは、Java プロセスはランダムなポートを選択します。
    conf_system_jmxremote_rmi_port=
  • リモートスタブのホスト名。localhost のデフォルトの IP アドレス。
    conf_system_java_rmi_server_hostname=
  • JMX レジストリを SSL で保護します。デフォルトは false です。SSL が有効な場合にのみ適用されます。
    conf_system_jmxremote_registry_ssl=false

Management API を使用してモニタリングする

Edge には、サーバーでサービス チェックを実行するために使用できる API がいくつか用意されています。 ユーザー、組織、デプロイメントをチェックします。このセクションでは、これらの API について説明します。

サービスのチェックを行う

Management API には、アプリケーションのモニタリングと問題を診断するためのエンドポイントがいくつか用意されています。 提供します。エンドポイントには次のものがあります。

エンドポイント 説明
/servers/self/up

サービスが実行されているかどうかを確認します。この API 呼び出しでは、 あります。

サービスが実行されている場合、このエンドポイントから次のレスポンスが返されます。

<ServerField>
  <Up>true</Up>
</ServerField>

サービスが実行されていない場合は、次のようなレスポンスが返されます。 (サービスの種類と確認方法によって異なります)。

curl: Failed connect to localhost:port_number; Connection refused
/servers/self

サービスに関する次のような情報を返します。

  • 構成プロパティ
  • 開始時間と稼働時間
  • ビルド、RPM、UUID の情報
  • 内部および外部のホスト名と IP アドレス
  • リージョンと Pod
  • <isUp> プロパティ。サービスが実行されているかどうかを示します。

この API 呼び出しでは、Apigee 管理者の認証情報で認証する必要があります。

これらのエンドポイントを使用するには、curlなどのユーティリティを 次の構文を示しています。

curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"

ここで

  • host は、確認するサーバーの IP アドレスです。Google アカウントにログインしている場合 "localhost" を使用できます。それ以外の場合は、サーバーの IP アドレスも指定します。 使用します。
  • port_number は、確認するサーバーの Management API ポートです。これは、 コンポーネントのタイプごとに異なるポートを使用します。たとえば、Management Server の Management API のポートは 8080 です。使用する Management API ポート番号の一覧については、以下をご覧ください。 JMX および Management API モニタリング ポート

レスポンスの形式を変更するには、Accept ヘッダーを次のように指定します。 &quot;application/json&quot;または「application/xml」と指定します。

次の例では、localhost(ポート 8081)上の Router のステータスを取得します。

curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"

次の例では、216.3.128.12(ポート: 216.3.128.12)にある Message Processor の情報を取得します。 8082):

curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password
  -H "Accept: application/xml"

ユーザー、組織、デプロイのステータスをモニタリングする

Management API を使用すると、組織のユーザー、組織、デプロイ ステータスを 次のコマンドを実行すると、Management Server と Message Processor 上にプロキシを作成できます。

curl http://host:port_number/v1/users -u sysAdminEmail:password
curl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password

ここで、port_number は、8080(管理サーバー)または 8082(メッセージ)のいずれかです。 データ処理者

この呼び出しでは、システム管理ユーザー名と あります。

サーバーは「deployed」というメッセージを返しますステータスが表示されます。失敗した場合は、次の操作を行います。

  1. エラーがないかサーバーログを確認してください。ログは次の場所にあります。 <ph type="x-smartling-placeholder">
      </ph>
    • 管理サーバー: opt/apigee/var/log/edge-management-server
    • Message Processor: opt/apigee/var/log/edge-message-processor
  2. サーバーに対して呼び出しを行い、正常に機能しているかどうかを確認します。
  3. サーバーを ELB から削除して再起動します。
    /opt/apigee/apigee-service/bin/apigee-service service_name restart

    ここで、service_name は次のようになります。

    • edge-management-server
    • edge-message-processor

apigee-service コマンドを使用してステータスを確認する

次の場合、apigee-service コマンドを使用して Edge サービスのトラブルシューティングを行うことができます。 ログインする必要があります。

apigee-service でサービスのステータスを確認するには:

  1. サーバーにログインして次のコマンドを実行します。
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    ここで、service_name は次のいずれかです。

    • 管理サーバー: edge-management-server
    • Message Processor: edge-message-processor
    • Postgres: edge-postgres-server
    • Qpid: edge-qpid-server
    • ルーター: edge-router

    例:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
  2. サービスが実行されていない場合は、サービスを開始します。
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. サービスを再起動したら、 以前に使用した apigee-service status コマンド、または Management API で使用したコマンド Management API を使用してモニタリングするをご覧ください。

    例:

    curl -v http://localhost:port_number/v1/servers/self/up

    ここで、port_number はサービスの Management API ポートです。

    この例では、ユーザーがサーバーにログインしていて、「localhost」を使用できることを前提としています。として 使用します。Management API を使用してリモートでステータスを確認するには、IP アドレスを指定する必要があります。 API にシステム管理者のユーザー名とパスワードを含めます。 あります。

Postgres のモニタリング

Postgres は、ステータスの確認に使用できるいくつかのユーティリティをサポートしています。これらのユーティリティは 以降のセクションで説明します。

Postgres 上の組織と環境を確認する

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

curl -v http://postgres_IP:8084/v1/servers/self/organizations

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

アナリティクスのステータスを確認する

次のコマンドを実行すると、Postgres と Qpid の分析サーバーのステータスを確認できます。 curl コマンド:

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

次の例のように、すべての分析サーバーの成功ステータスが表示されます。 表示されます。

{
  "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 データベース

このセクションでは、Postgres のモニタリングに特化した手法について説明します。 データベースです

check_postgres.pl スクリプトを使用する

PostgreSQL データベースをモニタリングするには、標準のモニタリング スクリプトを使用します。 check_postgres.pl。詳細については、次をご覧ください: http://bucardo.org/wiki/Check_postgres.

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

  1. 各 Postgres ノードに check_postgres.pl スクリプトをインストールする必要があります。
  2. perl-Time-HiRes.x86_64 がインストールされていることを確認します。Perl モジュールとは、 高精度アラーム、スリープ、gettimeofday、インターバルタイマーを実装しています。たとえば、 次のコマンドを使用してインストールできます。
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: CentOS v7 で check_postgres.pl を使用する前に、 perl-Data-Dumper.x86_64 rpm。

check_postgres.pl の出力

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 backends
  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 from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer

データベース チェックを実行する

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

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

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

\d analytics."org.env.fact"

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

Postgres マシンで API チェックを実行するには、次の curl を呼び出します。 command:

curl -v http://postgres_IP:8084/v1/servers/self/health

postgres プロセスがアクティブの場合、このコマンドは ACTIVE ステータスを返します。もし Postgres プロセスが稼働しておらず、INACTIVE ステータスが返されます。

Postgres リソース

Postgres サービスのモニタリングの詳細については、以下をご覧ください。

Apache Cassandra

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

Cassandra に対して JMX 認証を有効にする

Cassandra に対して JMX 認証を有効にできます。その後、次の作業を行います。 nodetool ユーティリティのすべての呼び出しにユーザー名とパスワードを渡します。

Cassandra の JMX 認証を有効にするには:

  1. cassandra.properties ファイルを作成して編集します。 <ph type="x-smartling-placeholder">
      </ph>
    1. /opt/apigee/customer/application/cassandra.properties ファイルを編集します。もし ファイルが存在しない場合は、作成してください。
    2. 次のコードをファイルに追加します。
      conf_cassandra_env_com.sun.management.jmxremote.authenticate=true
      conf_cassandra_env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.password
      conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.access
    3. cassandra.properties ファイルを保存します。
    4. 次の例のように、ファイルの所有者を apigee:apigee に変更します。
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    プロパティ ファイルを使用してトークンを設定する方法の詳細については、 Edge の構成方法

  2. jmx_auth.sh を作成して編集します。 <ph type="x-smartling-placeholder">
      </ph>
    1. 次の場所にファイルを作成します(存在しない場合)。
      /opt/apigee/customer/application/jmx_auth.sh
    2. このファイルに次のプロパティを追加します。
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. jmx_auth.sh ファイルを保存します。
    4. ファイルのソース:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. jmxremote.password ファイルをコピーして編集します。 <ph type="x-smartling-placeholder">
      </ph>
    1. 次のファイルを $JAVA_HOME ディレクトリからコピーし、 /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
    2. jmxremote.password ファイルを編集して、JMX のユーザー名とパスワードを追加します。 次の構文を使用します。
      JMX_USERNAME JMX_PASSWORD

      ここで、JMX_USERNAMEJMX_PASSWORD は JMX のユーザー名です。 パスワードを入力します。

    3. ファイルの所有者が「apigee」であることを確認します。ファイルモードが 400 であることを確認します。
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
  4. jmxremote.access ファイルをコピーして編集します。 <ph type="x-smartling-placeholder">
      </ph>
    1. 次のファイルを $JAVA_HOME ディレクトリからコピーし、 /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.access
      $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
    2. jmxremote.access ファイルを編集して、次のロールを追加します。
      JMX_USERNAME readwrite
    3. ファイルの所有者が「apigee」であることを確認します。ファイルモードが 400 であることを確認します。
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
  5. Cassandra で configure を実行します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Cassandra を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. 他のすべての Cassandra ノードで、この手順を繰り返します。

JMX パスワード暗号化を有効にする

JMX パスワード暗号化を有効にするには、次の操作を行います。

  1. source/conf/casssandra-env.sh ファイルを開きます。
  2. cassandra.properties ファイルを作成して編集します。 <ph type="x-smartling-placeholder">
      </ph>
    1. /opt/apigee/customer/application/cassandra.properties ファイルを編集します。条件 ファイルが存在しない場合は作成します。
    2. 次のコードをファイルに追加します。
      conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
    3. cassandra.properties ファイルを保存します。
    4. 次の例のように、ファイルの所有者を apigee:apigee に変更します。
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  3. コマンドラインで次のコマンドを入力し、目的のパスワードの SHA1 ハッシュを生成します。 echo -n 'Secret' | openssl dgst -sha1
  4. 次のパスワードのユーザー名に対して $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password( 参照)。
  5. Cassandra で config を実行します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Cassandra を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. 他のすべての Cassandra ノードで、この手順を繰り返します。

Cassandra で SSL を使用した JMX を有効にする

SSL で JMX を有効にすると、通信の JMX ベースの通信と暗号化が強化されます。 CassandraSSL で JMX を有効にするには、Cassandra に鍵と証明書を渡して、 SSL ベースの JMX 接続を受け入れます。nodetool(およびその他のツール)も構成する必要があります。 (JMX を介して Cassandra と通信する)を SSL 用にサポートします。

SSL 対応の JMX では、平文と暗号化された JMX パスワードの両方がサポートされます。

Cassandra で SSL を使用した JMX を有効にするには、次の操作を行います。

  1. JMX を有効にします。 必要に応じてパスワードの暗号化を有効にします。
  2. Cassandra の JMX 認証を有効にします。 必要があります。構成されたノードが Nodetool によって ユーザー名とパスワードです。
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. キーストアとトラストストアを準備します。

    • キーストアには鍵と証明書、 Cassandra サーバーの構成に使用します。キーストアの場合 複数の鍵ペアが含まれている場合、Cassandra は最初の鍵ペアを SSL を有効にします。

      キーストアと鍵のパスワードは同じにする必要があります。 (keytool を使用してキーを生成する際のデフォルト)。

    • トラストストアには証明書のみを含める必要があり、クライアント(apigee-service ベース)によって使用されます コマンドや nodetool など)を使用して、JMX 経由で接続します。

    上記の要件を確認した後:

    1. キーストア ファイルを /opt/apigee/customer/application/apigee-cassandra/ に配置します。
    2. 次のコマンドを入力して、Apigee ユーザーのみがキーストア ファイルを読み取れるようにします。
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
  4. 次の手順で、SSL を使用した JMX 用に Cassandra を構成します。 <ph type="x-smartling-placeholder">
      </ph>
    1. 次のコマンドを入力して Cassandra ノードを停止します。
      apigee-service apigee-cassandra stop
    2. Cassandra で SSL を有効にする方法 /opt/apigee/customer/application/cassandra.properties ファイルを開いています 次の行を追加します。
      conf_cassandra_env_com.sun.management.jmxremote.ssl=true
      conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1
      conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
    3. 次の例のように、ファイルの所有者を apigee:apigee に変更します。
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    4. Cassandra で config を実行します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    5. Cassandra を再起動します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    6. 他のすべての Cassandra ノードで、この手順を繰り返します。
    7. 次のコマンドで Cassandra ノードを起動します。
      apigee-service apigee-cassandra start
  5. Cassandra コマンド apigee-service を構成します。 実行時に特定の環境変数を設定する必要があります。 次のような apigee-service コマンドを使用できます。
    apigee-service apigee-cassandra stop
    apigee-service apigee-cassandra wait_for_ready
    apigee-service apigee-cassandra ring
    apigee-service apigee-cassandra backup

    JMX 認証用に apigee-service を構成するには、いくつかのオプションがあります。 サポートしています。ユーザビリティとセキュリティ対策に基づいてオプションを選択してください。

    オプション 1(SSL 引数をファイルに保存する)

    次の環境変数を設定します。

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y

    Apigee ユーザーのホーム ディレクトリ(/opt/apigee)にファイルを作成します。

    $HOME/.cassandra/nodetool-ssl.properties

    ファイルを編集して次の行を追加します。

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true

    Apigee ユーザーがトラストストア ファイルを読み取れることを確認します。

    次の apigee-service コマンドを実行します。 エラーなしで実行される場合、構成は適切です。

    apigee-service apigee-cassandra ring

    オプション 2(SSL 引数を環境変数に格納する)

    次の環境変数を設定します。

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y
    # Ensure the truststore file is accessible by Apigee user.
    export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1>
    export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password>

    次の apigee-service コマンドを実行します。エラーなしで実行される場合、構成は適切です。

    apigee-service apigee-cassandra ring

    オプション 3(SSL 引数を apigee-service に直接渡す)

    次のような apigee-service コマンドを実行します。 環境変数を構成する必要はありません。

    CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. nodetool を設定します。Nodetool では、JMX パラメータを渡す必要があります。2 通りの方法で SSL 対応の JMX で実行するように nodetool を構成できます。詳細については、 以下の構成オプションを使用できます。

    これらのオプションは、SSL 関連の構成が nodetool に渡される方法が異なります。どちらの場合も nodetool を実行するユーザーには、トラストストア ファイルに対する読み取り権限が必要です。 ユーザビリティとセキュリティ対策に基づいて適切なオプションを選択してください。

    nodetool パラメータの詳細については、このモジュールの <ph type="x-smartling-placeholder"></ph> DataStax ドキュメントをご覧ください。

    構成オプション 1

    nodetool を実行するユーザーのホーム ディレクトリにファイルを作成します。

    $HOME/.cassandra/nodetool-ssl.properties

    このファイルに次の行を追加します。

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true

    上で指定したトラストストア パスは、 nodetool.

    --ssl オプションを指定して nodetool を実行します。

    /opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

    構成オプション 2

    下記の追加パラメータを使用して、nodetool を 1 つのコマンドとして実行します。

    /opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

SSL 構成を元に戻す

手順で説明した SSL 構成を元に戻す必要がある場合は、 次の操作を行います。

  1. 入力して apigee-cassandra を停止
    apigee-service apigee-cassandra stop
  2. 次の行を削除します: conf_cassandra-env_com.sun.management.jmxremote.ssl=true ファイル /opt/apigee/customer/application/cassandra.properties
  3. /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh の次の行をコメントアウトします。
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0"
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass"
    # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
  4. 次のコマンドを入力して apigee-cassandra を開始します。
  5. apigee-service apigee-cassandra start
  6. 環境変数 CASS_JMX_SSL が設定されている場合は、削除します。

    unset CASS_JMX_SSL
  7. apigee-service ベースのコマンド(ringstopbackup などが機能しています。
  8. nodetool による --ssl スイッチの使用を停止する

Cassandra の JMX 認証を無効にする

Cassandra の JMX 認証を無効にするには:

  1. /opt/apigee/customer/application/cassandra.properties を編集します。
  2. ファイルから次の行を削除します。
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Cassandra で config を実行します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Cassandra を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. 他のすべての Cassandra ノードで、この手順を繰り返します。

JConsole の使用: タスク統計情報をモニタリングする

JConsole と次のサービス URL を使用して、 JMX:

service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi

ここで、IP_address は Cassandra サーバーの IP です。

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 を使用してクラスタノードを管理する

nodetool ユーティリティは Cassandra のコマンドライン インターフェースで、 提供します。このユーティリティは /opt/apigee/apigee-cassandra/bin にあります。

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

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

    ユーザー名とパスワードを渡す必要があるのは、 Cassandra に対して JMX 認証が有効になっている

    上記のコマンドの出力は次のようになります。

    Datacenter: dc-1
    ==========
    Address            Rack     Status State   Load    Owns    Token
    192.168.124.201    ra1      Up     Normal  1.67 MB 33,33%  0
    192.168.124.202    ra1      Up     Normal  1.68 MB 33,33%  5671...5242
    192.168.124.203    ra1      Up     Normal  1.67 MB 33,33%  1134...0484
  2. ノードに関する一般情報(ノードあたりの呼び出し)
    nodetool [-u username -pw password]  -h localhost info

    上記のコマンドの出力は次のようになります。

    ID                     : e2e42793-4242-4e82-bcf0-oicu812
    Gossip active          : true
    Thrift active          : true
    Native Transport active: true
    Load                   : 273.71 KB
    Generation No          : 1234567890
    Uptime (seconds)       : 687194
    Heap Memory (MB)       : 314.62 / 3680.00
    Off Heap Memory (MB)   : 0.14
    Data Center            : dc-1
    Rack                   : ra-1
    Exceptions             : 0
    Key Cache              : entries 150, size 13.52 KB, capacity 100 MB, 1520781 hits, 1520923 requests, 1.000 recent hit rate, 14400 save period in seconds
    Row Cache              : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds
    Counter Cache          : entries 0, size 0 bytes, capacity 50 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
    Token                  : 0
  3. Thrift サーバーのステータス(クライアント API の提供)
    nodetool [-u username -pw password] -h localhost statusthrift

    上記のコマンドの出力は次のようになります。

    running
  4. データ ストリーミング オペレーションのステータス: Cassandra ノードのトラフィックを監視します。
    nodetool [-u username -pw password] -h localhost netstats

    上記のコマンドの出力は次のようになります。

    Mode: NORMAL
    Not sending any streams.
    Read Repair Statistics:
    Attempted: 151612
    Mismatch (Blocking): 0
    Mismatch (Background): 0
    Pool Name                    Active   Pending      Completed   Dropped
    Commands                        n/a         0              0         0
    Responses                       n/a         0              0       n/a

nodetool について詳しくは、このモジュールの nodetool ユーティリティについて

Cassandra リソース

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

Apache Qpid Broker-J のモニタリング

Qpid 管理コンソールから Qpid Broker-J をモニタリングできます。このセクションでは、 コンソールにアクセスし、それを使用して基本的なモニタリング機能を実行する方法を学びます。詳細については、 管理コンソールの使用について詳しくは、 「ウェブ管理コンソール」をご覧ください。

管理コンソールにアクセスする

デフォルトの管理コンソールのポートは 8090 です。このデフォルト ポートでコンソールにアクセスするには、 ウェブブラウザで以下にアクセスします。

http://QPID_NODE_IP:8090

コンソールにログインするには、Apigee によって設定されたデフォルトの認証情報、または Edge 構成ファイル。詳しくは、 Edge 構成ファイルのリファレンス

キューとメッセージをモニタリングする

左側のナビゲーション パネルで、[Java-Broker >仮想ホスト >できます。選択 UI のメイン部分にその詳細を表示できます。詳細ビューでは キューの属性と統計情報(配信されたメッセージ、キューに追加されたメッセージ、メッセージ レートなどの情報を含む)。

ログファイルの表示とダウンロード

左側のナビゲーション パネルで、[Java-Broker >ブローカー ロガー >logfile を使用します。 メインの UI の詳細ビューで、ログファイルの詳細を表示したり、ログファイルをダウンロードしたりできます。

Qpid 管理 API の使用

Apache Qpid Broker-J REST API を使用して、管理タスクを自動化し、ブローカーをモニタリングできます。 詳しくは、 Apache Qpid Broker REST API ドキュメントをご覧ください。

コマンドライン ツールを使用してブローカーをモニタリングすることもできます。例:

curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"

Qpid で SSL によるモニタリングを有効にする

モニタリングと管理のセキュリティをさらに強化するには、Qpid の管理ポータルと Qpid の管理 API で SSL を有効にします。鍵と証明書を指定するには、以下のガイドラインに従ってください。

Qpid には、Apigee で有効なファイル キーストアのオプションが用意されています。この型は、keytool などの Java ツールと Java ツールで認識される標準の JKS キーストア形式を受け入れます。

キーストアの準備

keytool を使用するだけでなく、Qpidd のクライアントも使用できるように証明書ファイルを直接提供する必要があります。

キーストアの生成については、Java Keytool のドキュメントをご覧ください。

要件を確認した後

  1. キーストアと証明書のファイルを /opt/apigee/customer/application/apigee-qpidd に配置します。
  2. Apigee ユーザーのみがキーストア ファイルを読み取ることができるようにします。
    chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
        
      chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem

Qpid で SSL を有効にする

一度に 1 つの Qpid ノードで次の手順を実行します。

/opt/apigee/customer/application/qpidd.properties ファイルを開き、次の行を追加します。

conf_qpidd_qpid_management.https.enabled=true
  conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
  conf_qpidd_qpid.keystore.password=keystore-password
  conf_qpidd_qpid.keystore.certificateAlias=certificate-alias
  conf_qpidd_qpid.keystore.certificate=/opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
  1. ファイルの所有者を apigee:apigee に変更します。
    chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
  2. Qpidd を構成します。
    apigee-service apigee-qpidd configure
  3. Qpidd を再起動します。
    apigee-service apigee-qpidd restart
  4. wait_for_ready でステータスを確認します。
    apigee-service apigee-qpidd wait_for_ready
で確認できます。

SSL 構成を元に戻す

ファイル /opt/apigee/customer/application/qpidd.properties からプロパティを削除するか、コメントアウトします。

conf_qpidd_qpid_management.https.enabled=true
  conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/keystore
  1. Qpidd を構成します。
    apigee-service apigee-qpidd configure
  2. Qpidd を再起動します。
    apigee-service apigee-qpidd restart
  3. wait_for_ready でステータスを確認します。
    apigee-service apigee-qpidd wait_for_ready

Apache ZooKeeper

ZooKeeper のステータスを確認する

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

ZooKeeper の 4 文字の単語を使用する

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

ZooKeeper コマンドの詳細については、Apache ZooKeeper コマンド リファレンスをご覧ください。

例:

  • srvr: サーバーの完全な詳細を一覧表示します。
  • stat: サーバーと接続されたクライアントの簡単な詳細を一覧表示します。

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

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

    戻り値:

    imok
  2. 4 文字コマンド stat を実行して、サーバーのパフォーマンスと接続されている クライアントの統計情報:
    echo stat | nc host 2181

    戻り値:

    Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT
    Clients:
    /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)
    Latency min/avg/max: 0/0/128
    Received: 26144
    Sent: 26160
    Connections: 4
    Outstanding: 0
    Zxid: 0x2000002c2
    Mode: follower
    Node count: 283
  3. netcat(nc)が使用できない場合は、代わりに Python を使用できます。ファイルを作成する 次のものを含む zookeeper.py というファイルです。
    import time, socket,
    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

LDAP レベルのテスト

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

  1. ldapsearchyum install openldap-clients)を使用してエントリをクエリする 必要ありません。このエントリは、すべての API 呼び出しの認証に使用されます。
    ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLL

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

    Enter LDAP Password:

    パスワードを入力すると、次のようなレスポンスが表示されます。

    dn:
    uid=admin,ou=users,ou=global,dc=apigee,dc=com
    objectClass: organizationalPerson
    objectClass: person
    objectClass: inetOrgPerson
    objectClass: top
    uid: admin
    cn: admin
    sn: admin
    userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ=
     =
    mail: opdk@google.com
  2. 次のコマンドを使用して、Management Server がまだ LDAP に接続されているかどうかを確認します。
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    戻り値:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

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