Download PDF
Download page イベントサービスホストの準備.
イベントサービスホストの準備
Related pages:
このページでは、イベントサービスノードをホストするマシンを準備する方法と、その環境に対する全般的な要件について説明します。
ネットワークとポートの設定
コントローラとイベントサービスは、同じローカルネットワーク上に配置されていて、内部ネットワークで通信できる必要があります。互いに関連していても、コントローラと Enterprise Console に関連していても、別のネットワークにあるノードにクラスタをデプロイしないでください。構成でクラスタホストを特定する場合は、そのホストの外部ルーティング対応の DNS 名ではなく、ホストの内部 DNS 名または IP アドレスを使用する必要があります。
たとえば、AWS 展開の場合、ec2-34-201-129-89.us-west-2.compute.amazonaws.com
などの公開 DNS ホスト名ではなく、172.31.2.19
などのプライベート IP アドレスを使用します。
各マシンで、以下のポートで外部(クラスタ外)のトラフィックにアクセスできる必要があります。
- イベントサービス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.
このエラーが発生した場合は、このセクションで示しているポートが他のクラスタノードで利用可能であることを確認します。
Linuxを実行するクラスタノードの構成
Linuxマシンにデプロイする場合は、イベントサービスのクラスタの各ノードで、次のように構成を変更します。
テキストエディタで
/etc/sysctl.conf
を開いて、以下の項目を追加します。vm.max_map_count=262144
/etc/security/limits.conf
で、オープンファイル記述子の上限を次のように引き上げます。<username_running_eventsservice> soft nofile 96000 <username_running_eventsservice> hard nofile 96000
BASHusername_running_eventsservice
をイベントサービスのプロセスを実行するユーザー名に置き換えます。分析をユーザーappduser
として実行している場合は、最初のエントリでその名前を使用します。
パスワード不要のSSHログインの構成
Linux デプロイでは、Enterprise Console を使用してイベントサービスクラスタをデプロイおよび管理します。
Enterprise Console は、埋め込み以外のイベントサービスに対して、パスワード不要の SSH を使用して各クラスタマシンにアクセスできる必要があります。始める前に、以下に説明しているように鍵ベースの SSH アクセスを有効にします。
このセットアップでは、Enterprise Console でキーペアを生成し、クラスタノードで公開鍵を認証キーとして追加することも必要です。以下の手順では、この例のシナリオに合わせた構成手順を示しています。そのため、使用している環境に合わせて手順を調整する必要があります。
AWS で EC2 インスタンスを使用している場合は、以下の手順に従って、EC2 ホストをプロビジョニングする場合に対応できるようにします。そのときに、PEM ファイルが要求され、その PEM ファイルの公開鍵がホストの authorized_keys にコピーされます。この場合は、これらの手順をスキップできます。
ホストマシンで以下の手順に従います。
Enterprise Consoleホストマシンにログインするか、またはデプロイの実行に使用するユーザーに切り替えます。
su - $USER
SSHアーティファクトのディレクトリを作成し(存在しない場合)、次のようにディレクトリで権限を設定する。
mkdir -p ~/.ssh chmod 700 ~/.ssh
そのディレクトリに移動します。
cd .ssh
公開鍵と秘密鍵のPEMファイルをRSA形式で生成します。
ssh-keygen -t rsa -b 2048 -v -m pem
- 要求されたときに、キーを保存するファイルの名前を入力します(例:
ppd-analytics
)。 キーファイルの名前を変更して
.pem
拡張子を追加します。mv appd-analytics appd-analytics.pem
BASHこのファイルのパスは、「イベントサービスクラスタのデプロイ」で説明しているように、Enterprise Console の構成ファイルの
sshKeyFile
設定として後で構成します。公開鍵をクラスタマシンにコピーします。たとえば、次のように scp を使用して転送を実行できます。
scp ~/.ssh/myserver.pub host1:/tmp scp ~/.ssh/myserver.pub host2:/tmp scp ~/.ssh/myserver.pub host3:/tmp
BASH例のとおりの名前を使用している場合、
myserver
は appd-analytics です。
初めて接続するときに、接続を確認して、そのクラスタマシンを known_hosts のリストに追加し、ユーザーのパスワードを入力する必要があることがあります。各クラスタノード(host1、host2、host3)で、ユーザーのホームディレクトリに.sshディレクトリがなければ作成し、コピーした公開鍵を認証キーとして追加します。
cat /tmp/appd-analytics.pub >> .ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
BASHホストマシンから
ssh
を使用してクラスタノードへのログインを試すことによって、構成をテストします。ssh host1
BASH接続できない場合は、クラスタマシンに
openssh-server
パッケージがインストールされていて、SSH 接続を受け入れるようにオペレーティングシステムのファイアウォールルールを変更していることを確認します。正常に接続できれば、Enterprise Consoleを使用してプラットフォームをデプロイできます。
次のエラーが発生した場合は、このセクションの手順に従って、パスワード不要の SSH 構成を再度チェックしてください。
Copying JRE to the remote host failed on host: 172.31.57.204 with message: Failed to upload file: java.net.ConnectException: Connection timed out