Control Nodeの設定
このドキュメントでは、Control Nodeでパッケージのインストールを完了した後に実行する作業を説明します。
- ノードAの初期設定: Webインストーラーを使用してノードAの基本設定を構成します。
- フェデレーション通信アカウントの設定: ノード間の通信に使用するフェデレーションアカウントを設定します。
- ノードBの初期設定: ノードBの基本設定をノードAの設定に合わせて構成します。
- Webコンソールへのログイン: ノードAとノードBでWebコンソールにログインします。
- ライセンス登録: 各ノードにライセンスを登録します。
- Control Nodeペアの設定: ノードAとノードBを1つのペアとして構成し、Node Pairの一意の識別子を設定します。
- ネットワーク冗長化: 仮想IPアドレス(VIP)を利用してネットワークの高可用性(HA)を構成します。
- 仮想IPアドレスでWebコンソールに接続: 仮想IPアドレスでWebコンソールに接続します。
ノードAの初期設定
Control Nodeは、Webサービス形式のユーザーインターフェース(Webコンソール)を提供します。管理者が初めてWebコンソールに接続すると、Webインストーラーが実行され、サーバーの運用環境に合わせた初期設定を進めます。
Webコンソールへの接続
-
Webブラウザーを開き、Control Node AのIPアドレスまたはFQDNアドレスで接続してください(例:
https://192.0.2.1、https://c1a.example.com、https://c1a)。 -
プライベートSSL証明書を使用するため、Webブラウザーがセキュリティ警告メッセージを表示します。問題がなければ、セキュリティ警告を無視して接続を進めてください。
クラスター管理者の登録
Logpresso Sonarの最上位管理者であるクラスター管理者を登録します。
-
Registering Cluster Administrator画面が表示されたら、クラスター管理者の登録に必要な情報を入力してください。
- Organization name: Logpresso Sonarを運用する会社/組織の名前
- Administrator's name: クラスター管理者の名前。クラスター管理者がログインすると、Webコンソール右上に管理者の名前が表示されます。
- Locale: クラスター管理者の言語。接続したWebブラウザーの言語に応じて、韓国語または英語のいずれかが選択されます。
- Email: クラスター管理者のメールアドレス
- Admin ID: クラスター管理者のログイン名。
root、system、admin、administrator、logpresso、sonarのような、よく知られたログイン名は使用しないでください。 - Password/Confirm password: クラスター管理者のログインパスワード
- Admin IP addresses: クラスター管理者の接続を特定のIPアドレスに制限する場合に使用します。最大2つのIPアドレスを指定できます。
-
Nextボタンをクリックして次のステップに進んでください。
証明書とWeb Endpointの設定
証明書を交換し、Web Endpointを設定します。Web Endpointは、従業員がセキュリティイベントに対する弁明を作成または確認する際に接続するアドレスです。
-
System Configuration画面が表示されたら、システム設定に必要な情報を入力してください。
-
Web Endpoint: Webコンソールのアドレス。次のように、Control Nodeペアの仮想IPアドレスまたはFQDNアドレスを使用してください。
# Control Nodeの仮想IPアドレス: 192.0.2.24 # FQDN: sonar.example.com https://192.0.2.24 または https://sonar.example.com -
CA cert. password: CA証明書のパスワード(デフォルト有効期間/最大: 10950日)。パスワードを入力した後、Apply this password to other certificatesをクリックすると、他の証明書にも同じパスワードが入力されます。
-
RPC cert. password: Sentryと通信する際に使用する証明書のパスワード(デフォルト有効期間/最大: 365日)
-
Storage cert. password: テーブル暗号化キーが保存された証明書に使用するパスワード。この証明書には有効期間がありません。
-
Web cert. password: Logpresso SonarのWebコンソール接続時に使用するWebサーバー証明書のパスワード(デフォルト有効期間/最大: 365日)
-
-
Nextボタンをクリックして次のステップに進んでください。
次の内容も覚えておいてください。
- Webコンソールの**プッシュテンプレート画面でWeb Endpoint**を変更できます。
- Webコンソールの**証明書**画面で、証明書情報の照会、再発行などを実行できます。
オブジェクトストレージの設定
データライフサイクル機能でCold tierストレージとして使用するオブジェクトストレージを設定します。オブジェクトストレージを使用しない場合、または後で設定する場合は、Skipボタンをクリックしてください。
-
Object Storage Configuration画面が表示されたら、オブジェクトストレージの設定に必要な情報を入力してください。
- Type: ストレージサービスプロバイダー(AWS、S3 Compatible Storage、またはkakaocloudのいずれかを選択、デフォルト値: AWS)
- Access KeyまたはAuthentication Key: ストレージサービス接続用のアクセスキー
- Secret KeyまたはSecret access Key: ストレージサービス接続用の秘密アクセスキー
- Endpoint: ストレージサービスの接続アドレス
- Bucket: ストレージバケットの名前
-
すべてのプロパティを入力した後、Testボタンをクリックしてください。テストに成功しないと、次のステップに進めません。
次の内容も覚えておいてください。
- Webコンソールの**クラスター画面にあるライフサイクルタブでストレージ階層ごとの保管期間を設定し、ストレージ**タブでロールオーバーを設定してはじめて、データライフサイクルに応じてデータを管理できます。
データベースの設定
次に、MariaDBデータベースをLogpresso Sonarに接続します。
-
Database Configuration画面が表示されたら、データベースの設定を入力してください。すべての設定値を入力すると、自動的にデータベース接続を試行します。接続に成功すると、Successfully connected to database.というメッセージが表示され、Nextボタンが有効になります。有効になったNextボタンをクリックしてください。
-
Server address: MariaDBサーバーのアドレス(デフォルト値:
localhost) -
Port: MariaDBサーバーのポート番号(デフォルト値:
3306) -
Database: MariaDBサーバーのデータベース名(デフォルト値:
sonar) -
Database account: Logpresso Sonar専用のデータベースアカウント(デフォルト値:
sonar) -
Password: Logpresso Sonar専用のデータベースアカウントのパスワード
-
接続に失敗すると、エラーメッセージが表示されます。エラー内容を確認して設定値を修正した後、Retryボタンをクリックしてください。
-
-
データベースの設定が完了すると、Logpresso Sonarの実行に必要な設定が自動的に進行します。Webインストーラーで構成したすべての設定は、Galera Clusterを通じてノードBと同期されます。
-
設定の適用が完了すると、証明書が交換され、Webコンソールのログイン画面に再接続されます。更新された自己署名サーバー証明書を使用するため、セキュリティ警告が表示される場合があります。警告を無視して進めてください。
要約
ここまで実行すると、ノードAには次のような作業が行われた状態になります。
- MariaDBにデータベースとテーブルを作成し、デフォルトデータを注入
- Galera ClusterによってノードBとデータベース層を同期
- アプリケーション層の設定
- データベース接続に必要なJDBCプロファイルの作成
- クラスター管理者のWebコンソール接続に必要な認証サービスの設定
ノードAの基本設定は完了しましたが、ノードBのアプリケーション層の設定はまだ残っています。次のステップでこの設定を進めます。
クラスターを構成せず、スタンドアロン型で運用する場合は、ライセンス登録のステップに進んでください。
フェデレーション通信アカウントの設定
ノード間のフェデレーション通信のために、ノードAとBの両方でLogpresso Shellアカウントとフェデレーションアカウントのパスワードを設定する必要があります。この作業はLogpresso Shellで進めます。Logpresso ShellはLogpressoエンジンのCLIで、Webコンソールの接続アカウント(例: クラスター管理者)とは分離されたアカウントを使用します。
Logpresso Shellへの接続
Control Node AとBでそれぞれLogpresso Shellに接続し、デフォルトパスワードを変更する必要があります。パスワード紛失に備えて、SSHキーを登録しておくことを推奨します。
デフォルトパスワードの変更
-
ターミナルで次のコマンドを実行して、Logpresso Shellに接続してください。ポート番号は
logpresso.confファイルのSSH_PORT設定に応じて異なる場合があります(デフォルト値: 7022)。ssh -p 7022 root@localhost -
パスワードを尋ねるプロンプトが表示されたら、Logpresso Shellのデフォルトパスワードを入力してください。
-
新しいパスワードの入力プロンプトが表示されたら、新しいパスワードを入力してEnterキーを押してください。Logpresso Shellアカウントは各ノードのSSH接続にのみ使用されるため、ノードごとに異なるパスワードを設定してもかまいません。
Please change the default password. New password: # 新しいパスワードを入力後、Enter Retype password: # 新しいパスワードを再入力後、Enter Password changed successfully. Logpresso SNR-4.0.2511.1 (build 20250805) on Araqne Core 4.0.5 logpresso> # Logpresso ShellのプロンプトCautionLogpresso Shellはデフォルトパスワードの再使用を拒否します。どのアカウントでも絶対にデフォルトパスワードを再使用しないでください。デフォルトパスワードを使用して問題が発生した場合、Logpressoはこれについて責任を負いません。
オペレーティングシステムによっては、Logpresso Shellに接続する際にSSHキー交換や暗号化アルゴリズムのネゴシエーションで接続できない場合があります。Control Node A、Bの~/.ssh/configファイルに次の内容を追加し、ssh sonarコマンドで接続してください。
Host sonar
HostName 127.0.0.1
Port 7022
User root
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
KexAlgorithms +diffie-hellman-group14-sha1
Ciphers +aes256-cbc
PreferredAuthentications publickey # SSHキーログイン
IdentityOnly yes # SSHキーログイン
IdentityFile ~/.ssh/logpresso_rsa # SSHキーログイン
SSHキーの登録 (任意)
SSHキー認証でLogpresso Shellに接続できます。パスワードを紛失した場合でも接続できるため、SSHキーの登録を推奨します。
-
RSAキーがない場合は、次のコマンドを実行してキーペアを生成してください。
ssh-keygen -t rsa -b 2048 -f ~/.ssh/logpresso_rsaNoteLogpresso Shellはssh-rsaキーのみをサポートします。
-
Logpresso Shellで次のコマンドを実行して、SSH公開キーを登録してください。
account.addSshKey root -
プロンプトが表示されたら、SSH公開キーを入力してください。公開キーは
~/.ssh/logpresso_rsa.pubファイルにあります。SSH public key? ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ... # 公開キー全体を入力 root password: # 現在のパスワードを入力 addedTip公開キーファイルの絶対パスを直接指定することもできます: account.addSshKey root /home/logpresso/.ssh/logpresso_rsa.pub
-
次のコマンドを実行して、登録されたSSHキーのリストを確認してください。
account.sshKeys rootコマンドを実行すると、次のように登録されたSSHキーを確認できます。
Authorized SSH keys --------------------- 1: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ... -
これで、パスワードなしでSSHキーでLogpresso Shellに接続できます。
ssh -p 7022 -i ~/.ssh/logpresso_rsa root@localhost
フェデレーションアカウントのパスワード設定
フェデレーションアカウントは、クラスターを構成するすべてのノード間の通信に使用するアカウントで、すべてのControl Node/Data Node/Forwarder Nodeが同じフェデレーションアカウントのパスワードを使用する必要があります。このステップで設定したフェデレーションアカウントのパスワードは、Control Nodeペアの登録だけでなく、Data NodeペアおよびForwarder Nodeペアでも使用されます。
-
ノードAとBのLogpresso Shellで次のコマンドを実行して、フェデレーションアカウントのパスワードを変更してください。
dom.resetPassword localhost root -
新しいパスワードの入力プロンプトが表示されたら、新しいパスワードを入力してEnterキーを押してください。
New Password: # 新しいパスワードを入力後、Enter- パスワードは一度だけ入力できます。パスワードを誤って入力した場合は、
dom.resetPassword localhost rootコマンドを再実行してください。
Noteフェデレーションアカウントのrootは、Logpresso Shellアカウントのrootと名前が同じでも、互いに異なる認証ドメインに属します。フェデレーションパスワードの変更過程でaraqne.logに一時的にERRORログが記録される場合がありますが、変更を終えた後に解決されます。
- パスワードは一度だけ入力できます。パスワードを誤って入力した場合は、
-
このドキュメントを参考にして、フェデレーションアカウントのPassword ExpirationをUnlimitedに変更してください。
- Webブラウザーを開き、
https://<Control Node AのIPアドレス>:8443に接続した後、フェデレーションアカウントでログインしてください。 - Webコンソール左側のメニューからSystem > Users画面に移動してください。
- フェデレーションアカウントのリストからrootをクリックしてください。
- Passwd. ExpirationフィールドでUnlimitedを選択し、Saveボタンをクリックしてください。
- ノードBでも同じ作業を実行してください。
- Webブラウザーを開き、
ノードBの初期設定
ノードAでは、Webインストーラーが認証サービスとデータベース接続を自動的に設定します。ノードBでは、この設定を手動で進める必要があります。ノードAとBが同じMariaDBを共有するため、この設定を完了すると、クラスター管理者はノードBのWebコンソールにも同じアカウントでログインできます。
sonar認証サービスの設定
sonar認証サービスは、Webコンソールのユーザー認証に使用されます。この設定を完了しないと、クラスター管理者はノードBのWebコンソールにログインできません。
-
ノードBのLogpresso Shellで次のコマンドを実行して、
sonar認証サービスを有効にしてください。logdb.useAuthService sonar dom -
次のコマンドを実行して、
sonar認証サービスが有効になっているかを確認してください。logdb.authServicesExternal Auth Servicesリストで、domとsonarにアスタリスク(*)が付いており、orderがsonar - domであれば正常です。External Auth Services ------------------------ [*] dom - araqne-dom authentication provider for araqne logdb [*] sonar - com.logpresso.sonar.dom.impl.SonarAuthServiceImpl@5d7b80f7 order: sonar - dom
JDBCプロファイルの作成
ノードBでLogpresso SonarがMariaDBに接続するには、JDBCプロファイルを作成する必要があります。
-
次のコマンドを実行して、JDBCプロファイルを作成してください。
logpresso.createConnectProfile jdbc sonar -
プロファイル作成のプロンプトが表示されたら、次のように値を入力してください。
Connection String (required)? jdbc:mariadb://localhost:3306/sonar # データベース接続文字列 User (optional)? sonar # ノードAでWebインストーラーにより作成したデータベースアカウント(デフォルト値: sonar) Password (optional)? # ノードAでWebインストーラーにより作成したデータベースアカウントのパスワード Read Only (optional)? false # 必ずfalseを入力 Granted users (csv)? # Enterキーを押して省略 Granted groups (csv)? # Enterキーを押して省略 -
次のコマンドを実行して、作成されたJDBCプロファイルのGUIDを確認してください。
logpresso> logpresso.connectProfiles Connect Profiles ------------------ guid=59f4788b-75df-4297-afbd-579eed9cb086, type=jdbc, name=sonar, description=null, source=ENT -
確認したGUIDで次のコマンドを実行して、プロファイルが正常に作成されたかを確認してください。
logpresso> logpresso.connectProfile 59f4788b-75df-4297-afbd-579eed9cb086 Connect Profile ----------------- Type: jdbc Name: sonar Description: null Configs * Connection String: jdbc:mariadb://localhost:3306/sonar * User: sonar * Password: ******** * Read Only: false
Logpressoサービスの再起動
プロファイル設定を適用するには、Logpressoサービスを再起動する必要があります。
-
ノードBで次のコマンドを実行して、Logpressoサービスを再起動してください。
sudo systemctl restart logpresso -
次のコマンドを実行して、サービスが正常に実行されているかを確認してください。
sudo systemctl status logpresso次のように
Active: active (running)の状態であれば正常です。logpresso.service - Logpresso daemon Loaded: loaded (/usr/lib/systemd/system/logpresso.service; enabled; preset: disabled) Active: active (running) since Sat 2025-12-13 10:56:58 KST; 6 days ago Docs: https://ko.logpresso.com/documents Main PID: 1682 (java) Tasks: 229 (limit: 23116) Memory: 4.1G CPU: 4d 40min 56.229s CGroup: /system.slice/logpresso.service └─1682 /opt/logpresso/jre/bin/java ...(省略)... -jar /opt/logpresso/sonar/araqne-core-4.0.5-package.jar
Webコンソールへのログイン
ノードAとノードBでそれぞれWebコンソールにログインします。クラスター管理者アカウントでログインしてください。
-
ノードAでWebインストーラーの実行後、ログイン画面が表示されるかを確認してください。Webブラウザーのウィンドウを閉じた場合は、
https://NODE_A_IP_ADDRまたはhttps://FQDNアドレスで接続してください(例:https://203.0.113.194、https://c1a.example.com)。 -
ノードBでも
https://NODE_B_IP_ADDRまたはhttps://FQDNアドレスで接続してください(例:https://203.0.113.195、https://c1b.example.com)。 -
Webコンソールに接続すると、画面右下に通知ブロックのメッセージが表示される場合があります。
-
サーバー通知をWebコンソールで確認できるように、Webブラウザーの通知設定をAllowに変更してください。
-
クラスター管理者のUsernameとPasswordを入力し、Loginボタンをクリックしてください。
Noteログインに複数回失敗すると、アカウントが一定時間ロックされます。ロック解除やパスワード変更が必要な場合は、サーバー管理者に問い合わせてください。
ライセンス登録
ログイン後、最初にライセンスを登録します。
ライセンスの申請
-
ノードAとノードBのWebコンソールのSystem > Licenses画面でHardware Keyを確認し、安全な場所に記録しておいてください。
-
Logpressoサポートポータルで、ノードAとBのハードウェアキーに対してライセンスの発行を依頼してください。
以降の作業は、ライセンスが発行された後に実行する必要があります。
ライセンスの入力
-
ノードAとノードBのWebコンソールのSystem > Licenses画面でInstall Licenseボタンをクリックしてください。
-
発行されたライセンス情報を入力ウィンドウに貼り付け、OKボタンをクリックしてください。
-
ライセンスが正常に登録されたかを確認してください。
Control Nodeペアの設定
Control Nodeペアの登録
ノードAのWebコンソールのSystem > Clusters > Node画面でNode Pairを登録します。ここでは、既存のNode Pairを削除して再構成する方法で説明します。
-
ノードAのWebコンソールでSystem > Clustersメニューに移動してください。
-
既存の
controlノードを選択し、Deleteボタンをクリックしてください。 -
クラスターノードリストの右上でAddボタンをクリックし、Control Nodeペアを設定してください。各プロパティの詳細な説明については、ユーザー説明書のNode Pairの追加を参照してください。
- Type: Control Nodeを選択
- Name: Control Nodeペアの識別子を入力(例:
c1)- Saveボタンをクリックした後は変更できません。
- Description: Node Pairの説明(省略可能)
- TLS: 選択
- Certification Verification: 選択しない
- Connection Timeout: デフォルト値を使用
- Read Timeout: デフォルト値を使用
- Use HA Mode: 選択
- Virtual IP: Control NodeペアのIPアドレス(例:
203.0.113.193)- このIPアドレスは、HAスクリプトでVIPとして使用されます。
- Node A Settings
- Node A ID: ノードAの識別子を入力(例:
c1a) - Address: ノードAの実際のIPアドレスと通信ポート(例:
203.0.113.194:443)- Control Nodeのポート番号は
443です。
- Control Nodeのポート番号は
- Login Name:
rootを入力 - Password: Sonarフェデレーションアカウントのパスワードを入力
- Node A ID: ノードAの識別子を入力(例:
- Node B Settings
- Node ID: ノードBの識別子(例:
c1b) - Address: ノードBの実際のIPアドレスと通信ポート(例:
203.0.113.195:443) - Login Name:
rootを入力 - Password: Sonarフェデレーションアカウントのパスワードを入力
- Node ID: ノードBの識別子(例:
-
入力を完了した後、Saveボタンをクリックしてください。次のようにControl Nodeペアが追加されたことを確認してください。
-
追加されたControl NodeのNameをクリックし、ノードA、BのGUIDを確認してください。NameやNode IDを誤って指定した場合は、Node Pairを削除して再構成する必要があります。
ノードAとノードBのGUIDを安全な場所に記録してください。この値はノードGUIDの設定で使用されます。
キー暗号化キーの複製
ノードAのキー暗号化キー(KEK、Key Encryption Key)をノードBに同じように設定してください。キー暗号化キーはノード間の複製を許可しないため、管理者が直接コピーする必要があります。
-
ノードAのLogpresso Shellで次のコマンドを実行して、暗号化キー文字列を安全な場所に記録してください。
sonar.cipherKey -
ノードAの暗号化キー文字列をコピーした後、ノードBのLogpresso Shellで次のコマンドを実行して、同じ暗号化キーを構成してください。
KEY_STRINGはノードAの暗号化キー文字列です。sonar.setCipherKey KEY_STRING
ノードGUIDの設定
Control Nodeペアの登録のステップで変更されたノードAのGUID、新しく生成されたノードBのGUIDを、Logpresso Shellで同じように設定してください。
-
ノードAとノードBのLogpresso Shellで次のコマンドを実行して、各ノードのポリシー同期用GUIDをLogpressoエンジンに設定してください。
GUID_STRINGは各ノードのGUID文字列です。sonar.setGuid GUID_STRING # 各ノードに合ったGUIDを入力各ノードのポリシー同期用GUIDは、次のコマンドで確認できます。
sonar.nodeConfig -
ノードAとノードBのLogpresso Shellで次のコマンドを実行して、クラスター制御用GUIDをLogpressoエンジンに設定してください。
sonar.setControlGuid GUID_STRING # 各ノードに合ったGUIDを入力各ノードのクラスター制御用GUIDは、次のコマンドで確認できます。
sonar.controlNodeGuid
マスターノード接続の設定
クラスターでポリシーと設定を同期するマスターノード接続情報を設定します。Control Nodeの場合、自分自身(127.0.0.1)をマスターに指定して、MariaDBからポリシーをロードします。
この設定は、先ほどWebコンソールで実行したNode Pairの登録情報とは別のものです。ノードペア情報は、他のノードがこのノードに接続する際に使用されます。ここで設定するマスターノード接続情報は、このノードがマスターに接続する際に使用され、Logpressoエンジンのconfdbに保存されます。Control Nodeは自分自身がマスターであるため、127.0.0.1を指定します。
-
ノードAとノードBのLogpresso Shellで次のコマンドを実行してください。
sonar.setMaster次は、コマンド実行後に出力されるプロンプトと入力する値についての説明です。ここで使用するアカウントはフェデレーションアカウントです。
host? 127.0.0.1 # 自分自身をマスターに指定 port? 443 # 443を入力 account? root # フェデレーションアカウントのrootを入力 password? # フェデレーションアカウントのパスワードを入力 connect timeout? 10000 # Enterキーを押すとデフォルト値を使用 read timeout? 10000 # Enterキーを押すとデフォルト値を使用 secure? true # trueを入力 (デフォルト値はfalse) skip cert check? true # trueを入力 (デフォルト値はfalse)オプション 説明 例 host Control Nodeのアドレス 127.0.0.1 port Control Nodeと通信するポート 443 account フェデレーションアカウントのログイン名 root password フェデレーションアカウントのパスワード connect timeout サーバー接続の待機時間 10000 (ms) read timeout 応答の待機時間 10000 (ms) secure TLS通信を適用するか true skip cert check TLS証明書の有効性検査を省略するか true -
次のコマンドを実行して、ノード設定が適用されたかを確認してください。
sonar.nodeConfig次は、コマンド実行後に正常に設定されているときに確認できる出力例です。
guid: 7bdb297d-1d2a-400b-8efc-ce8d98580a13 host=127.0.0.1, port=443, account=root, connectTimeout=10000, readTimeout=10000, secure=true, skipCertCheck=true crypto_file_path: /opt/logpresso/data/logpresso-ca/certs/storage.pfx -
ノードAのWebコンソールのSystem > Clusters画面で、Statusが緑色で表示されるかを確認してください。
データ複製モードの設定
Node Pairを構成すると、2つのノード間でテーブルデータを複製できます。ここでいう「テーブル」とは、データベーステーブルではなく、Logpressoエンジンがデータを保存するファイルベースのテーブルを意味します。
2つのノードに同じデータが存在すると、分散クエリの実行時に重複検索が発生する場合があります。これを防ぐために、各ノードにアクティブ(ACTIVE)またはスタンバイ(STANDBY)のいずれかのデータ複製モードを設定する必要があります。
- Active Node: ログテーブルの原本を保存し、分散クエリ時に検索対象になります。
- Standby Node: Active Nodeのログテーブルデータをリアルタイムで複製受信します。複製されたテーブルは原本と同じテーブルIDを使用し、分散クエリ時に検索から除外されるため、重複検索が発生しません。
logpresso.setActiveNodeコマンドは、相手ノードをアクティブに指定して自身をスタンバイに設定します。
ノードAの設定 (アクティブ)
-
ノードAのLogpresso Shellで次のコマンドを実行して、ペアノード(ノードB)の名前を確認してください。
logpresso.nodeStatuses次は出力例です。
Federation Nodesセクションで、[c1b]がノードBの名前です。Local ------------------ Node GUID: ffdade37-6d96-4d13-9843-88569d64db6a Instance GUID: 93e9d502-276f-468a-9311-019e1fed8a79 Federation Nodes ------------------ [c1b] node_guid=92eab23d-83e1-4ba2-91d6-48f5408b12a6, instance_guid=1a2eb7aa-85e2-4d73-a23e-9d8d1421605e, repl_mode=null, pair_guid=null, invalid_guid=false, alive=true, paired=true, failure=false, last connect=2025-06-09 13:51:39, last alive=2025-06-10 11:18:44, created=2025-06-09 13:48:37Notelogpresso.nodeStatusesコマンドの出力に表示されるNode GUIDとInstance GUIDは、Logpressoエンジンがログテーブルの複製と分散クエリのために使用する識別子です。Node GUIDはデータベースの識別に使用され、DB_GUIDファイルに記録して永続的に保管します。Instance GUIDは現在実行中のプロセスの識別子で、ノードプロセスを開始するたびに変更されます。
-
次のコマンドを実行してノードBをスタンバイノードに指定すると、ノードAはアクティブノードになります。コマンド例の
c1bは、上で確認したノードBの名前です。logpresso.setStandbyNode c1b -
logpresso.nodeStatusesコマンドを再度実行すると、LocalセクションでReplication ModeがACTIVEに設定されたことがわかります。Local ------------------ Node GUID: ffdade37-6d96-4d13-9843-88569d64db6a Instance GUID: 93e9d502-276f-468a-9311-019e1fed8a79 Replication Mode: ACTIVE Pair Node: c1b Federation Nodes ------------------ [c1b] node_guid=92eab23d-83e1-4ba2-91d6-48f5408b12a6, instance_guid=1a2eb7aa-85e2-4d73-a23e-9d8d1421605e, repl_mode=null, pair_guid=null, invalid_guid=false, alive=true, paired=true, failure=false, last connect=2025-06-09 16:56:24, last alive=2025-03-27 13:35:12, created=2025-06-09 16:56:24
ノードBの設定 (スタンバイ)
-
ノードBのLogpresso Shellで次のコマンドを実行してノードAをアクティブに指定すると、ノードBはスタンバイノードになります。
c1aは、logpresso.nodeStatusesコマンドの実行結果で確認したノードAの名前です。logpresso.setActiveNode c1a -
logpresso.nodeStatusesコマンドを実行すると、LocalセクションでReplication ModeがSTANDBYに設定されたことがわかります。Local ------------------ Node GUID: ef5a8e0d-e80d-4b93-80a2-c8fec4b764ad Instance GUID: c1fb7d52-229b-464b-be06-4f7784001c17 Replication Mode: STANDBY Pair Node: c1a Federation Nodes ------------------ [c1a] node_guid=ffdade37-6d96-4d13-9843-88569d64db6a, instance_guid=93e9d502-276f-468a-9311-019e1fed8a79, repl_mode=ACTIVE, pair_guid=ef5a8e0d-e80d-4b93-80a2-c8fec4b764ad, invalid_guid=false, alive=true, paired=true, failure=false, last connect=2025-06-09 16:56:58, last alive=2025-03-27 13:37:34, created=2025-06-09 15:54:59
ノード間のライセンス共有設定
クラスター環境で、すべてのノードが同じライセンスの適用を受けるように設定します。Control Nodeに登録したライセンスは、Data Node、Forwarder Nodeにも適用されます。ここでは、Control Nodeに登録したライセンスを他のノードに伝播する方法を説明します。
-
ノードAとノードBのLogpresso Shellで次のコマンドを実行して、ライセンスマスターを設定してください。両方のノードがライセンスマスターになる必要があります。
logpresso.setLicenseMode master -
次のコマンドを実行して、ライセンスマスターの状態を確認してください。
logpresso.licenseMode正常に設定されると、次のように出力されます。
MASTER
分散クエリの有効化
分散クエリ(Distributed Query)は、複数のノードに分散保存されたテーブルデータを1つのクエリで統合照会する機能です。Control Nodeでクエリを実行すると、Control NodeがData Nodeペアに必要なクエリを分配し、Data Nodeでクエリが実行されます。Control Nodeは各Data Nodeの実行結果を取りまとめて最終結果を返します。分散クエリの設定は、すべてのノードで有効にする必要があります。
-
ノードAとノードBのLogpresso Shellで、それぞれ次のコマンドを実行して分散クエリを有効にしてください。
logpresso.enablePlanner -
次のコマンドを実行して、分散クエリの状態を確認してください。
logpresso.plannerStatus正常に有効化されると、次のように出力されます。
Running: true
WebSocketフレームの設定
分散クエリの結果が大きい場合や、Webブラウザーに送信するデータが多い場合、デフォルトのWebSocketフレームサイズでは送信に失敗することがあります。
-
ノードAとノードBのLogpresso Shellで次のコマンドを実行して、現在の設定値を確認してください。
webconsole.maxFrameSizeデフォルト値は8MBで、コマンドの実行結果は次のとおりです。
8,388,608 bytes -
次のコマンドを実行して、フレームサイズを変更してください。例で設定した値は84MBです。
webconsole.setMaxFrameSize 83886080 -
再度
webconsole.maxFrameSizeコマンドを実行して、変更された値を確認してください。83,886,080 bytes
クエリキャッシュの設定
クエリのパフォーマンス最適化のために、テーブルメタデータ、逆インデックス、ブルームフィルターをメモリにキャッシュします。各キャッシュの役割は次のとおりです。
- テーブルキャッシュ: クエリ時にディスクから読み込んだログデータをキャッシュし、同じデータを再照会する際にディスクI/Oなしでメモリから直接返します。
- 逆インデックスキャッシュ: フルテキスト検索のために、特定の検索語(term)が含まれる文書IDのリストをキャッシュします。
- ブルームフィルター0/1キャッシュ: ブルームフィルターは、特定の検索語が該当セグメントに存在するかを高速に判別する確率的データ構造です。ブルームフィルター0は高速な判別に、ブルームフィルター1は精密な判別に使用されます。
ノードAとノードBのLogpresso Shellで次のコマンドを実行して、キャッシュサイズを設定してください。
logpresso.tableCacheConfig max_weight CACHE_SIZE # テーブルキャッシュ
logpresso.indexCacheConfig inverted max_weight CACHE_SIZE # 逆インデックスキャッシュ
logpresso.indexCacheConfig bloomfilter0 max_weight CACHE_SIZE # ブルームフィルター0キャッシュ
logpresso.indexCacheConfig bloomfilter1 max_weight CACHE_SIZE # ブルームフィルター1キャッシュ
CACHE_SIZEは、1日の処理量とメモリ容量を考慮して、次の表の値を入力してください。キャッシュの入力単位はバイトです。
| 1日の処理量 | RAM | HEAP | DM | max_weight | inverted | bloomfilter0 | bloomfilter1 |
|---|---|---|---|---|---|---|---|
| 10GB/日 | 32GB | 8GB | 9GB | 643,825,664 | 6,442,450,944 | 1,073,741,824 | 213,909,504 |
| 50GB/日 | 64GB | 16GB | 26GB | 1,073,741,824 | 19,327,352,832 | 4,294,967,296 | 613,416,960 |
| 100GB/日以上 | 128GB | 34GB | 68GB | 3,221,225,472 | 46,170,898,432 | 10,737,418,240 | 1,073,741,824 |
- max_weight: テーブルキャッシュ
- inverted: 逆インデックス(inverted index)キャッシュ
- bloomfilter0: ブルームフィルター0キャッシュ
- bloomfilter1: ブルームフィルター1キャッシュ
- 値を入力する際、カンマ(
,)は使用しないでください。カンマは読みやすくするために単位を区切って表示したものです。
キャッシュをGB単位に換算すると、次の表のようになります。
| 1日の処理量 | RAM | HEAP | DM | max_weight | inverted | bloomfilter0 | bloomfilter1 |
|---|---|---|---|---|---|---|---|
| 10GB/日 | 32GB | 8GB | 9GB | 614MB | 6GB | 1GB | 204MB |
| 50GB/日 | 64GB | 16GB | 26GB | 1GB | 18GB | 4GB | 585MB |
| 100GB/日以上 | 128GB | 34GB | 68GB | 3GB | 43GB | 10GB | 1GB |
サービスの再起動
変更された設定を適用するには、Logpressoサービスを再起動する必要があります。作業の順序は次のとおりです。
- 停止順序: スタンバイ → アクティブ
- 開始順序: アクティブ → スタンバイ
デフォルトでは、ノードAがアクティブ、ノードBがスタンバイです。システム運用中にアクティブノードを先に開始すると、原本データサービスを迅速に復旧でき、スタンバイノードは開始時にすぐに複製接続を確立できます。(後で説明する)仮想IPアドレス(VIP)が構成された環境でこの順序を守らないと、不要なVIP切り替えが発生することがあります。
ノードを停止するには、
-
スタンバイノード(ノードB)で次のコマンドを実行して、Logpressoサービスを停止してください。
sudo systemctl stop logpresso -
ノードBが停止したら、アクティブノードAで同じコマンドを実行してサービスを停止してください。
ノードを開始するには、
-
ノードAで次のコマンドを実行して、Logpressoサービスを開始してください。
sudo systemctl start logpresso -
ノードAが正常に開始したら、ノードBで同じコマンドを実行してLogpressoサービスを開始してください。
-
ノードAのWebコンソールにログインした後、System > Performance Monitorメニューに移動して、各Control Nodeの状態が緑色で表示されるかを確認してください。
ネットワーク冗長化
Control Nodeペアは、2つのノードが1つの仮想IPアドレス(VIP、Virtual IP Address)を代表アドレスとして共有し、ネットワークレベルで負荷を分散して、障害時に自動的に接続を切り替えます。Data Node、Forwarder Node、Webブラウザーなどの外部クライアントはVIPを通じてControl Nodeに接続するため、個々のノードの障害の有無に関係なくサービスの継続性を維持できます。
ネットワーク冗長化は、次の2つの方式で構成できます。
ロードバランサー(推奨)
L4スイッチなどのロードバランサーを使用して、VIPに入ってくるトラフィックをControl Node AとControl Node Bに分散するように設定してください。ロードバランサーの設定時は、次の点を参考にしてください。
- ヘルスチェック: 各Control Nodeの443ポート(TCP)を定期的にヘルスチェックして、ノードの生存の有無を確認するように設定してください。
- フェイルオーバー: ヘルスチェックに失敗したノードはトラフィック分配の対象から自動的に除外し、正常なノードにのみトラフィックを転送するように設定してください。
HAスクリプト
ロードバランサーを使用できない環境では、Logpressoが提供するHAスクリプトでVIP切り替えを構成できます。HAスクリプトはLogpresso技術サポートチームに依頼してください。
仮想IPアドレスでWebコンソールに接続
設定が完了すると、Webブラウザーで仮想IPアドレスでWebコンソールに接続できます(例: https://203.0.113.193)。

















