Control Nodeの設定

このドキュメントでは、Control Nodeでパッケージのインストールを完了した後に実行する作業を説明します。

ノードAの初期設定

Control Nodeは、Webサービス形式のユーザーインターフェース(Webコンソール)を提供します。管理者が初めてWebコンソールに接続すると、Webインストーラーが実行され、サーバーの運用環境に合わせた初期設定を進めます。

Note
WebインストーラーはノードAで実行してください。
Webコンソールへの接続
  1. Webブラウザーを開き、Control Node AのIPアドレスまたはFQDNアドレスで接続してください(例: https://192.0.2.1https://c1a.example.comhttps://c1a)。

  2. プライベートSSL証明書を使用するため、Webブラウザーがセキュリティ警告メッセージを表示します。問題がなければ、セキュリティ警告を無視して接続を進めてください。

    セキュリティ警告

クラスター管理者の登録

Logpresso Sonarの最上位管理者であるクラスター管理者を登録します。

  1. Registering Cluster Administrator画面が表示されたら、クラスター管理者の登録に必要な情報を入力してください。

    Webインストーラー - Registering Cluster Administrator

    • Organization name: Logpresso Sonarを運用する会社/組織の名前
    • Administrator's name: クラスター管理者の名前。クラスター管理者がログインすると、Webコンソール右上に管理者の名前が表示されます。
    • Locale: クラスター管理者の言語。接続したWebブラウザーの言語に応じて、韓国語または英語のいずれかが選択されます。
    • Email: クラスター管理者のメールアドレス
    • Admin ID: クラスター管理者のログイン名。rootsystemadminadministratorlogpressosonarのような、よく知られたログイン名は使用しないでください。
    • Password/Confirm password: クラスター管理者のログインパスワード
    • Admin IP addresses: クラスター管理者の接続を特定のIPアドレスに制限する場合に使用します。最大2つのIPアドレスを指定できます。
  2. Nextボタンをクリックして次のステップに進んでください。

証明書とWeb Endpointの設定

証明書を交換し、Web Endpointを設定します。Web Endpointは、従業員がセキュリティイベントに対する弁明を作成または確認する際に接続するアドレスです。

  1. System Configuration画面が表示されたら、システム設定に必要な情報を入力してください。

    Webインストーラー - 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日)

  2. Nextボタンをクリックして次のステップに進んでください。

次の内容も覚えておいてください。

  • Webコンソールの**プッシュテンプレート画面でWeb Endpoint**を変更できます。
  • Webコンソールの**証明書**画面で、証明書情報の照会、再発行などを実行できます。
Caution
すべての証明書は有効期限を計算してGoogleカレンダーなどに事前にリマインダーを設定しておき、有効期限が切れる前に再発行してください。
Note
Webサーバー証明書が交換されると、WebブラウザーがWebコンソールに再接続します。接続時にセキュリティ警告メッセージが表示される場合がありますが、無視して接続を進めてください。
オブジェクトストレージの設定

データライフサイクル機能でCold tierストレージとして使用するオブジェクトストレージを設定します。オブジェクトストレージを使用しない場合、または後で設定する場合は、Skipボタンをクリックしてください。

Caution
オブジェクトストレージを設定した後はWebコンソールで変更できないため、すべての運用環境を十分に検討してから設定してください。
  1. Object Storage Configuration画面が表示されたら、オブジェクトストレージの設定に必要な情報を入力してください。

    Webインストーラー - Object Storage Configuration

    • Type: ストレージサービスプロバイダー(AWSS3 Compatible Storage、またはkakaocloudのいずれかを選択、デフォルト値: AWS)
    • Access KeyまたはAuthentication Key: ストレージサービス接続用のアクセスキー
    • Secret KeyまたはSecret access Key: ストレージサービス接続用の秘密アクセスキー
    • Endpoint: ストレージサービスの接続アドレス
    • Bucket: ストレージバケットの名前
  2. すべてのプロパティを入力した後、Testボタンをクリックしてください。テストに成功しないと、次のステップに進めません。

次の内容も覚えておいてください。

  • Webコンソールの**クラスター画面にあるライフサイクルタブでストレージ階層ごとの保管期間を設定し、ストレージ**タブでロールオーバーを設定してはじめて、データライフサイクルに応じてデータを管理できます。
データベースの設定

次に、MariaDBデータベースをLogpresso Sonarに接続します。

  1. Database Configuration画面が表示されたら、データベースの設定を入力してください。すべての設定値を入力すると、自動的にデータベース接続を試行します。接続に成功すると、Successfully connected to database.というメッセージが表示され、Nextボタンが有効になります。有効になったNextボタンをクリックしてください。

    Webインストーラー - Database Configuration

    • Server address: MariaDBサーバーのアドレス(デフォルト値: localhost)

    • Port: MariaDBサーバーのポート番号(デフォルト値: 3306)

    • Database: MariaDBサーバーのデータベース名(デフォルト値: sonar)

    • Database account: Logpresso Sonar専用のデータベースアカウント(デフォルト値: sonar)

    • Password: Logpresso Sonar専用のデータベースアカウントのパスワード

    • 接続に失敗すると、エラーメッセージが表示されます。エラー内容を確認して設定値を修正した後、Retryボタンをクリックしてください。

      Webインストーラー - Database Configurationのエラー

  2. データベースの設定が完了すると、Logpresso Sonarの実行に必要な設定が自動的に進行します。Webインストーラーで構成したすべての設定は、Galera Clusterを通じてノードBと同期されます。

  3. 設定の適用が完了すると、証明書が交換され、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キーを登録しておくことを推奨します。

デフォルトパスワードの変更
  1. ターミナルで次のコマンドを実行して、Logpresso Shellに接続してください。ポート番号はlogpresso.confファイルのSSH_PORT設定に応じて異なる場合があります(デフォルト値: 7022)。

    ssh -p 7022 root@localhost
    
  2. パスワードを尋ねるプロンプトが表示されたら、Logpresso Shellのデフォルトパスワードを入力してください。

  3. 新しいパスワードの入力プロンプトが表示されたら、新しいパスワードを入力して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のプロンプト
    
    Caution
    Logpresso 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キーの登録を推奨します。

  1. RSAキーがない場合は、次のコマンドを実行してキーペアを生成してください。

    ssh-keygen -t rsa -b 2048 -f ~/.ssh/logpresso_rsa
    
    Note
    Logpresso Shellはssh-rsaキーのみをサポートします。
  2. Logpresso Shellで次のコマンドを実行して、SSH公開キーを登録してください。

    account.addSshKey root
    
  3. プロンプトが表示されたら、SSH公開キーを入力してください。公開キーは~/.ssh/logpresso_rsa.pubファイルにあります。

    SSH public key? ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ... # 公開キー全体を入力
    root password: # 現在のパスワードを入力
    added
    
    Tip
    公開キーファイルの絶対パスを直接指定することもできます: account.addSshKey root /home/logpresso/.ssh/logpresso_rsa.pub
  4. 次のコマンドを実行して、登録されたSSHキーのリストを確認してください。

    account.sshKeys root
    

    コマンドを実行すると、次のように登録されたSSHキーを確認できます。

    Authorized SSH keys
    ---------------------
     1: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ...
    
  5. これで、パスワードなしでSSHキーでLogpresso Shellに接続できます。

    ssh -p 7022 -i ~/.ssh/logpresso_rsa root@localhost
    
フェデレーションアカウントのパスワード設定

フェデレーションアカウントは、クラスターを構成するすべてのノード間の通信に使用するアカウントで、すべてのControl Node/Data Node/Forwarder Nodeが同じフェデレーションアカウントのパスワードを使用する必要があります。このステップで設定したフェデレーションアカウントのパスワードは、Control Nodeペアの登録だけでなく、Data NodeペアおよびForwarder Nodeペアでも使用されます。

  1. ノードAとBのLogpresso Shellで次のコマンドを実行して、フェデレーションアカウントのパスワードを変更してください。

    dom.resetPassword localhost root
    
  2. 新しいパスワードの入力プロンプトが表示されたら、新しいパスワードを入力してEnterキーを押してください。

    New Password: # 新しいパスワードを入力後、Enter
    
    • パスワードは一度だけ入力できます。パスワードを誤って入力した場合は、dom.resetPassword localhost rootコマンドを再実行してください。
    Note
    フェデレーションアカウントのrootは、Logpresso Shellアカウントのrootと名前が同じでも、互いに異なる認証ドメインに属します。フェデレーションパスワードの変更過程でaraqne.logに一時的にERRORログが記録される場合がありますが、変更を終えた後に解決されます。
  3. このドキュメントを参考にして、フェデレーションアカウントのPassword ExpirationUnlimitedに変更してください。

    1. Webブラウザーを開き、https://<Control Node AのIPアドレス>:8443に接続した後、フェデレーションアカウントでログインしてください。
    2. Webコンソール左側のメニューからSystem > Users画面に移動してください。
    3. フェデレーションアカウントのリストからrootをクリックしてください。
    4. Passwd. ExpirationフィールドでUnlimitedを選択し、Saveボタンをクリックしてください。
    5. ノードBでも同じ作業を実行してください。

ノードBの初期設定

ノードAでは、Webインストーラーが認証サービスとデータベース接続を自動的に設定します。ノードBでは、この設定を手動で進める必要があります。ノードAとBが同じMariaDBを共有するため、この設定を完了すると、クラスター管理者はノードBのWebコンソールにも同じアカウントでログインできます。

sonar認証サービスの設定

sonar認証サービスは、Webコンソールのユーザー認証に使用されます。この設定を完了しないと、クラスター管理者はノードBのWebコンソールにログインできません。

  1. ノードBのLogpresso Shellで次のコマンドを実行して、sonar認証サービスを有効にしてください。

    logdb.useAuthService sonar dom
    
  2. 次のコマンドを実行して、sonar認証サービスが有効になっているかを確認してください。

    logdb.authServices
    

    External Auth Servicesリストで、domsonarにアスタリスク(*)が付いており、ordersonar - 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プロファイルを作成する必要があります。

  1. 次のコマンドを実行して、JDBCプロファイルを作成してください。

    logpresso.createConnectProfile jdbc sonar
    
  2. プロファイル作成のプロンプトが表示されたら、次のように値を入力してください。

    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キーを押して省略
    
  3. 次のコマンドを実行して、作成されたJDBCプロファイルのGUIDを確認してください。

    logpresso> logpresso.connectProfiles
    Connect Profiles
    ------------------
    guid=59f4788b-75df-4297-afbd-579eed9cb086, type=jdbc, name=sonar, description=null, source=ENT
    
  4. 確認した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サービスを再起動する必要があります。

  1. ノードBで次のコマンドを実行して、Logpressoサービスを再起動してください。

    sudo systemctl restart logpresso
    
  2. 次のコマンドを実行して、サービスが正常に実行されているかを確認してください。

    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コンソールにログインします。クラスター管理者アカウントでログインしてください。

  1. ノードAでWebインストーラーの実行後、ログイン画面が表示されるかを確認してください。Webブラウザーのウィンドウを閉じた場合は、https://NODE_A_IP_ADDRまたはhttps://FQDNアドレスで接続してください(例: https://203.0.113.194https://c1a.example.com)。

  2. ノードBでもhttps://NODE_B_IP_ADDRまたはhttps://FQDNアドレスで接続してください(例: https://203.0.113.195https://c1b.example.com)。

  3. Webコンソールに接続すると、画面右下に通知ブロックのメッセージが表示される場合があります。

    ポップアップブロックの通知メッセージ

  4. サーバー通知をWebコンソールで確認できるように、Webブラウザーの通知設定をAllowに変更してください。

    Microsoft Edgeで通知メッセージを許可する例

  5. クラスター管理者のUsernamePasswordを入力し、Loginボタンをクリックしてください。

    Note
    ログインに複数回失敗すると、アカウントが一定時間ロックされます。ロック解除やパスワード変更が必要な場合は、サーバー管理者に問い合わせてください。

ライセンス登録

ログイン後、最初にライセンスを登録します。

ライセンスの申請
  1. ノードAとノードBのWebコンソールのSystem > Licenses画面でHardware Keyを確認し、安全な場所に記録しておいてください。

    Licenses画面

  2. Logpressoサポートポータルで、ノードAとBのハードウェアキーに対してライセンスの発行を依頼してください。

以降の作業は、ライセンスが発行された後に実行する必要があります。

ライセンスの入力
  1. ノードAとノードBのWebコンソールのSystem > Licenses画面でInstall Licenseボタンをクリックしてください。

  2. 発行されたライセンス情報を入力ウィンドウに貼り付け、OKボタンをクリックしてください。

    ライセンス情報の入力

  3. ライセンスが正常に登録されたかを確認してください。

    ライセンス情報の確認

Control Nodeペアの設定

Control Nodeペアの登録

ノードAのWebコンソールのSystem > Clusters > Node画面でNode Pairを登録します。ここでは、既存のNode Pairを削除して再構成する方法で説明します。

Note
デフォルトのNode Pairの名前は「control」で、変更できません。名前を変更するには、デフォルトのNode Pairを削除して新しく登録する必要があります。
  1. ノードAのWebコンソールでSystem > Clustersメニューに移動してください。

  2. 既存のcontrolノードを選択し、Deleteボタンをクリックしてください。

    既存のControl Nodeペアの削除

  3. クラスターノードリストの右上でAddボタンをクリックし、Control Nodeペアを設定してください。各プロパティの詳細な説明については、ユーザー説明書のNode Pairの追加を参照してください。

    Control Nodeペアの設定画面 1

    Control Nodeペアの設定画面 2

    Control Nodeペアの設定画面 3

    • 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)
    • Node A Settings
    • Node B Settings
  4. 入力を完了した後、Saveボタンをクリックしてください。次のようにControl Nodeペアが追加されたことを確認してください。

    クラスターノードリストで新しく登録されたControl Nodeペアを確認

  5. 追加されたControl NodeのNameをクリックし、ノードA、BのGUIDを確認してください。NameNode IDを誤って指定した場合は、Node Pairを削除して再構成する必要があります。

    ノードGUIDの確認

    ノードAとノードBのGUIDを安全な場所に記録してください。この値はノードGUIDの設定で使用されます。

キー暗号化キーの複製

ノードAのキー暗号化キー(KEK、Key Encryption Key)をノードBに同じように設定してください。キー暗号化キーはノード間の複製を許可しないため、管理者が直接コピーする必要があります。

Caution
この設定を終えた後、キー暗号化キーを絶対に変更しないでください。クラスターを構成するすべてのノードは、同じキー暗号化キーを使用する必要があります。それぞれ異なるキーを使用すると、暗号化されたデータを復号できず、ノード間の同期を実行できません。
  1. ノードAのLogpresso Shellで次のコマンドを実行して、暗号化キー文字列を安全な場所に記録してください。

    sonar.cipherKey
    
  2. ノードAの暗号化キー文字列をコピーした後、ノードBのLogpresso Shellで次のコマンドを実行して、同じ暗号化キーを構成してください。KEY_STRINGはノードAの暗号化キー文字列です。

    sonar.setCipherKey KEY_STRING
    
ノードGUIDの設定

Control Nodeペアの登録のステップで変更されたノードAのGUID、新しく生成されたノードBのGUIDを、Logpresso Shellで同じように設定してください。

  1. ノードAとノードBのLogpresso Shellで次のコマンドを実行して、各ノードのポリシー同期用GUIDをLogpressoエンジンに設定してください。GUID_STRINGは各ノードのGUID文字列です。

    sonar.setGuid GUID_STRING # 各ノードに合ったGUIDを入力
    

    各ノードのポリシー同期用GUIDは、次のコマンドで確認できます。

    sonar.nodeConfig
    
  2. ノードAとノードBのLogpresso Shellで次のコマンドを実行して、クラスター制御用GUIDをLogpressoエンジンに設定してください。

    sonar.setControlGuid GUID_STRING # 各ノードに合ったGUIDを入力
    

    各ノードのクラスター制御用GUIDは、次のコマンドで確認できます。

    sonar.controlNodeGuid
    
Note
1、2の各ステップで、ノードAはノードAのGUIDを、ノードBはノードBのGUIDを設定する必要があります。
マスターノード接続の設定

クラスターでポリシーと設定を同期するマスターノード接続情報を設定します。Control Nodeの場合、自分自身(127.0.0.1)をマスターに指定して、MariaDBからポリシーをロードします。

この設定は、先ほどWebコンソールで実行したNode Pairの登録情報とは別のものです。ノードペア情報は、他のノードがこのノードに接続する際に使用されます。ここで設定するマスターノード接続情報は、このノードがマスターに接続する際に使用され、Logpressoエンジンのconfdbに保存されます。Control Nodeは自分自身がマスターであるため、127.0.0.1を指定します。

  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)
    
    オプション説明
    hostControl Nodeのアドレス127.0.0.1
    portControl Nodeと通信するポート443
    accountフェデレーションアカウントのログイン名root
    passwordフェデレーションアカウントのパスワード
    connect timeoutサーバー接続の待機時間10000 (ms)
    read timeout応答の待機時間10000 (ms)
    secureTLS通信を適用するかtrue
    skip cert checkTLS証明書の有効性検査を省略するかtrue
  2. 次のコマンドを実行して、ノード設定が適用されたかを確認してください。

    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
    
  3. ノードAのWebコンソールのSystem > Clusters画面で、Status緑色で表示されるかを確認してください。

    Sonarクラスターノードの設定

データ複製モードの設定

Node Pairを構成すると、2つのノード間でテーブルデータを複製できます。ここでいう「テーブル」とは、データベーステーブルではなく、Logpressoエンジンがデータを保存するファイルベースのテーブルを意味します。

2つのノードに同じデータが存在すると、分散クエリの実行時に重複検索が発生する場合があります。これを防ぐために、各ノードにアクティブ(ACTIVE)またはスタンバイ(STANDBY)のいずれかのデータ複製モードを設定する必要があります。

  • Active Node: ログテーブルの原本を保存し、分散クエリ時に検索対象になります。
  • Standby Node: Active Nodeのログテーブルデータをリアルタイムで複製受信します。複製されたテーブルは原本と同じテーブルIDを使用し、分散クエリ時に検索から除外されるため、重複検索が発生しません。
Note
logpresso.setStandbyNodeコマンドは、相手ノードをスタンバイに指定して自身をアクティブに設定します。
logpresso.setActiveNodeコマンドは、相手ノードをアクティブに指定して自身をスタンバイに設定します。
ノードAの設定 (アクティブ)
  1. ノード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:37
    
    Note
    logpresso.nodeStatusesコマンドの出力に表示されるNode GUIDとInstance GUIDは、Logpressoエンジンがログテーブルの複製と分散クエリのために使用する識別子です。Node GUIDはデータベースの識別に使用され、DB_GUIDファイルに記録して永続的に保管します。Instance GUIDは現在実行中のプロセスの識別子で、ノードプロセスを開始するたびに変更されます。
  2. 次のコマンドを実行してノードBをスタンバイノードに指定すると、ノードAはアクティブノードになります。コマンド例のc1bは、上で確認したノードBの名前です。

    logpresso.setStandbyNode c1b
    
  3. logpresso.nodeStatusesコマンドを再度実行すると、LocalセクションでReplication ModeACTIVEに設定されたことがわかります。

    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の設定 (スタンバイ)
  1. ノードBのLogpresso Shellで次のコマンドを実行してノードAをアクティブに指定すると、ノードBはスタンバイノードになります。c1aは、logpresso.nodeStatusesコマンドの実行結果で確認したノードAの名前です。

    logpresso.setActiveNode c1a
    
  2. logpresso.nodeStatusesコマンドを実行すると、LocalセクションでReplication ModeSTANDBYに設定されたことがわかります。

    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に登録したライセンスを他のノードに伝播する方法を説明します。

  1. ノードAとノードBのLogpresso Shellで次のコマンドを実行して、ライセンスマスターを設定してください。両方のノードがライセンスマスターになる必要があります。

    logpresso.setLicenseMode master
    
  2. 次のコマンドを実行して、ライセンスマスターの状態を確認してください。

    logpresso.licenseMode
    

    正常に設定されると、次のように出力されます。

    MASTER
    
分散クエリの有効化

分散クエリ(Distributed Query)は、複数のノードに分散保存されたテーブルデータを1つのクエリで統合照会する機能です。Control Nodeでクエリを実行すると、Control NodeがData Nodeペアに必要なクエリを分配し、Data Nodeでクエリが実行されます。Control Nodeは各Data Nodeの実行結果を取りまとめて最終結果を返します。分散クエリの設定は、すべてのノードで有効にする必要があります。

  1. ノードAとノードBのLogpresso Shellで、それぞれ次のコマンドを実行して分散クエリを有効にしてください。

    logpresso.enablePlanner
    
  2. 次のコマンドを実行して、分散クエリの状態を確認してください。

    logpresso.plannerStatus
    

    正常に有効化されると、次のように出力されます。

    Running: true
    
WebSocketフレームの設定

分散クエリの結果が大きい場合や、Webブラウザーに送信するデータが多い場合、デフォルトのWebSocketフレームサイズでは送信に失敗することがあります。

Note
Control Nodeを制御/収集一体型で運用する場合、WebSocketフレームの変更は任意ですが、Control Nodeペアを構成する場合は必ず設定してください。
  1. ノードAとノードBのLogpresso Shellで次のコマンドを実行して、現在の設定値を確認してください。

    webconsole.maxFrameSize
    

    デフォルト値は8MBで、コマンドの実行結果は次のとおりです。

    8,388,608 bytes
    
  2. 次のコマンドを実行して、フレームサイズを変更してください。例で設定した値は84MBです。

    webconsole.setMaxFrameSize 83886080
    
  3. 再度webconsole.maxFrameSizeコマンドを実行して、変更された値を確認してください。

    83,886,080 bytes
    
クエリキャッシュの設定

クエリのパフォーマンス最適化のために、テーブルメタデータ、逆インデックス、ブルームフィルターをメモリにキャッシュします。各キャッシュの役割は次のとおりです。

  • テーブルキャッシュ: クエリ時にディスクから読み込んだログデータをキャッシュし、同じデータを再照会する際にディスクI/Oなしでメモリから直接返します。
  • 逆インデックスキャッシュ: フルテキスト検索のために、特定の検索語(term)が含まれる文書IDのリストをキャッシュします。
  • ブルームフィルター0/1キャッシュ: ブルームフィルターは、特定の検索語が該当セグメントに存在するかを高速に判別する確率的データ構造です。ブルームフィルター0は高速な判別に、ブルームフィルター1は精密な判別に使用されます。
Note
検索クエリを実行すると、ブルームフィルター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日の処理量RAMHEAPDMmax_weightinvertedbloomfilter0bloomfilter1
10GB/日32GB8GB9GB643,825,6646,442,450,9441,073,741,824213,909,504
50GB/日64GB16GB26GB1,073,741,82419,327,352,8324,294,967,296613,416,960
100GB/日以上128GB34GB68GB3,221,225,47246,170,898,43210,737,418,2401,073,741,824
  • max_weight: テーブルキャッシュ
  • inverted: 逆インデックス(inverted index)キャッシュ
  • bloomfilter0: ブルームフィルター0キャッシュ
  • bloomfilter1: ブルームフィルター1キャッシュ
  • 値を入力する際、カンマ(,)は使用しないでください。カンマは読みやすくするために単位を区切って表示したものです。

キャッシュをGB単位に換算すると、次の表のようになります。

1日の処理量RAMHEAPDMmax_weightinvertedbloomfilter0bloomfilter1
10GB/日32GB8GB9GB614MB6GB1GB204MB
50GB/日64GB16GB26GB1GB18GB4GB585MB
100GB/日以上128GB34GB68GB3GB43GB10GB1GB
サービスの再起動

変更された設定を適用するには、Logpressoサービスを再起動する必要があります。作業の順序は次のとおりです。

  1. 停止順序: スタンバイ → アクティブ
  2. 開始順序: アクティブ → スタンバイ

デフォルトでは、ノードAがアクティブ、ノードBがスタンバイです。システム運用中にアクティブノードを先に開始すると、原本データサービスを迅速に復旧でき、スタンバイノードは開始時にすぐに複製接続を確立できます。(後で説明する)仮想IPアドレス(VIP)が構成された環境でこの順序を守らないと、不要なVIP切り替えが発生することがあります。

ノードを停止するには、

  1. スタンバイノード(ノードB)で次のコマンドを実行して、Logpressoサービスを停止してください。

    sudo systemctl stop logpresso
    
  2. ノードBが停止したら、アクティブノードAで同じコマンドを実行してサービスを停止してください。

ノードを開始するには、

  1. ノードAで次のコマンドを実行して、Logpressoサービスを開始してください。

    sudo systemctl start logpresso
    
  2. ノードAが正常に開始したら、ノードBで同じコマンドを実行してLogpressoサービスを開始してください。

  3. ノードAのWebコンソールにログインした後、System > Performance Monitorメニューに移動して、各Control Nodeの状態が緑色で表示されるかを確認してください。

Caution
運用中にsudo systemctl restart logpressoコマンドを使用しないでください。ノードA、Bの開始順序を守らず、不要なVIP切り替えが発生することがあります。
Note
Control Nodeの状態が緑色でない場合は、/opt/logpresso/log/araqne.logファイルで原因を確認できます。

ネットワーク冗長化

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)。