Redhat v9.x上の高可用性モデル

adminが2024/01/24 16:26に最終更新

1.始める前に

本ドキュメントは、以下のとおりに高可用性モデル(通称「フェイルオーバー」モデル)にakaBot Center を新規インストールする方法を案内することを目的としています。

image-20230804101914-1.png

モデルのコンポーネント:

#コンポーネント説明
1NginxロードバランサーNginxのロードバランサーは、スピードとキャパシティの使用率を最大化し、パフォーマンス低下につながるサーバーの過負荷にならないように、すべてのakaBot Centerサーバーにわたってクライアントリクエストをルーティングする、akaBot Centerサーバーの前線に巡回する「トラフィック警官」として機能を果たしています。
2akaBot CenterAkaBot Centerにより、ユーザが使用中の環境でakaBotエージェントの作成、監視、および展開を管理することができます。
3ActiveMQ ServiceakaBot Centerのキュー関連機能をサポートするメッセージングアプリケーションです。
4ELK StackakaBotセンターによって生成されたログのディープサーチ、分析と表示を支援する包括的なログ分析ソリューションです。
5Redis Cacheデータベース、キャッシュ、メッセージブローカー、そしてストリーミングエンジンとして使用されるインメモリデータ構造ストレージです。Redis Cacheによりデータベースのアクセス回数を軽減することで、必要なトラフィックとインスタンスの削減を実現します。

他のモデルまたはakaBot Centerのアップグレードについては、プロジェクトコーディネーター担当(いる場合)にご連絡になるか、[email protected]までメールにてお問い合わせ下さい。

akaBotチームは、いつでもお客様のインストール作業をサポートいたします。

インストールを正常に完了するためには、以下の内容をよく読み、必要なリソースおよび情報をご用意ください。

1.1.ハードウェアの要件

高可用性モデルでakaBot Centerをインストールしてご利用いただくには、以下のハードウェア要件を満たす必要があります。

#サーバー数量コア数RAMSSD備考
1akaBot Centerサーバー208以上32GB以上500GB以上akaBot Centerインストール用サーバー
2ActiveMQサーバー208以上16GB以上250GB以上ActiveMQサービスインストール用サーバー
3ELKサーバー116 以上16以上100GB以上インデックスサービスインストール用サーバー
4Redis Cacheサーバー104以上4GB以上100GB 以上キャッシングサービスインストール用サーバー
5Nginxサーバー104 以上4GB以上100GB以上ロードバランサーサービスインストール用サーバー

1.2.データベースの要件

本インストールモデルの利用には、以下2つのデータベースが必要です。

  • akaBot Center用のデータベース(1件)
  • ActiveMQサービス用のデータベース(1件)

上記データベースが使用できる 状態であることを確認し、以下の接続用準備を各データベースに用意してください。

#情報説明
1DB-SERVERデータベースのIPアドレス。
例:3.112.124.176
2DB-USERデータベースのユーザー名。
例:AKA_CENTER_01
3DB-PASSWORDユーザーのパスワード。
例:akaBot123
4DB-PORTデータベースのポート。
例:1521
5DB-SID/SERVICE NAMEデータベースのSID/サービス名。
例:Orcl

1.3.ファイルストレージの要件

Nugetパッケージを保存するための専用フォルダーがファイルストレージサーバー上にあり、akaBot Centerサーバーがそのフォルダーに対する読み取り・書き込みのアクセス許可を持っている必要があります。

例:NFS-NUGET

1.4.権限要件

各マシンでインストールを実行するには、ユーザーアカウントはSudoとしての実行権限を持つが必要があります。

1.5.インストールパッケージの準備

akaBot Centerマシンは以下の正確なバージョンでインストールパッケージを持つ必要があります。

#プラットフォーム名パッケージ名バージョン説明ダウンロードリンク
1JDK/JREopenlogic-openjdk-11.0.16+8-linux-x64-el.rpm11.0.16OpenJDKダウンロード
2Apache tomcatapache-tomcat-8.5.57.tar.gz8.5.57Apache TomcatのWebサーバーダウンロード
3ActiveMQapache-activemq-5.15.1-bin.tar.gz5.15.1ActiveMQはakaBot Centerのキュー関連機能に使用されますダウンロード
4akaBot CenterakaBot-center-x.x.x.x.war3.0.1.2以降akaBot CenterのインストールパッケージakaBotによって提供されるインストールパッケージです。詳細はプロジェクトコーディネーター、または[email protected]までご連絡ください。
5Oracle JDBC driverojdbc8.jarojdbc8Oracle JDBCのドライバーダウンロード
6Nginx Load Balancernginx-1.22.1-1.el8.ngx.x86_64.rpm1.22.1Nginxロードバランサーのパッケージダウンロード
7Redis Cacheredis-5.0.3-5.module+el8.4.0+12927+b9845322
.x86_64.rpm
5.0.3Redis Cacheのパッケージダウンロード
8Kibanakibana-7.17.12-x86_64.rpm7.17.12Kibanaのパッケージ(オプション)ダウンロード
9Elastic Searchelasticsearch-7.17.12-x86_64.rpm7.17.12ElasticSearchのパッケージダウンロード
10Logstashlogstash-7.17.12-x86_64.rpm7.17.12ログ分析プラットフォームのパッケージダウンロード
11Filebeatfilebeat-7.17.12-x86_64.rpm7.17.12Filebeatのパッケージダウンロード

【注意】

  • サーバーごとのインストールパッケージの保存先として、別のフォルダーを使用する必要があります。本ガイドでは、/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

image-20230804101914-2.png

4.Redisサービスを起動して有効にします。

sudo systemctl start redis

sudo systemctl enable redis

5.Redisサービスのステータスを確認します。

sudo systemctl status redis

image-20230804101914-3.png

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に更新します。

image-20230804101914-4.png

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パラメータを検索してコメントを解除します。

image-20230804101914-5.png

4.変更を保存して終了します。

ESCキーを押して次を入力します。“wq”

5.Redisサービスを再起動します。

sudo systemctl start redis

2.2.ActiveMQのインストール手順

高可用性モデルでは、フェイルオーバーの場合の相互バックアップに備える2つのActiveMQサーバーが必要です。

以下の手順を 各サーバーに別々で実行し 、ActiveMQサービスをインストール・設定してください。

2.2.1.ステップ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

image-20230804101914-6.png

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と設定します。

image-20230804101914-7.png

  • 変更を保存して終了します。

            ESCキーを押して次を入力します。:wq

3.ActiveMQサービスを再起動します。

sudo systemctl start activemq

4.ActiveMQサービスのステータスを確認します。

sudo systemctl status activemq

image-20230804101914-8.png

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

  •  ブローカー名を変更します。(オプション)

image-20230804101914-9.png

  • ファイルの最後に以下のコードを追加し、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>

image-20230804101914-10.png

            【注意】

            + データベースが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" />

image-20230804101914-11.png

     5.変更を保存して終了します。

         ESCキーを押して次を入力します。:wq!

     6.ActiveMQサービスを起動し、ステータスを確認します。

         sudo systemctl start activemq

         sudo systemctl status activemq

2.3.ELK Stackのインストール

ELK Stackとは、akaBotセンターによって生成されたログのディープサーチ、分析と表示を支援する包括的なログ分析ソリューションです。

ELK Stackのコンポーネントには、以下が含まれています。

  1. Elasticsearchは、Apacheライセンスに基づいてリリースされている、Apache Lucene上にビルドされたRESTfulの分散検索エンジンです。JavaベースであるElasticsearchは、データの取り込みに加えて、多種フォーマットのドキュメントファイルの検索やインデックス付けができます。
  2. Logstash は、複数のソースからのデータを統合し、データベースの正規化とデータの分散を実現するデータ収集エンジンです。
  3. Kibana は、大量のストリーミングデータとリアルタイムデータに特化した、データ可視化・データ探索のオープンソースツールです。Kibanaにより、グラフィックによる可視化を通じて、複雑なデータストリームの簡単かつ迅速な理解ができます。Kibanaコンポーネントのインストールはオプションです。
  4. 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

image-20230804101914-12.png

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

image-20230804101914-13.png

  • 変更を保存して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

image-20230804101914-14.png

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

image-20230804101914-15.png

2.4.2.4 ステップ 4:Tomcatサービスの実行を設定

1.Javaインストールフォルダーを取得します。

sudo update-alternatives --list | grep java

image-20230804101914-16.png

%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

image-20230804101914-17.png

curl localhost:8080

image-20230804101914-18.png

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の行のコメントを解除します。

image-20230804101914-19.png

+ 対象データベースタイプ以外のdriverDelegateClass 変数行をコメント化することで、他のデータベースタイプ設定を無効にします。

image-20230804101914-20.png

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

image-20230804101914-21.png

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行をコメント化します。

image-20230804101914-22.png

        【注意】

      Oracle URLのフォーマット:

       + サービスのSIDを使用する場合、URLのフォーマットは以下の通りになります。

           url: jdbc:oracle:thin:@<DB-SERVER>:<DB-PORT>:<DB-SID>

image-20230804101914-23.png

      + サービス名を使用する場合、URLのフォーマットは以下の通りになります。

          url: jdbc:oracle:thin:@//<DB-SERVER>:<PORT>/<SERVICE NAME>

image-20230804101914-24.png

      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.対象データベースのユーザー名とパスワードを変更します。

image-20230804101914-25.png

      c.driverClassName 変数値を変更します。

+ 対象データベースタイプの driverClassname 変数行のコメントを解除します。

+ それ以外のデータベースタイプの driverClassname 変数行をコメント化します。

image-20230804101914-26.png

    d.database-platformdatabase の変数値を変更します。

+ 対象データベースタイプの database-platformdatabase の変数行のコメントを解除します。

+ それ以外のデータベースタイプの database-platformdatabase の変数行をコメント化します。

image-20230804101914-27.png

    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アドレス

image-20230804101914-28.png

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に変更します。

image-20230804101914-29.png

+ server の変数値を以下の通りに変更します。

         使用中のRedisサービスでパスワードが必要な場合、serverの変数値を以下の通りに変更します。

                       server: redis://:<REDIS-PASSWD>@<REDIS-IP>:6379

          + それ以外の場合はserverの変数値を以下の通りに変更します。

server: redis://<REDIS-IP>:6379

image-20230804101914-30.png

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のデフォルト設定をオフにします。

image-20230804101914-31.png

3.以下のコードのコメントを解除し、Elastic Search設定をオンにします。

image-20230804101914-32.png

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

正常に動作している場合は以下のレスポンスになります。

image-20230804101914-33.png

正常に動作しない場合は、 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

image-20230804101914-34.png

sudo systemctl status nginx

image-20230804101914-35.png

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”

image-20230804101914-36.png

以上、 高可用性モデルでの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:自動コミットによるコミットができない

問題: 下記イメージと同じように、自動コミットによるコミットができていません。

image-20230804101914-37.png

 対策:

1.2.2.4 ステップ4:Tomcatサービスを設定でで、サービス設定ファイルの JAVA-OPTS変数に以下のオプションを追加してください。

-Doracle.jdbc.autoCommitSpecCompliant=false

image-20230804101914-38.png

2.本ガイドの次の手順に進みます。

3.2.akaBot チームに連絡してエキスパートのサポートを要求

どうしてもセルフトラブルシューティングがうまくいかない場合は、akaBotチームがいつでもお客様のインストールプロセスをサポートいたします。 その際に下記の連絡窓口でakaBotチームに連絡し、エキスパートによるサポートをお求めください。

タグ:
[+]
  
Navigation