Redhat v9.x上の高可用性モデル
1.始める前に
本ドキュメントは、以下のとおりに高可用性モデル(通称「フェイルオーバー」モデル)にakaBot Center を新規インストールする方法を案内することを目的としています。
モデルのコンポーネント:
# コンポーネント 説明 1 Nginxロードバランサー Nginxのロードバランサーは、スピードとキャパシティの使用率を最大化し、パフォーマンス低下につながるサーバーの過負荷にならないように、すべてのakaBot Centerサーバーにわたってクライアントリクエストをルーティングする、akaBot Centerサーバーの前線に巡回する「トラフィック警官」として機能を果たしています。 2 akaBot Center AkaBot Centerにより、ユーザが使用中の環境でakaBotエージェントの作成、監視、および展開を管理することができます。 3 ActiveMQ Service akaBot Centerのキュー関連機能をサポートするメッセージングアプリケーションです。 4 ELK Stack akaBotセンターによって生成されたログのディープサーチ、分析と表示を支援する包括的なログ分析ソリューションです。 5 Redis Cache データベース、キャッシュ、メッセージブローカー、そしてストリーミングエンジンとして使用されるインメモリデータ構造ストレージです。Redis Cacheによりデータベースのアクセス回数を軽減することで、必要なトラフィックとインスタンスの削減を実現します。 他のモデルまたはakaBot Centerのアップグレードについては、プロジェクトコーディネーター担当(いる場合)にご連絡になるか、[email protected]までメールにてお問い合わせ下さい。
akaBotチームは、いつでもお客様のインストール作業をサポートいたします。
インストールを正常に完了するためには、以下の内容をよく読み、必要なリソースおよび情報をご用意ください。
1.1.ハードウェアの要件
高可用性モデルでakaBot Centerをインストールしてご利用いただくには、以下のハードウェア要件を満たす必要があります。
# サーバー 数量 コア数 RAM SSD 備考 1 akaBot Centerサーバー 2 08以上 32GB以上 500GB以上 akaBot Centerインストール用サーバー 2 ActiveMQサーバー 2 08以上 16GB以上 250GB以上 ActiveMQサービスインストール用サーバー 3 ELKサーバー 1 16 以上 16以上 100GB以上 インデックスサービスインストール用サーバー 4 Redis Cacheサーバー 1 04以上 4GB以上 100GB 以上 キャッシングサービスインストール用サーバー 5 Nginxサーバー 1 04 以上 4GB以上 100GB以上 ロードバランサーサービスインストール用サーバー 1.2.データベースの要件
本インストールモデルの利用には、以下2つのデータベースが必要です。
- akaBot Center用のデータベース(1件)
- ActiveMQサービス用のデータベース(1件)
上記データベースが使用できる 状態であることを確認し、以下の接続用準備を各データベースに用意してください。
# 情報 説明 1 DB-SERVER データベースのIPアドレス。
例:3.112.124.1762 DB-USER データベースのユーザー名。
例:AKA_CENTER_013 DB-PASSWORD ユーザーのパスワード。
例:akaBot1234 DB-PORT データベースのポート。
例:15215 DB-SID/SERVICE NAME データベースのSID/サービス名。
例:Orcl1.3.ファイルストレージの要件
Nugetパッケージを保存するための専用フォルダーがファイルストレージサーバー上にあり、akaBot Centerサーバーがそのフォルダーに対する読み取り・書き込みのアクセス許可を持っている必要があります。
例:NFS-NUGET
1.4.権限要件
各マシンでインストールを実行するには、ユーザーアカウントはSudoとしての実行権限を持つが必要があります。
1.5.インストールパッケージの準備
akaBot Centerマシンは以下の正確なバージョンでインストールパッケージを持つ必要があります。
# プラットフォーム名 パッケージ名 バージョン 説明 ダウンロードリンク 1 JDK/JRE openlogic-openjdk-11.0.16+8-linux-x64-el.rpm 11.0.16 OpenJDK ダウンロード 2 Apache tomcat apache-tomcat-8.5.57.tar.gz 8.5.57 Apache TomcatのWebサーバー ダウンロード 3 ActiveMQ apache-activemq-5.15.1-bin.tar.gz 5.15.1 ActiveMQはakaBot Centerのキュー関連機能に使用されます ダウンロード 4 akaBot Center akaBot-center-x.x.x.x.war 3.0.1.2以降 akaBot Centerのインストールパッケージ akaBotによって提供されるインストールパッケージです。詳細はプロジェクトコーディネーター、または[email protected]までご連絡ください。 5 Oracle JDBC driver ojdbc8.jar ojdbc8 Oracle JDBCのドライバー ダウンロード 6 Nginx Load Balancer nginx-1.22.1-1.el8.ngx.x86_64.rpm 1.22.1 Nginxロードバランサーのパッケージ ダウンロード 7 Redis Cache redis-5.0.3-5.module+el8.4.0+12927+b9845322
.x86_64.rpm5.0.3 Redis Cacheのパッケージ ダウンロード 8 Kibana kibana-7.17.12-x86_64.rpm 7.17.12 Kibanaのパッケージ(オプション) ダウンロード 9 Elastic Search elasticsearch-7.17.12-x86_64.rpm 7.17.12 ElasticSearchのパッケージ ダウンロード 10 Logstash logstash-7.17.12-x86_64.rpm 7.17.12 ログ分析プラットフォームのパッケージ ダウンロード 11 Filebeat filebeat-7.17.12-x86_64.rpm 7.17.12 Filebeatのパッケージ ダウンロード 【注意】
- サーバーごとのインストールパッケージの保存先として、別のフォルダーを使用する必要があります。本ガイドでは、/apps というフォルダーを使用します。
1.6.その他の注意事項
今後起こり得るインストール中のエラーを防ぐよう、以下の注意事項を配慮してください。
1.フォルダー名に空白文字を入れないでください。
1.構文エラーを防ぐには、以下を注意してください。
1*.便宜上、コマンドラインを本ガイドからakaBot Centerにコピーして実行してください。
1*.文字エンコードモードが異なるため、コマンドを メモ帳ファイル にコピーしてから、akaBot Centerマシンに再度コピーしてください。
1*.設定ファイルを更新する場合はファイルの構文を厳守してください。2.インストール手順
2.1.Redisのインストール手順
Redisサーバーでは、以下3つの手順に従ってRedisサービスをインストール・設定してください。
2.1.1.ステップ1:Redisパッケージをインストール
1.システムリポジトリを更新します。
sudo dnf update -y
2.Redisパッケージをインストールします。
sudo rpm -ivh <package name>
例:sudo rpm -ivh redis-5.0.3-5.module+el8.4.0+12927+b9845322.x86_64.rpm
3. インストールされているRedisのバージョンを確認します。
rpm -q redis
rpm -qi redis
4.Redisサービスを起動して有効にします。
sudo systemctl start redis
sudo systemctl enable redis
5.Redisサービスのステータスを確認します。
sudo systemctl status redis
2.1.2.ステップ2:Redisのリモートアクセスを設定
1.Redisサービスをオフにします(実行中の場合)。
sudo systemctl stop redis
2.redis.confファイルを開きます。
sudo vi /etc/redis.conf
3.バインドパラメータ値を検索し、127.0.0.1から0.0.0.0に更新します。
3.変更を保存して終了します。
Press ESC then type: “:wq”
4.Redisサービスを再起動します。
sudo systemctl start redis
2.1.3.ステップ3:セキュリティ設定を構成(オプション)
1.Redisサービスをオフにします(実行中の場合)。
sudo systemctl stop redis
2.redis.confファイルを開きます。
sudo vi /etc/redis.conf
3.requirepassパラメータを検索してコメントを解除します。
4.変更を保存して終了します。
ESCキーを押して次を入力します。“wq”
5.Redisサービスを再起動します。
sudo systemctl start redis
2.2.ActiveMQのインストール手順
高可用性モデルでは、フェイルオーバーの場合の相互バックアップに備える2つのActiveMQサーバーが必要です。
以下の手順を 各サーバーに別々で実行し 、ActiveMQサービスをインストール・設定してください。
2.2.1.ステップ1:インストールファイルを解凍
- インストールファイルをインストールフォルダーに移動します。
cd apps/
2. 「/opt/activemq」の新規フォルダーを作成します。
sudo mkdir /opt/activemq
3. Apache ActiveMQインストールパッケージを解凍し、/opt/activemqフォルダーに移動します。
sudo tar -xvzf apache-activemq-*-bin.tar.gz
sudo mv apache-activemq-5.15.1 /opt/activemq
2.2.2.ステップ2:ActiveMQのグループとユーザーを作成
別のアカウントを作成し、ルートアカウントの代わりにこのアカウントでActiveMQのインストールを実行します。
1.ActiveMQグループを作成します。
sudo groupadd activemq
2.ActiveMQグループおよびホームリンクの「/opt/activemq」の配下でアカウントActiveMQを作成します。
sudo useradd -s /bin/false -g activemq -d /opt/activemq activemq
3.ActiveMQフォルダーへ権限を付与します。
sudo chown -R activemq:activemq /opt/activemq
2.2.3.ステップ3:ActiveMQサービスを設定
1.設定ファイルのactivemq.serviceを作成します。
sudo vi /etc/systemd/system/activemq.service
2.上記ファイルに以下をコピーします。
[Unit]
Description=Apache ActiveMQ
After=network.target
[Service]
Type=forking
User=activemq
Group=activemq
ExecStart=/bin/bash /opt/activemq/bin/activemq start
ExecStop=/bin/bash /opt/activemq/bin/activemq stop
[Install]
WantedBy=multi-user.target
3.変更を保存して終了します。
ESCキーを押して次を入力します。:wq
4.Daemonをリロードします。
sudo systemctl daemon-reload
5.ActiveMQサービスを起動します。
sudo systemctl start activemq
6.ActiveMQサービスを有効にします。
sudo systemctl enable activemq
7.ActiveMQのステータスを確認します。
sudo systemctl status activemq
2.2.4.ステップ4:ActiveMQサービスのJavaヒープメモリを設定
1.ActiveMQサービスを停止します。
sudo systemctl stop activemq
2.Javaヒープメモリの値を更新します。
- 以下の環境ファイルを開きます。
sudo vi /opt/activemq/bin/env
- 以下の行を更新します。
ACTIVEMQ_OPTS_MEMORY="-Xms1G -Xmx2G"
【注意】
- Parameter -Xms: 最小限のJavaヒープサイズです。この値をRAM容量の1/4以下で設定してください。
例:akaBot CenterマシンのRAM容量が4GBの場合は、-Xms1Gと設定します。
- Parameter -Xmx: 最大限のJavaヒープサイズです。この値をRAM容量の1/2以下で設定してください。
例:akaBot CenterマシンのRAM容量が4GBの場合は、-Xmx2Gと設定します。
- 変更を保存して終了します。
ESCキーを押して次を入力します。:wq
3.ActiveMQサービスを再起動します。
sudo systemctl start activemq
4.ActiveMQサービスのステータスを確認します。
sudo systemctl status activemq
2.2.5.ステップ5:ActiveMQサービスを設定
1.ActiveMQサービスを停止します。
sudo systemctl stop activemq
2.Oracle JDBCドライバーのojdbc8.jarファイルをオプションのライブラリフォルダーにアップロードしてコピーします。
cd ~/apps/
cp ojdbc8.jar /opt/activemq/lib/optional/
3.activemq.xmlを設定します。
- activemq.xmlを開きます。
sudo vi /opt/activemq/conf/activemq.xml
- ブローカー名を変更します。(オプション)
- ファイルの最後に以下のコードを追加し、Oracle DataSourceを設定します。
<bean id="oracle-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="<DB-URL>"/>
<property name="username" value="<DB-USER>"/>
<property name="password" value="<DB-PASSWORD>"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
【注意】
+ データベースがSIDを使用している場合は、以下の通りになります。
DB_URL = jdbc:oracle:thin:@<DB-SERVER>:<DB-PORT>:<DB-SID>
+ データベースがサービス名を使用している場合は、以下の通りになります。
DB_URL = jdbc:oracle:thin:@//<HOST>:<PORT>/<SERVICE NAME>
4.persistenceAdapterの設定を変更します。
<jdbcPersistenceAdapter dataSource="#oracle-ds" createTablesOnStartup="true" />
5.変更を保存して終了します。
ESCキーを押して次を入力します。:wq!
6.ActiveMQサービスを起動し、ステータスを確認します。
sudo systemctl start activemq
sudo systemctl status activemq
2.3.ELK Stackのインストール
ELK Stackとは、akaBotセンターによって生成されたログのディープサーチ、分析と表示を支援する包括的なログ分析ソリューションです。
ELK Stackのコンポーネントには、以下が含まれています。
- Elasticsearchは、Apacheライセンスに基づいてリリースされている、Apache Lucene上にビルドされたRESTfulの分散検索エンジンです。JavaベースであるElasticsearchは、データの取り込みに加えて、多種フォーマットのドキュメントファイルの検索やインデックス付けができます。
- Logstash は、複数のソースからのデータを統合し、データベースの正規化とデータの分散を実現するデータ収集エンジンです。
- Kibana は、大量のストリーミングデータとリアルタイムデータに特化した、データ可視化・データ探索のオープンソースツールです。Kibanaにより、グラフィックによる可視化を通じて、複雑なデータストリームの簡単かつ迅速な理解ができます。Kibanaコンポーネントのインストールはオプションです。
- FileBeatは、多種の運用データをElasticsearchに直接送信、またはデータの拡張またはアーカイブ化が行われるLogstashの経由で送信するために使用されるエージェントとして、サーバーにインストールされるデータシッパーです。
【参照】 https://www.techtarget.com/searchitoperations/definition/Elastic-Stack
ELKスタックをインストールするには、以下の手順を行ってください。
2.3.1.ステップ1: ElasticSearchをインストール
1.ElasticSearchパッケージをインストールします。
cd apps/
sudo rpm --install elasticsearch-7.17.12-x86_64.rpm
2.ElasticSearchサービスを起動します。
sudo rpm --install elasticsearch-7.17.12-x86_64.rpm
3.ElasticSearchサービスを有効にします。
sudo systemctl enable elasticsearch
4.サービスのステータスを確認します。
sudo systemctl status elasticsearch
5.ElasticSearchサービスを停止します。
sudo systemctl stop elasticsearch
6.設定ファイルを開きます。
sudo vi /etc/elasticsearch/elasticsearch.yml
7.以下の値に更新します。
network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1"]
8.変更を保存して終了します。
ESCキーを押して次を入力します。:wq
2.3.2.ステップ2: LogStashをインストール
1.ElasticSearchパッケージをインストールします。
cd apps/
sudo rpm --install logstash-7.17.12-x86_64.rpm
2.LogStashサービスを有効にします。
sudo systemctl enable logstash
3.LogStashサービスを起動します。
sudo systemctl start logstash
4.LogStashサービスが実行中であることを確認します。
sudo systemctl status logstash
5.LogStashサービスを停止します。
sudo systemctl stop logstash
6.LogStashの設定ファイルを開きます。
sudo vi /etc/logstash/conf.d/logstash.conf
7.上記ファイルを以下のコードで更新します。
input {
beats {
port => 5044
type => "log"
}
}
filter {
json {
source => "message"
target => "doc"
}
}
output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+yyyy.ww}"
document_type => "%{[@metadata][type]}"
}
}
8.変更を保存して終了します。
ESCキーを押して次を入力します。:wq
9.LogStashサービスを起動します。
sudo systemctl start logstash
2.3.3.ステップ3: Filebeatをインストール
1.FileBeatパッケージをインストールします。
cd apps/
sudo rpm --install filebeat-7.17.12-x86_64.rpm
2.FileBeatサービスを有効にします。
sudo systemctl enable filebeat
3.FileBeatサービスを起動します。
sudo systemctl start filebeat
4.FileBeatサービスが実行中であることを確認します。
sudo systemctl status filebeat
5.FileBeatサービスを停止します。
sudo systemctl stop filebeat
6.FileBeatの設定ファイルを開きます。
sudo vi /etc/filebeat/filebeat.yml
7.上記ファイルを以下のコードで更新します。
filebeat.inputs:
path:
- /opt/tomcat/logs/agents/*/*.log
8.以下のコードをコメント解除します。
#output.logstash:
# The Logstash hosts
#hosts: ["localhost:5044"]
9.変更を保存して終了します。
ESCキーを押して次を入力します。:wq
10.FileBeatサービスを起動します。
sudo systemctl start filebeat
2.3.5.ステップ4:Kibanaをインストール(オプション)
1.Kibanaパッケージをインストールします。
cd apps/
sudo rpm --install kibana-7.17.12-x86_64.rpm
2.Kibanaサービスを有効にします。
sudo systemctl enable kibana
3.Kibanaサービスを起動します。
sudo systemctl start kibana
4.Kibanaサービスが実行中であることを確認します。
sudo systemctl status kibana
5.Kibanaサービスを停止します。
sudo systemctl start kibana
6.Kibanaの設定ファイルを開きます。
sudo vi /etc/kibana/kibana.yml
7.上記ファイルを以下のコードで更新します。
server.port: 5601
server.host: "0.0.0.0"
8.変更を保存して終了します。
ESCキーを押して次を入力します。 :wq
9.Kibanaサービスを起動します。
sudo systemctl start kibana
2.4.akaBot Centerをインストール
高可用性モデルでは、フェイルオーバーの場合の相互バックアップに備える2つのakaBot Centerサーバーが必要です。
以下の手順を 各サーバーに別々で実行し 、akaBot Centerサービスをインストール・設定してください。
2.4.1.ステップ1:JDKをインストール
【注意】
使用中のakaBotマシンにJDKがインストールされている場合:
JDKのバージョンが11より古い場合は、JDK 11にバージョンアップしてください。
それ以外の場合は、この手順を無視してください。
JDKをインストールするには、以下の手順を行ってください。
1. 以下のコマンドで対象ファイルをインストールフォルダーに移動します。
cd apps/
2. インストールのコマンドを実行します。
sudo yum install openlogic-openjdk-11.0.16+8-linux-x64-el.rpm
3. 以下のコマンドを実行してインストールが正常に終了したことを確認します。
java -version
2.4.2.ステップ2:Apache Tomcatウエブサーバーをインストール
2.4.2.1. ステップ1:インストールファイルを解凍
1.インストールファイルをインストールフォルダーに移動します。
cd apps/
2.「/opt/tomcat」の新規フォルダを作成します。
sudo mkdir /opt/tomcat
3.Apache Tomcatのインストールパッケージを解凍します。
sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
2.4.2.2.ステップ2:Tomcatのグループとのユーザーを作成
実行中の権限関連エラーを防ぐために、Rootアカウントの代わり別のアカウントを作成・使用してTomcatのインストールを行う必要があります。
1.Tomcatのグループを作成します。
sudo groupadd tomcat
2.Tomcatグループおよびホームリンクの「/opt/tomcat」の配下にTomcatのアカウントを作成します。
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
3.Tomcatアカウントを設定し、後でakaBot Centerのライセンスアクティベーションに使用するマシンコードを取得します。
- viエディターを開きます。
sudo visudo /etc/sudoers
- ファイルの最後に以下のコードを追加します。
tomcat ALL= NOPASSWD: ALL
- 変更を保存してviエディターを終了します。
ESCキーを押して次を入力します。:wq
4.akaBot CenterマシンへのSSH接続に使用する現在のユーザーをTomcatグループに追加します。
sudo usermod -g tomcat [current_user_logged]
2.4.2.3.ステップ3:フォルダーのアクセス権を設定
1.Tomcatフォルダーの所有権を変更します。
cd /opt
sudo chown tomcat:tomcat tomcat
ls -l
2.Tomcatフォルダーのアクセス権限を設定します。
cd /opt/tomcat
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R g+r conf
sudo chmod g+x conf
sudo chown -R tomcat webapps/ work/ temp/ logs/
ls -l
2.4.2.4 ステップ 4:Tomcatサービスの実行を設定
1.Javaインストールフォルダーを取得します。
sudo update-alternatives --list | grep java
%JAVA_HOME% = /usr/lib/jvm/openlogic-openjdk-11-hotspot (WITHOUT /bin/java)
2.tomcat.serviceファイルを作成します。
sudo vi /etc/systemd/system/tomcat.service
3.上記ファイルに以下をコピーします。
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/openlogic-openjdk-11-hotspot
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms1G -Xmx2G -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
WorkingDirectory=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
4.Java Homeの変数を更新します。
Environment=JAVA_HOME=%JAVA_HOME%
Environment=JAVA_HOME=/usr/lib/jvm/openlogic-openjdk-11-hotspot
5.Javaのヒープメモリサイズを変更します。
Environment='CATALINA_OPTS=-Xms1G -Xmx2G -server -XX:+UseParallelGC'
Parameter -Xms: 最小限のJavaヒープサイズです。この値をRAM容量の1/4以下で設定してください。
例:akaBot CenterマシンのRAM容量が4GBの場合は、-Xms1Gと設定します。
Parameter -Xmx: 最大限のJavaヒープサイズです。この値をRAM容量の1/2以下で設定してください。
例:akaBot CenterマシンのRAM容量が4GBの場合は、-Xmx2Gと設定します。
6.変更を保存して終了します。
ESCキーを押して次を入力します。:wq
7.Daemonをリロードします。
sudo systemctl daemon-reload
8.Tomcatサービスを起動します。
注: Tomcatサービスを起動する前に、/opt/tomcat/webappsフォルダーにROOT フォルダーのみ があることを確認してください。
sudo systemctl start tomcat
9.Tomcatサービスを有効にします。
sudo systemctl enable tomcat
10.Tomcatのステータスを確認します。
sudo systemctl status tomcat
curl localhost:8080
11.所有者とグループの所有権をlogsフォルダーに変更します。
sudo chown -R tomcat /opt/tomcat/logs
sudo chgrp -R tomcat /opt/tomcat/logs
2.4.3.ステップ3:akaBot Centerパッケージをインストール
2.4.3.1.インストールフォルダーを解凍
1.Tomcatサービスが実行中の場合は停止します。
sudo systemctl stop tomcat
2./opt/tomcat/webapps配下のフォルダーをすべて削除します。
sudo rm -rf /opt/tomcat/webapps/*
3.akaBot-center-x.x.x.x.war を /opt/tomcat/webapps/ にコピーし、そのファイル名前を ROOT.war に変更します。
注:「x.x.x.x」はakaBot Centerのバージョンです。
cd ~/apps
sudo cp akaBot-center-3.0.1.2.war /opt/tomcat/webapps/ROOT.war
4.Tomcatサービスを起動し、Tomcatの実行でROOT.warがROOTフォルダーに抽出されるまで待ちます。
sudo systemctl start tomcat
cd /opt/tomcat/webapps
ls –l
5.Tomcatサービスを停止し、ROOT.warファイルを削除します。
sudo systemctl stop tomcat
sudo rm /opt/tomcat/webapps/ROOT.war
2.4.3.2.akaBot Centerを設定
akaBot Centerがデータベース、キャッシュ、キューサービスと対話できるようにするには、以下の通りに設定してください。
A. quartz.propertiesを設定
1.quartz.propertiesを開きます。
sudo vi /opt/tomcat/webapps/ROOT/WEB-INF/classes/quartz.properties
2.対象データベースのタイプ(Oracle、MSSQL、またはMySQL)に合わせて、以下の手順を実行します。
+ 対象データベースタイプの driverDelegateClass 変数行のコメントを解除して、データベースタイプの設定を有効にします。
例)対象データベースタイプがOracleの場合、Oracleの行のコメントを解除します。
+ 対象データベースタイプ以外のdriverDelegateClass 変数行をコメント化することで、他のデータベースタイプ設定を無効にします。
3.変更を保存して終了します。
ESCキーを押して次を入力します。:wq
B. logbackの設定
1.logbackの設定ファイルを開きます。
sudo vi /opt/tomcat/webapps/ROOT/WEB-INF/classes/logback-spring.xml
2.以下のコードを変更します。
${application.home:-.}/logs/center/akaCenter.%d{yyyy-MM-dd}.%i.log
【変更後】
/opt/tomcat/logs/center/akaCenter.%d{yyyy-MM-dd}.%i.log
3.以下のコードを変更します。
${application.home:-.}/logs/agents/${agentName}/BotAgent.%d{yyyy-MM-dd}.%i.log
【変更後】
/opt/tomcat/logs/agents/${agentName}/BotAgent.%d{yyyy-MM-dd}.%i.log
4.変更を保存して終了します。
ESCキーを押して次を入力します。:wq
C. データベース連携を設定
1.application-prod.ymlを開きます。
cd /opt/tomcat/webapps/ROOT/WEB-INF/classes/config/
sudo vi application-prod.yml
2.対象データベースのタイプ(Oracle、MSSQL、またはMySQL)に合わせて、上記ファイルを以下の通りに変更します。
例: 対象データベースタイプが Oracle の場合
a.データベースを更新します。
+ 対象データベースのURL行のコメントを解除し、対応するURLを更新します。
+ それ以外のURL行をコメント化します。
【注意】
Oracle URLのフォーマット:
+ サービスのSIDを使用する場合、URLのフォーマットは以下の通りになります。
url: jdbc:oracle:thin:@<DB-SERVER>:<DB-PORT>:<DB-SID>
+ サービス名を使用する場合、URLのフォーマットは以下の通りになります。
url: jdbc:oracle:thin:@//<DB-SERVER>:<PORT>/<SERVICE NAME>
MSSQL URLのフォーマット:
url: jdbc:sqlserver://<DB-SERVER>:<DB-PORT>;databaseName=<DB- NAME>;encrypt=true;trustServerCertificate=true;
MySQL URLのフォーマット:
url: jdbc:mysql://< DB-SERVER >:<DB-PORT>/<DB-NAME>
b.対象データベースのユーザー名とパスワードを変更します。
c.driverClassName 変数値を変更します。
+ 対象データベースタイプの driverClassname 変数行のコメントを解除します。
+ それ以外のデータベースタイプの driverClassname 変数行をコメント化します。
d.database-platform と database の変数値を変更します。
+ 対象データベースタイプの database-platform と database の変数行のコメントを解除します。
+ それ以外のデータベースタイプの database-platform と database の変数行をコメント化します。
e.変更を保存して終了します。
ESCキーを押して次を入力します。:wq
3.application-dev.yml ファイルの設定を編成します。
a.application-dev.ymlを開きます。
sudo vi application-dev.yml
b. ステップ2~ステップ3の手順を繰り返す ことで application-dev.yml を設定します。
D. ActiveMQの連携を設定
1.application.ymlを開きます。
cd /opt/tomcat/webapps/ROOT/WEB-INF/classes/config/
sudo vi application.yml
2.brokerURLの変数値を変更します。
brokerURL: failover:(tcp://<IP-ACTIVEMQ-01>:61616,tcp://<IP-ACTIVEMQ-02>:61616)?randomize=false&jms.messagePrioritySupported=true&nested.wireFormat.maxInactivityDurationInitalDelay=30000
ここで、
+ <IP-ACTIVEMQ-01>は第1ActiveMQサーバーのIPアドレス
+ <IP-ACTIVEMQ-02>はActiveMQサーバー02のIPアドレス
3.変更を保存して終了します。
ESCキーを押して次を入力します。“:wq”
E. Redis Cache連携を設定
1.application-prod.ymlを開きます。
cd /opt/tomcat/webapps/ROOT/WEB-INF/classes/config/
sudo vi application-prod.yml
2.上記ファイルを以下の通りに変更します。
+ mode の変数値を1に変更します。
+ server の変数値を以下の通りに変更します。
使用中のRedisサービスでパスワードが必要な場合、serverの変数値を以下の通りに変更します。
server: redis://:<REDIS-PASSWD>@<REDIS-IP>:6379
+ それ以外の場合はserverの変数値を以下の通りに変更します。
server: redis://<REDIS-IP>:6379
3.変更を保存して終了します。
ESCキーを押して次を入力します。“:wq”
4. application-dev.yml ファイルの設定を編成します。
a.application-dev.ymlを開きます。
sudo vi application-dev.yml
b. ステップ2~ステップ3の手順を繰り返す ことで application-dev.yml を設定します。
F. ElasticSearchの連携を設定
1.application.ymlを開きます。
cd /opt/tomcat/webapps/ROOT/WEB-INF/classes/config/
sudo vi application.yml
2.上記ファイルに以下のコードを追加します。
elasticsearch:
enabled: true
clustername: elasticsearch
index: filebeat-*
host: <IP_ES>
port: 9200
user:
password:
index-max-result-window: 20000000
ここで<IP_ES>はElasticSearchサーバーのIPアドレスです。
3.変更を保存して終了します。
ESCキーを押して次を入力します。:wq
G. Nugetパッケージ保存先のフォルダーパスを設定
1.application-prod.ymlを開きます。
cd /opt/tomcat/webapps/ROOT/WEB-INF/classes/config/
sudo vi application-prod.yml
2.以下のコードをコメント化し、Tomcatのデフォルト設定をオフにします。
3.以下のコードのコメントを解除し、Elastic Search設定をオンにします。
4.以下を変更します。
hibernate.search.backend.host: <IP_ES>:9200
ここで<IP_ES>はElasticSearchサーバーのIPアドレスです。
5.変更を保存して終了します。
ESCキーを押して次を入力します。“:wq”
6.application-dev.yml ファイルの設定を編成します。
a.application-dev.ymlを開きます。
sudo vi application-dev.yml
b. ステップ2~ステップ5の手順を繰り返す ことで application-dev.yml を設定します。
2.4.3.3.ステップ5:Tomcatサービスを起動してakaBot Centerを検証
1.Tomcatサービスを起動します。
sudo systemctl start tomcat
2.akaBot Centerが正常に動作していることをテストで確認します。
curl localhost:8080
正常に動作している場合は以下のレスポンスになります。
正常に動作しない場合は、 3. 問題のトラブルシューティング の手順に従って問題をセルフトラブルシューティングしてください。
2.5 nginx Load Balancerをインストール
2.5.1.ステップ1:nginxパッケージをインストール
1.nginxパッケージをインストールします。
cd apps/
sudo rpm -ivh <package name>
例:sudo rpm -ivh nginx-1.22.1-1.el8.ngx.x86_64.rpm
2.nginxサーバーを起動して有効にします。
sudo systemctl enable nginx
sudo systemctl start nginx
3.nginxのバージョンを確認します。
nginx -v
sudo systemctl status nginx
2.5.2.ステップ2:nginxサービスを設定
2.5.2.1.nginxのロードバランシングを設定
1.nginxサービスが実行中の場合は停止します。
sudo systemctl stop nginx
2.設定ファイルを開きます。
sudo vi /etc/nginx/sites-available/default
3.上記ファイルに以下をコピーします。
upstream akaBotCenter {
server <IP-SRV-CENTER-01>:8080;
server <IP-SRV-CENTER-02>:8080;
}
# 本サーバーはポート80へのトラフィックをすべて受け入れ、アップストリームに渡します。なお、アップストリーム名とproxy_pass は一致する必要があるので注意してください。
server {
listen 80;
server_name <YOUR-DOMAIN>;
client_max_body_size 200M;
location / {
proxy_pass http://akaBotCenter;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# WebSocket support (nginx 1.4)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
4.上記ファイルで以下の変数の値を変更します。
<IP-SRV-CENTER-01>は第1akaBot CenterサーバーのIPアドレス
<IP-SRV-CENTER-02>:akaBot Centerサーバー02のIPアドレス
<YOUR-DOMAIN>:akaBot Centerのドメイン
5.ロードバランシングモードを設定します。
エンドユーザーからのリクエストを適切なakaBot Centerサーバーに配信するには、nginxのロードバランシングモードを下記モードのいずれかに設定する必要があります。
+ ラウンドロビン・モード: リクエストが各サーバーへ順番に配信されるモードです。
このモードではファイル設定を変更せずに、そのまま設定終了のステップ6に進みます。
+ 加重ラウンドロビンモード: このモードでは各サーバーのリクエスト処理キャパシティとその優先度に基づいて、優先度の重みをアサインします。従って、リクエストはサーバーの優先度に従って配信されます。
以下の通りに、アップストリーム設定のサーバーアドレスの後に重み設定を追加します。
upstream akaBotCenter {
server <IP-SRV-CENTER-01>:8080;
server <IP-SRV-CENTER-02>:8080 weight:2;
}
本ガイドの例では、第2 akaBot Centerサーバーへのリクエストトラフィックは第1サーバーの2倍になります。
+ 接続数が少ない優先順モード:接続数が最も少ないサーバーから順番にリクエストが配信される優先順です。このモードを使用するためには、以下の定数をアップストリーム設定に追加します。
upstream akaBotCenter {
least_conn;
server <IP-SRV-CENTER-01>:8080;
server <IP-SRV-CENTER-02>:8080;
}
+ IP ハッシュモード: IPハッシュポリシーとして、受信リクエストの送信元IPアドレスをハッシュキーとして使用し、非スティッキートラフィックを同バックエンドサーバーにルーティングするモードです、対象サーバーが使用可能な限り、ロードバランサーはリクエストを同じクライアントから同じバックエンドサーバーにルーティングします。このモードを使用するためには、以下の定数をアップストリーム設定に追加します。
upstream akaBotCenter {
ip_hash;
server <IP-SRV-CENTER-01>:8080;
server <IP-SRV-CENTER-02>:8080;
}
6.変更を保存して終了します。
ESCキーを押して次を入力します。 :wq!
2.5.2.2.Nginx SSLを設定
プロバイダーよりSSLサービスを使用する場合は、プロバイダーのガイドに従ってインストール・設定してください。
それ以外の場合は、以下の手順で独自の自己署名SSLをデプロイしてください。
1.自己署名のSSL証明書を作成します。
sudo mkdir /etc/ssl/private
sudo chmod 700 /etc/ssl/private
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
2.Diffie-Hellmanキーを作成します。
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
3.設定ファイルを作成します。
sudo vi /etc/nginx/conf.d/default.conf
4.以下のコードを設定ファイルにコピーします。
server {
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
server_name <YOUR-DOMAIN>;
client_max_body_size 200M;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
########################################################################
# from https://cipherlist.eu/ # ########################################################################
ssl_protocols TLSv1.3;# Requires nginx >= 1.13.0 else use TLSv1.2
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; # Requires nginx >= 1.5.9
ssl_stapling on; # Requires nginx >= 1.3.7
ssl_stapling_verify on; # Requires nginx => 1.3.7
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# 一時的にはHSTSのプリロードを無効にしますが、「preload」ディレクティブの意味を理解している場合は、
# それを含むコメント化ヘッダー行を使用できます。
#add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
##################################
# END https://cipherlist.eu/ BLOCK #
##################################
location / {
proxy_pass http://akaBotCenter;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# WebSocket support (nginx 1.4)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
5.上記ファイル内のserver_nameをakaBot Centerドメインとして更新します。
server_name <YOUR-DOMAIN>;
6.HTTPからHTTPSへのリダイレクトを設定します。 ※オプション
server {
listen 80;
listen [::]:80;
server_name <YOUR-DOMAIN>;
return 301 https://$host$request_uri;
}
8.変更を保存して終了します。
ESCキーを押して次を入力します。:wq!
9.nginxサービスの設定変更を有効にし、nginxを再起動します。
sudo nginx -t
sudo systemctl restart nginx
2.6.Catalina.outを設定
デフォルトとして、Tomcatはログを catalina.out に書き込むため、ファイルサイズが大幅に増加し、パフォーマンス低下につながる可能性がありますが、それを防止するためには、Catalina.outの設定を以下の通りに変更します。
1.以下のファイルをを開きます。
sudo vi /opt/tomcat/bin/catalina.sh
2.ESCキーを押し、「:229」を入力して229行目に移動します。
3.コメント化し、catalina.outへのログの書き込みを停止します。
#CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
4.コメント化された行の直下行に以下を追加します。
CATALINA_OUT=/dev/null
5.変更を保存してファイルと閉じます。
ESCキーを押して次を入力します。“:wq”
以上、 高可用性モデルでのakaBot Centerのインストールと設定を正常に完了しました。
自動化のジャーニーにおいてakaBot Centerをたくさん活用することで、素晴らしい体験を過ごしますように!
3.問題のトラブルシューティング
多種多様のakaBot Centerマシン環境、アカウントの権限、そして各組織のコンテキストによって異なる規制設定を原因として、インストール時に多少の問題が発生する場合があります。本項は、一部のよくある問題のセルフ トラブルシューティング(随時更新)の手引き、そしてエキスパートによるサポートの連絡窓口情報を提供することを目的としています。
3.1.セルフトラブルシューティング
インストール時に何らかの問題が発生した場合は、以下の手順に従ってセルフトラブルシューティングを行ってください。
3.1.1 ステップ1:問題の検出
まずはログを使って問題を検出してください。
- Tomcatサービスの起動に関連する問題については、Tomcatログファイルの /opt/tomcat/logs/catalina.out を使って検出してください。
- akaBot Center関連の問題は、akaBot Centerログファイルの/opt/tomcat/logs/center/akaCenter.yyyy—mm-dd.0.log を使って検出してください。
1.ログフォルダーに移動し、すべてのログファイルを削除することで、以前の実行ログを消します。
2.問題対象のサービスを再起動してログを生成します。
3.ログファイルを開いて問題を検出します。
3.1.2 ステップ2:問題をトラブルシューティング
3.1.2.1.問題1:自動コミットによるコミットができない
問題: 下記イメージと同じように、自動コミットによるコミットができていません。
対策:
1.2.2.4 ステップ4:Tomcatサービスを設定でで、サービス設定ファイルの JAVA-OPTS変数に以下のオプションを追加してください。
-Doracle.jdbc.autoCommitSpecCompliant=false
2.本ガイドの次の手順に進みます。
3.2.akaBot チームに連絡してエキスパートのサポートを要求
どうしてもセルフトラブルシューティングがうまくいかない場合は、akaBotチームがいつでもお客様のインストールプロセスをサポートいたします。 その際に下記の連絡窓口でakaBotチームに連絡し、エキスパートによるサポートをお求めください。
- お客様側のプロジェクトコーディネーターの方まで連絡(いる場合)
- [email protected]までメールを送信
- または akaBotのホームページ にてメッセージを送信