パッケージインストール

このドキュメントでは、Logpresso Sonar パッケージをインストールする方法を説明します。Control Node、Data Node、Forwarder Node はすべて同じパッケージを使用します。ここで説明するすべての手順を Forwarder Node A、B でそれぞれ実行してください。

パッケージファイルの解凍

まず、Logpresso Sonar パッケージをダウンロードして準備し、すべての Logpresso Sonar ノードでパッケージを解凍します。

  1. インターネットにアクセスできる PC で、Logpresso Store から最新バージョンのパッケージをダウンロードしてください。このドキュメントではバージョン 4.0.2511.1 パッケージと仮定します。

  2. ダウンロードしたパッケージファイルを Forwarder Node の Logpresso ディレクトリに複製し、次のように解凍してください。

    # 前提事項
    # Logpresso Sonar パッケージファイルのパス: $HOME/logpresso-SNR-4.0.2511.1-u3116.zip
    # Logpresso ディレクトリ: /opt/logpresso
    
    sudo unzip logpresso-SNR-4.0.2511.1-u3116.zip -d /opt/logpresso
    

logpresso.conf ファイルの作成

まず、ノードの実行に必要な基本設定が記録される logpresso.conf ファイルを作成してください。

sudo /opt/logpresso/logpresso install config

logpresso.conf ファイルが作成されると、次のようなメッセージが出力されます。

configuration file is created: /opt/logpresso/etc/logpresso.conf
ファイル構造と動作方式

logpresso.conf ファイルには、Logpresso Sonar の実行に必要な JVM 設定とサーバー設定が保存されています。

このファイルの特徴は次のとおりです。

  • 各設定はキー・値形式で、KEY=VALUE または KEY="VALUE" の形式を使用します。
  • bash(bash)スタイルのコメント文を使用できます。「#」で始まる行はコメント文とみなされます。
  • $VAR${VAR}$(command) のような bash(bash)スタイルの変数参照をサポートします。
  • JAVA_OPTS の値は、文字列そのまま java コマンドのパラメーター、Logpresso コア(araqne-core)の JVM オプションとして渡されます。
  • JAVA_OPTS+="-Doption=value" のような形式で累積追加演算子をサポートします(例: JAVA_OPTS="$JAVA_OPTS -XX:ActiveProcessorCount=30")。
  • java コマンドのオプションを JAVA_OPTS プロパティに累積追加演算子を使用して追加できます。

systemd が Logpresso Sonar サービスを実行すると、ランチャー(logpresso)が logpresso.conf ファイルに記録されたすべての設定を java コマンドのパラメーターに変換して渡します。

  • 一部の項目は JVM システムプロパティ(-D...)にマッピングされます。
  • すべての項目が -D にマッピングされるわけではありません。ある項目は実行スクリプトでのみ使用されたり(JVM ヒープ/GC など)、内部デフォルト値が適用されたりします。

次は、このドキュメントを作成する際に参照した実際のコマンドラインを見やすく改行したものです(詳細は Sonar のバージョンやシステムによって異なる場合があります)。このコマンドラインのパラメーターはすべて logpresso.conf ファイルに定義されたプロパティです。

/opt/logpresso/jre/bin/java
    -Xms1G -Xmx2G \
    -XX:MaxDirectMemorySize=2G \
    -XX:-OmitStackTraceInFastThrow \
    -XX:-UseCompressedOops \
    -XX:+UnlockExperimentalVMOptions \
    -XX:+UseZGC \
    -XX:+ZGenerational \
    -XX:MaxGCPauseMillis=200 \
    -XX:ParallelGCThreads=6 \
    -XX:StringTableSize=10000019 \
    -Xlog:gc=trace:file="/opt/logpresso/log/gc.log":time,level:filecount=10,filesize=10240K
    -XX:TrimNativeHeapInterval=300000 \
    --add-opens java.base/jdk.internal.ref=ALL-UNNAMED \
    --add-opens java.base/java.lang=ALL-UNNAMED \
    --add-opens java.base/java.net=ALL-UNNAMED \
    --add-opens java.base/java.security=ALL-UNNAMED \
    --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED \
    --add-modules jdk.jfr \
    --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED \
    -Dipojo.proxy=disabled \
    -Djava.awt.headless=true \
    -Daraqne.dir=/opt/logpresso \
    -Daraqne.log.dir=/opt/logpresso/log \
    -Daraqne.core.pid_file=/var/run/logpresso/logpresso.pid \
    -Daraqne.ssh.server=enabled \
    -Daraqne.ssh.address=127.0.0.1 \
    -Daraqne.ssh.port=7022 \
    -Daraqne.ssh.timeout=600000 \
    -Daraqne.dom.block_concurrent_admin=disabled \
    -Daraqne.dom.block_concurrent_login=disabled \
    -Daraqne.sso.timeout=3600000 \
    -Daraqne.log.keepdays=7 \
    -Daraqne.core.watchdog=enabled \
    -Daraqne.logdb.cepengine=mem \
    -DINSTANCE_ID=logpresso \
    -jar /opt/logpresso/araqne-core-4.0.5-package.jar

環境設定

ここで、Logpresso Sonar を運用する環境に合わせて logpresso.conf ファイルを修正します。/opt/logpresso/etc/logpresso.conf ファイルを開き、運用環境に合わせて設定を修正してください。ここで説明する環境設定以外の設定については、(付録) logpresso.conf ファイルのプロパティを参照してください。

JVM 設定変数

logpresso.conf ファイルに定義された JVM 設定変数には、JAVA_HOMEMIN_HEAP_SIZEMAX_HEAP_SIZEMAX_DIRECT_MEM_SIZE があります。次の表を参考にして適切な値を設定してください。

ネットワーク収集専用

日処理量物理コアvCPURAMAPCHEAPDM
1TB/日4816GB-8GB4GB

Sentry 管理およびネットワーク収集

日処理量物理コアvCPURAMAPCHEAPDM
1TB/日122464GB-31GB20GB
  • Forwarder Node は日処理量 1TB/日 以上の環境で運用されます。可用性が重要な場合は、冗長構成を検討してください。
  • Forwarder Node は日処理量 1TB/日 を超えるたびに追加構成して使用します。
  • APC: -XX:ActiveProcessorCount に適用する値
  • HEAP: MIN_HEAP_SIZEMAX_HEAP_SIZE に適用する値(2 つの値を同一に設定)
  • DM: MAX_DIRECT_MEM_SIZE に適用する値

JVM 設定項目は次のとおりです。

JAVA_HOME
JDK ディレクトリのパス(例: /opt/logpresso/jre、デフォルト値: なし)。Logpresso Sonar を実行すると、Logpresso ランチャー(logpresso)が logpresso.conf ファイルで JAVA_HOME に定義された値を探します。logpresso.conf ファイルがない場合や、JAVA_HOME に割り当てられた値がない場合は、オペレーティングシステムの環境変数 PATH に指定されたパスで java ファイルを探して実行します。

: JDK 21 はデフォルトで CPU コア数と cgroup 制限を認識します。スレッドの過剰生成を防ぐ必要がある場合に使用してください。個別のフラグ(例: -XX:ParallelGCThreads)を指定すると、その値が優先されます。

MIN_HEAP_SIZE
ヒープメモリの最小サイズ。この設定値は -Xms フラグのパラメーターに適用されます。MAX_HEAP_SIZE と同一の値を推奨します。
MAX_HEAP_SIZE
ヒープメモリの最大サイズ。この設定値は -Xmx フラグのパラメーターに適用されます。MIN_HEAP_SIZE と同一の値を推奨します。
-XX:SoftMaxHeapSize
ソフト最大ヒープサイズ。このオプションは logpresso.conf ファイルに明示的に定義されていない JDK のオプションです。logpresso.conf ファイルに次のように直接入力して使用してください。
JAVA_OPTS="$JAVA_OPTS -XX:SoftMaxHeapSize=1g"
  • ネットワーク収集専用の場合、-XX:SoftMaxHeapSize の値は 4g を推奨します。
  • Sentry 管理およびネットワーク収集の場合、-XX:SoftMaxHeapSize の値は 15g を推奨します。
MAX_DIRECT_MEM_SIZE
ダイレクトメモリの最大サイズ。この設定値は -XX:MaxDirectMemorySize フラグのパラメーターに適用されます。
ノード設定変数

Forwarder Node の主要な設定項目は次のとおりです。

BASEDIR

Logpresso ディレクトリのパス。logpresso.conf ファイルが作成される際に自動的に値が割り当てられるため、修正する必要はありません。この設定は LOGDIR など他のパス指定変数のデフォルト値になります。

DATADIR

収集したデータディレクトリのパス(デフォルト値: $BASEDIR/data)。データパーティションを /data にマウントして使用するため、/data/logpresso-data に変更してください。

LOGDIR

ログディレクトリのパス(デフォルト値: $BASEDIR/log)

SSH_OPEN

Logpresso シェルへの接続許可の可否(デフォルト値: disabled)。Logpresso シェルに接続するには enabled に変更してください。

SSH_ADDR

Logpresso シェルの接続アドレス(デフォルト値: 127.0.0.1)

SSH_PORT

Logpresso シェルの接続ポート(デフォルト値: 7022)

SSH_TIMEOUT

Logpresso シェルの接続タイムアウト(デフォルト値: 600000 ミリ秒 = 10 分)

LOGKEEPDAY

araqne.log ファイルの保管期間(デフォルト値: 7 日)。このファイルは、主要な作業の実行、システムエラーおよび例外状況を記録するために使用されます。ログレコードはそれぞれ ERRORWARNINGINFODEBUGTRACE レベルを持ちます。

LOGDB_PURGE

Logpresso クエリで purge コマンドの許可の可否(デフォルト値: disabled)。コマンドの動作は purge コマンドの説明書を参照してください。この機能を有効にするには enabled に変更してください。

ALLOWED_FILE_SCAN_PATHS

クエリコマンド(例: textfilecsvfile)の実行時にアクセスを許可するディレクトリのリスト(デフォルト値: $DATADIR/araqne-logdb/scan,$LOGDIR、関連内容: 4.0.2511.0 マイグレーションガイド)。

たとえば、ALLOWED_FILE_SCAN_PATHS="/opt/logpresso/data/araqne-logdb/scan,/opt/logpresso/log" に設定すると、ローカルファイルにアクセスするクエリコマンドは /opt/logpresso/data/araqne-logdb/scan および /opt/logpresso/log ディレクトリ配下にあるファイルのみアクセスできます。

-Dsonar.node.ignore_pattern_group=true

パターングループ同期の無効化。このオプションは logpresso.conf ファイルに明示的に定義されていない JVM オプションです。logpresso.conf ファイルに次のように直接入力して使用してください。

JAVA_OPTS="$JAVA_OPTS -Dsonar.node.ignore_pattern_group=true"
Note
sonar.node.ignore_pattern_group この JVM オプションは Forwarder Node でのみ設定されます。

Forwarder Node の実行

環境設定ファイルの編集を終えた後、サービスユニット(logpresso.service)を登録して実行します。

サービスの登録および実行

Logpresso Sonar サーバーをインストールするには、次のコマンドを実行してください。

sudo /opt/logpresso/logpresso install server && \
sudo systemctl enable --now logpresso

Logpresso のインストール過程で次のような作業が行われます。

  1. logpresso ユーザーが作成され、Logpresso ディレクトリ内のすべてのファイルおよびディレクトリの所有者と所有グループが logpresso に変更されます。

    # /etc/passwd に追加された logpresso アカウント
    logpresso:x:1001:1001::/opt/logpresso:/sbin/nologin
    
  2. /etc/ld.so.conf.d/logpresso.conf ファイルが作成され、libjli.so ファイルが位置するディレクトリのパスが保存されます。

    # /etc/ld.so.conf.d/logpresso.conf
    # ファイルの内容はシステムによって異なる場合があります。
    /opt/logpresso/jdk-21.0.8+9/lib/jli
    

    この過程で jli ディレクトリのパスが /etc/ld.so.conf.d/logpresso.conf ファイルに正常に追加されなかった場合、Logpresso Sonar サービスの起動時に次のようなエラーが発生する場合があります。

    /opt/logpresso/jre/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
    

    エラーが発生する場合は、次のコマンドを実行して実際の libjli.so ファイルのディレクトリのパスを確認してください。

    sudo find /opt/logpresso -type f -name libjli.so -exec dirname {} \;
    

    /etc/ld.so.conf.d/logpresso.conf ファイルの内容と実際のディレクトリのパスが異なる場合は、実際のディレクトリのパスに合わせて /etc/ld.so.conf.d/logpresso.conf ファイルを修正し、sudo ldconfig コマンドを実行する必要があります。

  3. /usr/lib/systemd/system ディレクトリに logpresso.service サービスユニットファイルを追加し、systemd がサービスを管理できるように設定します。logpresso.service ファイルの内容は次のとおりです(バージョンによって異なる場合があります)。必要であれば修正して使用してください。

    [Unit]
    Description=Logpresso daemon
    After=multi-user.target network.target
    Wants=network-online.target
    Documentation=https://docs.logpresso.com
    
    [Service]
    User=logpresso
    Group=logpresso
    Type=forking
    PIDFile=/opt/logpresso/logpresso.pid
    Environment=PKGDIR=/opt/logpresso
    ExecStart=/opt/logpresso/logpresso start
    ExecStop=/opt/logpresso/logpresso stop
    StartLimitBurst=0
    TimeoutStopSec=1200
    LimitNOFILE=65535
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
    • Wants は追加設定された項目です。作成された logpresso.service ファイルにこの項目がない場合は追加してください。
    • LimitNOFILE 行があると、/etc/security/limits.d/50-logpresso.conf ファイルの設定を無視し、サービスユニットに設定した値が適用されます。この行がある場合は削除してください。

    サービスユニットファイルを修正した場合は、次のコマンドを実行してサービスを再起動してください。

    sudo systemctl daemon-reload && sudo systemctl restart logpresso
    
サービス状態の確認
  1. 次のコマンドを実行して、Logpresso サービスが正常に実行中かを確認してください。

    systemctl status logpresso
    

    正常に実行中であれば、次のような結果が出力されます。Main PID フィールドの値を確認しておいてください(ここでは 1682 です)。

    ● logpresso.service - Logpresso daemon
         Loaded: loaded (/usr/lib/systemd/system/logpresso.service; enabled; preset: disabled)
         Active: active (running) since Wed 2025-10-15 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 /usr/lib/jvm/java/bin/java ...(省略)... -jar /opt/logpresso/sonar/araqne-core-4.0.5-package.jar
    
    (以下省略)
    
  2. 次のコマンドを実行して、java プロセスが開いているポートのリストを確認してください。

    sudo ss -tuanlp | grep -E '^Netid|java'
    

    正常にサービスが実行されると、コマンドの出力結果で次のように java および mariadbd プロセスにバインドされたポートのリストを確認できます。

    Netid  State   Recv-Q  Send-Q       Local Address:Port    Peer Address:Port  Process
    udp    UNCONN  0       0                  0.0.0.0:162          0.0.0.0:*      users:(("java",pid=2981,fd=338))
    udp    UNCONN  0       0                  0.0.0.0:514          0.0.0.0:*      users:(("java",pid=2981,fd=336))
    udp    UNCONN  0       0                  0.0.0.0:8514         0.0.0.0:*      users:(("java",pid=2981,fd=339))
    tcp    LISTEN  0       512                      *:7140               *:*      users:(("java",pid=2981,fd=407))
    tcp    LISTEN  0       50      [::ffff:127.0.0.1]:7022               *:*      users:(("java",pid=2981,fd=144))
    tcp    LISTEN  0       4096                     *:44300              *:*      users:(("java",pid=2981,fd=219))
    tcp    LISTEN  0       4096                     *:8443               *:*      users:(("java",pid=2981,fd=200))
    

    出力された結果で、1024 以下のポートが開いているかを確認してください。1024 以下のポートの使用権限がない場合は、JDK のインストールを参照してください。