関連ページ:

このページでは、CLIを使用してLinuxシステムでイベントサービスをインストールおよび管理する方法について説明します。Enterprise Consoleを使用して埋め込みイベントサービスをスケールアップする手順についても説明します。

Enterprise Console では、GUI または CLI のいずれかを使用するイベントサービスデプロイのインストールおよび管理のタスクが自動化されます。Enterprise Console を使用したイベントサービスのインストールについては、「カスタムインストール」を参照してください。

イベントサービスのインストールでインストールディレクトリやデータディレクトリを指定するする必要はありません。指定する場合は、プラットフォームディレクトリ以外のディレクトリを指定します。

イベントサービスホストの要件

始める前に、イベントサービスと Enterprise Console の使用に関する既知の問題と最新情報について、「Release Notes」で必ず確認してください。また、以下の要件についても確認してください。

  • イベントサービスは、単一のノード、または 3 つ以上のノードのマルチノードクラスタとしてデプロイできます。 

  • コントローラのためのLinuxの準備」に記載されているように、サポートされている Linux バージョンには、コントローラでサポートされているフレーバーやバージョンが含まれています。
  • イベントサービスは専用マシンで実行する必要があります。そのマシンでは、イベントサービスに関連しない他のアプリケーションまたはプロセスを実行しないでください。

  • イベントサービスマシン用に適切にサイズ指定されたハードウェアを使用します。Enterprise Consoleは、ターゲットシステムが最小ハードウェア要件に適合しているかどうかをチェックします。これらの要件の詳細については、「イベントサービスクラスタのインストール」にある、イベントサービスのインストールコマンドの profile 引数の説明を参照してください。 
  • コントローラとイベントサービスは、同じローカルネットワーク上に配置されていて、内部ネットワークで通信できる必要があります。互いに関連していても、Enterprise Console が実行されているコントローラに関連していても、別のネットワークにあるノードにクラスタをデプロイしないでください。構成でクラスタホストを特定する場合は、そのホストの外部ルーティング対応の DNS 名ではなく、ホストの内部 DNS 名または IP アドレスを使用する必要があります。
    たとえば、AWS デプロイの場合は、ec2-34-201-129-89.us-west-2.compute.amazonaws.com のようなパブリック DNS ホスト名ではなく、172.31.2.19 のようなプライベート IP アドレスを使用します。
  • 各イベントサービスホストで適切なポートが開いていることを確認します。詳細については、「ポート設定」を参照してください。 

  • Enterprise ConsoleはSSHキーを使用してイベントサービスホストにアクセスします。そのキーの作成については次のセクションを参照してください。 

  • イベントサービスのノードは、通常はロードバランサの内側で運用されます。イベントサービスのノードのインストール時に、Enterprise Consoleはコントローラからそのノードへの直接接続を自動的に構成します。クラスタを展開すると、最初のプライマリノードはコントローラ内の接続ポイントとして自動的に構成されます。インストール後に、以下に説明している手順に従って、ロードバランサのVIPを介して接続するようにコントローラを再構成する必要があります。設定例については、「ロードバランスイベントサービストラフィック」を参照してください。 


/tmp ディレクトリに実行権限を付与することをお勧めします。付与しない場合、インストールはエラーで失敗します。ただし、このエラーのトラブルシューティングを実行する場合は、「/tmp ディレクトリに実行権限がない場合のエラー」を参照してください。


ポート設定

各マシンで、以下のポートで外部(クラスタ外)のトラフィックにアクセスできる必要があります。

  • イベントサービスAPIストアのポート:9080
  • イベントサービスAPIストアの管理ポート:9081

クラスタについては、以下のポートがクラスタ内のマシン間の通信に対してオープンな状態であることを確認します。通常、以下のポートを開くには、各マシンで iptables または OS レベルのファイアウォール ソフトウェアを構成する必要があります。

  • 9300 ~ 9400

オペレーティングシステムのファイアウォールを構成するための iptables コマンドの例を次に示します。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 9080 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 9081 -j ACCEPT -A INPUT -m state --state NEW -m multiport -p tcp --dports 9300:9400 -j ACCEPT

イベントサービスノードでポートがブロックされている場合、そのノードに対するイベントサービスのインストールコマンドは失敗し、Enterprise Consoleのコマンド出力とログに次のようなエラーメッセージがあります。

failed on host: <ip_address> with message: Uri [http://localhost:9080/_ping] is un-pingable.

このエラーが発生した場合は、このセクションで示しているポートが他のクラスタノードで利用可能であることを確認します。 

SSHキーの作成

イベントサービスのインストール時に、Enterprise Console がリモートでイベントサービスホストにアクセスするために使用できる SSH キーを指定する必要があります。始める前に、公開鍵と秘密鍵の PEM ファイルを RSA 形式で作成します。鍵ファイルにはパスワード保護を使用しないでください。

たとえば、ssh-keygen を使用する場合は、次のコマンドでキーを作成できます。

ssh-keygen -t rsa -b 2048 -v -m pem
TEXT


パスワード不要のSSHログインの構成

Enterprise Console は、パスワード不要の SSH を使用して各クラスタマシンにアクセスできる必要があります。始める前に、鍵ベースの SSH アクセスを有効にします。

このセットアップでは、Enterprise Console ホストでキーペアを生成し、クラスタノードで Enterprise Console の公開鍵を認証キーとして追加することも必要です。以下の手順では、この例のシナリオに合わせた構成手順を示しています。そのため、使用している環境に合わせて手順を調整する必要があります。  

AWS で EC2 インスタンスを使用している場合は、以下の手順に従って、EC2 ホストをプロビジョニングする場合に対応できるようにします。そのときに、PEM ファイルが要求され、その PEM ファイルの公開鍵がホストの authorized_keys にコピーされます。この場合は、これらの手順をスキップできます。  

Enterprise Consoleマシンで以下の手順に従います。

  1. Enterprise Consoleマシンにログインするか、またはデプロイの実行に使用するユーザーに切り替えます。

    su - $USER
    TEXT
  2. SSHアーティファクトのディレクトリを作成し(存在しない場合)、次のようにディレクトリで権限を設定する。

    mkdir -p ~/.ssh chmod 700 ~/.ssh
    TEXT
  3. そのディレクトリに移動します。

    cd .ssh 
    TEXT
  4. 公開鍵と秘密鍵のPEMファイルをRSA形式で生成します。

    ssh-keygen -t rsa -b 2048 -v -m pem
    TEXT


    キーファイルにはパスワード保護を使用しないでください。

  5. 要求されたときに、鍵を保存するファイルの名前を入力します(例:appd-analytics)。

  6. .pem 拡張子を追加してキーファイルの名前を変更します。

    mv appd-analytics appd-analytics.pem
    TEXT

    このファイルのパスは、「イベントサービスクラスタのデプロイ」で説明しているように、Enterprise Console の構成ファイルの sshKeyFile 設定として後で構成します。 

  7. 公開鍵をクラスタマシンにコピーします。たとえば、次のように scp を使用して転送を実行できます。

    scp ~/.ssh/myserver.pub host1:/tmp scp ~/.ssh/myserver.pub host2:/tmp scp ~/.ssh/myserver.pub host3:/tmp
    TEXT

    例のとおりの名前を使用している場合、myserverappd-analytics です。
    初めて接続するときに、接続を確認して、そのクラスタマシンを known_hosts のリストに追加し、ユーザのパスワードを入力する必要があることがあります。 

  8. 各クラスタノード(host1、host2、host3)で、ユーザーのホームディレクトリに .ssh ディレクトリがなければ作成し、コピーした公開鍵を認証キーとして追加します。

    cat /tmp/appd-analytics.pub >> .ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
    TEXT
  9. コントローラマシンから ssh を使用してクラスタノードへのログインを試すことによって、構成をテストします。

    ssh host1
    TEXT

    接続できない場合は、クラスタマシンに openssh-server パッケージがインストールされていて、SSH 接続を受け入れるようにオペレーティングシステムのファイアウォールルールを変更していることを確認します。正常に接続できれば、次のセクションで説明しているように、コントローラホストで Enterprise Console を使用してイベントサービスクラスタをデプロイできます。 

Enterprise Consoleが、パスワード不要のSSHが適切に構成されていないノードにイベントサービスをインストールしようとすると、次のようなエラーメッセージが表示されます。

./bin/platform-admin.sh add-hosts --hosts <es_host_1> <es_host_2> <es_host_3> --credential <credential name> --platform-name <name of platform> ... Failed to connect to the remote host. Please verify that the host name and credentials you provided are correct. For more information, consult the documentation: https://docs.appdynamics.com/display/PRO45/Administer+the+Enterprise+Console#AdministertheEnterpriseConsole-manage-hostsManageHosts
TEXT

このエラーが発生した場合は、このセクションの手順に従って、パスワード不要の SSH 構成を再度チェックしてください。また、最初に add-hosts を追加してから event-service をインストールする必要があります。SSH 構成が正しく設定されていない場合、add-hosts コマンドは失敗します。 

add-hosts コマンドは、プラットフォームにホスト名を追加する際に使用します。events-service のインストール中、ホストはプラットフォームホストから取得され、events-service で使用されます。 

実稼働クラスタノードのオペレーティングシステムの調整

イベントサービスクラスタをインストールする前に、以下で説明するいくつかの手動での変更を実行する必要があります。これらは、実稼働イベントサービスの展開に特に関連します。クラスタ内の各ノードで、次の設定を変更します。

  1. テキストエディタで /etc/sysctl.conf を開いて、以下の項目を追加します。

    vm.max_map_count=262144
    CODE
  2. /etc/security/limits.conf で、オープンファイル記述子の上限を次のように引き上げます。

    <username_running_eventsservice> soft nofile 96000 <username_running_eventsservice> hard nofile 96000 <username_running_eventsservice> soft memlock unlimited <username_running_eventsservice> hard memlock unlimited
    CODE
  3. 次のコマンドを実行して、スワップメモリを無効にします。スワップマウントポイントを削除するには、swap という単語を含む /etc/fstab 内の行を削除またはコメント化します。

    swapoff -a
    CODE

GUIを使用したイベントサービスのインストール

GUI で、[Express Install] オプションを使用すると、コントローラと同じホストにイベントサービスが自動的にインストールされます。[Custom Install] オプションを選択すると、埋め込みまたはスケールアップされたイベントサービスをインストールできます。埋め込みイベントサービスをインストールした後に、スケールアップされたイベントサービスに切り替える場合は、「埋め込みイベントサービスのスケールアップ」で説明している手順を実行します。  

CLIを使用したイベントサービスのインストール

  1. ロードバランスをセットアップします。ロードバランサの構成については、「ロードバランスイベントサービストラフィック」を参照してください。 

  2. コマンドラインで、Enterprise Console のインストール時に作成された platform-admin ディレクトリに移動します。「Enterprise Consoleのインストール」を参照してください。

  3. 最後のセッションから1日以上経った場合には、以下のコマンドを使用してログインする必要があります。

    bin/platform-admin.sh login --user-name <admin_username> --password <admin_password>
    TEXT
  4. 次のコマンドを使用してプラットフォームを作成します。

    bin/platform-admin.sh create-platform --name <platform_name> --installation-dir <platform_installation_directory>
    TEXT

    インストールディレクトリは、Enterprise Consoleによってすべてのプラットフォームコンポーネントがインストールされるディレクトリです。

    同じインストールディレクトリが存在していて、すべてのリモートノードで使用されています。異なるノード間で構成の等質性を維持するために、このようになっています。

  5. Enterprise Console がイベントサービスホストにリモートでアクセスおよび管理するために使用する SSH キーを追加します(詳細については、「SSH キーの作成」を参照してください)。

    bin/platform-admin.sh add-credential --credential-name <name> --type ssh --user-name <username> --ssh-key-file <file path to the key file> --platform-name <name of platform>
    TEXT

    <file path to the key file> は Enterprise Console マシンの秘密キーです。インストールプロセスで、鍵を使用してイベントサービスホストに接続します。キーはデプロイされず、代わりに暗号化され、Enterprise Console データベースに保存されます。 

    platform-name パラメータはオプションです。

  6. プラットフォームに追加した認証情報を渡して、プラットフォームにホストを追加します。

    bin/platform-admin.sh add-hosts --hosts es_host_1 es_host_2 es_host_3 --credential <credential name> --platform-name <name of platform>
    TEXT

    platform-name パラメータはオプションです。

  7. クラスタ内の各イベントサービス宛先ノードで、イベントサービスのインストールディレクトリを作成します。これは、ステップ(2)でプラットフォームの作成中に installation-dir 引数で指定したディレクトリです。

  8. もう一度 Enterprise Console マシンのコマンドラインで、platform-admin ディレクトリから次のコマンドを実行します。クラスタ構成設定をコマンドの引数として渡します。コマンドの形式は次のとおりです。

    bin/platform-admin.sh submit-job --platform-name <platform-name> --service events-service --job install --target-version <latest> --args profile=<dev> serviceActionHost=<es_host_1> serviceActionHost=<es_host_2> serviceActionHost=<es_host_3>
    TEXT

    platform-name パラメータと jvmTempDir パラメータはオプションです。 

    引数は以下のとおりです。

    • jvmTempDir:Linux インストールでデフォルトの JVM 一時 /tmp ディレクトリをオーバーライドするには、この引数を使用します。

    • hosts:この引数または host-file を使用して、展開内のクラスタホストの内部 DNS ホスト名または IP アドレスを指定します。この引数では、ホスト名またはアドレスをパラメータとして渡します。例:

      --hosts 192.168.32.105 192.168.32.106 192.168.32.107
    • host-file:ホストを --hosts 引数として指定する代わりに、ホストのリストを記述したテキストファイルをこの引数で指定して渡すこともできます。そのプレーンテキストファイルでは、各クラスタホストの内部DNSホスト名またはIPアドレスを、1行に1つずつ指定します。

      192.168.32.105 192.168.32.106 192.168.32.107
    • profile:デフォルト(プロファイルの指定なし)では、インストールは実稼働インストールと見なされます。開発者プロファイル(profile dev)を指定すると、非実稼働環境のみに適した、軽減されたハードウェアプロファイル要件を使用するように Enterprise Console に指示されます。Enterprise Consoleでは以下のリソースがチェックされます。

      • dev プロファイルの場合は、1 コア CPU、1 GB の RAM、2 GB のディスク領域。 

      • それ以外の場合は、4 コア CPU、12 GB の RAM、128 GB のディスク領域。 

    例:

    bin/platform-admin.sh add-hosts --hosts ip-172-31-20-21.us-west-2.compute.internal ip-172-31-20-22.us-west-2.compute.internal ip-172-31-20-23.us-west-2.compute.internal
    TEXT

    hosts テキストファイルを使用している場合は、次のコマンドを使用します。

    bin/platform-admin.sh add-hosts --hosts --host-file=/home/appduser/hosts.txt
    TEXT
  9. 各イベントサービスノードマシンにログインし、環境をセットアップするためのスクリプトを次のように実行します。

    tune-system.sh スクリプトは、ユーザーの環境を最適化するために使用されます。それは任意になります。

    1. tune-system.sh スクリプトに実行権限を付与します。

      chmod +x tune-system.sh ./tune-system.sh
      TEXT
    2. スクリプトを実行します。

      sudo <installation_dir>/events-service/processor/bin/tool/tune-system.sh
      TEXT
  10. ロードバランサを使用している場合は、ロードバランサで提示されるイベントサービスの仮想IPを使用します。イベントサービスへのコントローラ接続を次のように構成します。

    1. 管理コンソールを開きます。

    2. コントローラの設定ペインで、appdynamics.on.premise.event.service.url を見つけて、その値をロードバランサでのイベントサービスの仮想 IP の URL に変更します。

    コンソールで接続設定を変更した後に、コントローラとイベントサービスがアカウント情報を同期するのに数分かかることがあります。

完了すると、イベントサービスの管理機能で Enterprise Console を使用できます。クラスタノードマシンをデプロイした後は、それらのマシンに直接アクセスする必要はなくなります。特に、イベントサービスノードのホームディレクトリにあるスクリプトは使用しないでください。
インストール後に、Enterprise Console はコントローラの構成を自動的に更新します。 

埋め込みイベントサービスのスケールアップ

以下の手順では、コントローラと共有しているホストにあるイベントサービスをスケールアップする方法について説明しています。スケールアップすることによって、埋め込みイベントサービスを個別のホストで実行できるようになります。カスタムインストールを使用することで、イベントサービスを個別のホストに直接インストールすることもできます。

  1. ロードバランスをセットアップします。ロードバランサの構成については、「ロードバランスイベントサービストラフィック」を参照してください。 
  2. Enterprise Console GUIを開きます。
  3. 使用する認証情報およびホストが、Splunk AppDynamics プラットフォームに追加されていることを確認します。詳細については、「Enterprise Consoleの管理」を参照してください。

    1. [Credential] ページで、イベントサービスをインストールするホストの SSH 認証情報を追加します。

    2. [Hosts] ページで、ホストを追加します。Enterprise Console はイベントサービスのスケールアップにこれらのホストを使用します。1 つのホストのみ、または 3 つ以上のホストが必要です。
  4. [Events Service] ページで、[More link] に移動して [Events Service] を選択し、[More] にある [Scale Up Events Service] をクリックし、ウィザードに従って完了します。スケールアップ後のイベントサービスで使用するホストを入力する際に、コントローラホストは含めないでください。  

    コントローラはスケールアップジョブによって自動的に再起動されるため、ユーザが再起動する必要はありません。

  5. 各ノードマシンにログインし、環境をセットアップするためのスクリプトを次のように実行します。

    sudo <installation_dir>/events-service/latest/bin/tool/tune-system.sh
    TEXT
  6. [Controllers] ページに移動します。
  7. Enterprise Console はデフォルトでは、クラスタで定義されている最初のプライマリノードを参照するように、コントローラでイベントサービス接続を構成します。ロードバランサを使用している場合(推奨)は、以下の手順に従って、ロードバランサで提示されているイベントサービスのVIPを指すように、このコントローラ設定を変更する必要があります。

    1. 管理コンソールを開きます。

    2. [Controller settings] ペインで、appdynamics.on.premise.event.service.url を見つけます。
    3. URL の設定値を、ロードバランサでのイベントサービスの VIP に変更します。 

  8. デフォルトでは、データベースモニタリングはコントローラに埋め込まれているイベントサービスにイベントデータを保存します。展開したばかりのイベントサービスを使用するように変更するには、appdynamics.on.premise.event.service.key 値が events-service-api-store.properties ファイル内の ad.accountmanager.key.controller 値と一致することを確認します。

    このイベントサービスに保存されるのは、データベースモニタリングの新たに生成されたデータのみであることに注意してください。以前に収集されたデータは、そのデータが新しいイベントサービスに移行されていない限り、埋め込みイベントサービスのインスタンスに残ります。「イベントサービスへの接続」を参照してください。 

  9. Enterprise Console で接続設定を変更した後に、コントローラとイベントサービスがアカウント情報を同期するのに数分かかることがあります。

インストールのトラブルシューティング

イベントサービスのインストール中に Enterprise Console がクラッシュまたはシャットダウンした場合、GUI にインストールが進行中であることが表示されることがあります。この問題を解決するには、CLI を使用してイベントサービスをアンインストールします。次に、CLI を使用してイベントサービスをインストールします。

ClusterFormationFailureHelper エラーの処理

単一ノードのイベントサービスクラスタで新しいイベントサービス 23.2.0 を実行すると、次のエラーが表示される場合があります。

[WARN ][o.e.c.c.ClusterFormationFailureHelper] [ip] マスターはまだ検出されておらず、このノードは以前にブートストラップされたクラスタに参加していません。このノードの [cluster.initial_master_nodes] は空です。

この問題を解決する手順は、次のとおりです。

  1. Enterprise Console からイベントサービスをアンインストールします。
  2. このセクションで定義されているように、クラスタノード用にオペレーティングシステムを調整したことを確認します。 
  3. イベントサービスを再インストールします。

/tmp ディレクトリに実行権限がない場合のエラー

/tmp ディレクトリに実行権限がない場合、イベントサービスのインストールまたはアップグレードは次のエラーで失敗します。

failed to map segment from shared object or failed to allocate closure
CODE
  1. 次のコマンドを実行して、フォルダの実行権限を確認します。

    mount | grep '/tmp' /dev/sda1 on /tmp type ext4 (rw,noexec)
    CODE
  2. 次のフォルダの権限を確認します。

    mount | grep '/var/tmp' mount | grep 'home'
    CODE

次の方法でエラーをトラブルシューティングできます。

  • イベント サービス ディレクトリへのファイルのエクスポート。
  • 必要なディレクトリの noexec マウントオプションの削除。

イベント サービス ディレクトリへのファイルのエクスポート

  1. インストールの失敗時に追加されたイベントサービスファイルを削除します。
  2. 次のパスでイベントサービスのバイナリを見つけます。

    cd /opt/appdynamics/platform/platform-admin/archives/events-service/<version>cd /opt/appdynamics/platform/platform-admin/archives/events-service/<version>
    CODE
  3. events-service.zip
    の解凍

    unzip events-service.zip
    CODE
  4. events-service.zip の名前を events-services.zip.original に変更します。

    mv events-service.zip events-service.zip.original
    CODE
  5. extracted events-service ディレクトリで、events-service.vmoptions ファイルと events-service-elasticsearch.vmoptions ファイルの両方に次の行を追加します。

    -Djna.tmpdir=/opt/appdynamics/platform/product/events-service/tmp -Djansi.tmpdir=/opt/appdynamics/platform/product/events-service/tmp
    CODE
  6. 変更された .vmoptions ファイルを含む events-service フォルダをアーカイブします。

    zip -r events-service.zip events-service
    CODE
  7. .vmoptions ファイルが指定されている events-service フォルダに一時ディレクトリを作成します。

    mkdir -p /opt/appdynamics/platform/product/events-service/tmp
    CODE
  8. 次のコマンドを使用して、一時ディレクトリをエクスポートします。

    export TMPDIR=<path/to/es_tmp>
    CODE
  9. Enterprise Console を使用してイベントサービスをインストールします。

必要なディレクトリの noexec マウントオプションの削除

次のディレクトリの noexec マウントオプションを削除します。

sudo umount /tmp sudo mount -o remount,rw /tmp 
CODE