Linuxにおけるイベントサービスのインストール
このページでは、CLIを使用してLinuxシステムでイベントサービスをインストールおよび管理する方法について説明します。Enterprise Consoleを使用して埋め込みイベントサービスをスケールアップする手順についても説明します。
Enterprise Console では、GUI または CLI のいずれかを使用するイベントサービスデプロイのインストールおよび管理のタスクが自動化されます。Enterprise Console を使用したイベントサービスのインストールについては、「カスタムインストール」を参照してください。
イベントサービスホストの要件
始める前に、イベントサービスと Enterprise Console の使用に関する既知の問題と最新情報について、「リリースノートNo Content found for /db/organizations/splunk/repositories/portal-production/content/documents/AppDynamics/on_premises/c_release_notes.dita」で必ず確認してください。また、以下の要件についても確認してください。
-
イベントサービスは、単一のノード、または 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を介して接続するようにコントローラを再構成する必要があります。構成例については、「ロード バランス イベント サービス トラフィック」を参照してください。
ポート設定
外部(クラスター外)の通信にアクセスできる以下のポートが各マシンに必要です。
- イベントサービス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
パスワード不要のSSHログインの構成
Enterprise Console は、パスワード不要の SSH を使用して各クラスタマシンにアクセスできる必要があります。始める前に、鍵ベースの SSH アクセスを有効にします。
このセットアップでは、Enterprise Console ホストでキーペアを生成し、クラスタノードで Enterprise Console の公開鍵を認証キーとして追加することも必要です。以下の手順では、この例のシナリオに合わせた構成手順を示しています。そのため、使用している環境に合わせて手順を調整する必要があります。
AWS で EC2 インスタンスを使用している場合は、以下の手順に従って、EC2 ホストをプロビジョニングする場合に対応できるようにします。そのときに、PEM ファイルが要求され、その PEM ファイルの公開キーが authorized_keys にコピーされます。
Enterprise Consoleマシンで以下の手順に従います。
./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
このエラーが発生した場合は、このセクションの手順に従って、パスワード不要の SSH 構成を再度チェックしてください。また、最初に add-hosts を追加してから event-service をインストールする必要があります。SSH 構成が正しくセットアップされていない場合、add-hosts コマンドは失敗します。
add-hosts コマンドは、プラットフォームにホスト名を追加する際に使用します。events-service のインストール中、ホストはプラットフォームホストから取得され、events-service で使用されます。 実稼働クラスタノードのオペレーティングシステムの調整
イベントサービスクラスタをインストールする前に、以下で説明するいくつかの手動での変更を実行する必要があります。これらは、実稼働イベントサービスの展開に特に関連します。クラスター内の各ノードで、次の設定を変更します。
GUIを使用したイベントサービスのインストール
GUI で、[Express Install] オプションを使用すると、コントローラと同じホストにイベントサービスが自動的にインストールされます。[Custom Install] オプションを選択すると、埋め込みまたはスケールアップされたイベントサービスをインストールできます。埋め込みイベントサービスをインストールした後に、スケールアップされたイベントサービスに切り替える場合は、「埋め込みイベントサービスのスケールアップ」で説明している手順を実行します。
CLIを使用したイベントサービスのインストール
埋め込みイベントサービスのスケールアップ
以下の手順では、コントローラと共有しているホストにあるイベントサービスをスケールアップする方法について説明しています。スケールアップすることによって、埋め込みイベントサービスを個別のホストで実行できるようになります。カスタムインストールを使用することで、イベントサービスを個別のホストに直接インストールすることもできます。
インストールのトラブルシューティング
イベントサービスのインストール中に Enterprise Console がクラッシュまたはシャットダウンした場合、GUI にインストールが進行中であることが表示されることがあります。この問題を解決するには、CLI を使用してイベントサービスをアンインストールします。次に、CLI を使用してイベントサービスをインストールします。
ClusterFormationFailureHelper エラーの処理
単一ノードのイベントサービスクラスタで新しいイベントサービス 23.2.0 を実行すると、次のエラーが表示される場合があります。
[WARN ][o.e.c.c.ClusterFormationFailureHelper] [ip] マスターはまだ検出されておらず、このノードは以前にブートストラップされたクラスタに参加していません。このノードの [cluster.initial_master_nodes] は空です。
この問題を解決する手順は、次のとおりです。
- Enterprise Console からイベントサービスをアンインストールします。
- このセクションで定義されているように、クラスタノード用にオペレーティングシステムを調整したことを確認します。
- イベントサービスを再インストールします。
/tmp ディレクトリに実行権限がない場合のエラー
/tmp ディレクトリに実行権限がない場合、イベントサービスのインストールまたはアップグレードは次のエラーで失敗します。
failed to map segment from shared object or
failed to allocate closure
-
次のコマンドを実行して、フォルダの実行権限を確認します。
mount | grep '/tmp' /dev/sda1 on /tmp type ext4 (rw,noexec) -
次のフォルダの権限を確認します。
mount | grep '/var/tmp' mount | grep 'home'
次の方法でエラーをトラブルシューティングできます。
- イベント サービス ディレクトリへのファイルのエクスポート。
- 必要なディレクトリの
noexecマウントオプションの削除。
イベント サービス ディレクトリへのファイルのエクスポート
- インストールの失敗時に追加されたイベントサービスファイルを削除します。
-
次のパスでイベントサービスのバイナリを見つけます。
cd /opt/appdynamics/platform/platform-admin/archives/events-service/<version>cd /opt/appdynamics/platform/platform-admin/archives/events-service/<version> -
の解凍events-service.zipunzip events-service.zip -
events-service.zipの名前をevents-services.zip.originalに変更します。mv events-service.zip events-service.zip.original -
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 -
変更された
.vmoptionsファイルを含むevents-serviceフォルダをアーカイブします。zip -r events-service.zip events-service -
.vmoptionsファイルが指定されているevents-serviceフォルダに一時ディレクトリを作成します。mkdir -p /opt/appdynamics/platform/product/events-service/tmp -
次のコマンドを使用して、一時ディレクトリをエクスポートします。
export TMPDIR=<path/to/es_tmp> - Enterprise Console を使用してイベントサービスをインストールします。
必要なディレクトリの noexec マウントオプションの削除
必要なディレクトリのnoexec マウントオプションを削除します。sudo umount /tmp
sudo mount -o remount,rw /tmp