パッケージインストール
このドキュメントでは、Logpresso Sonar パッケージをインストールする方法を説明します。Control Node、Data Node、Forwarder Node はすべて同じパッケージを使用します。ここで説明するすべての手順を Forwarder Node A、B でそれぞれ実行してください。
- パッケージファイルの解凍: Logpresso Sonar パッケージをダウンロードして解凍します。
- logpresso.conf ファイルの作成: ノードの実行に必要な基本設定ファイルを作成します。
- 環境設定: 運用環境に合わせて JVM およびノード設定を構成します。
- Forwarder Node の実行: サービスを登録して実行します。
パッケージファイルの解凍
まず、Logpresso Sonar パッケージをダウンロードして準備し、すべての Logpresso Sonar ノードでパッケージを解凍します。
-
インターネットにアクセスできる PC で、Logpresso Store から最新バージョンのパッケージをダウンロードしてください。このドキュメントではバージョン 4.0.2511.1 パッケージと仮定します。
-
ダウンロードしたパッケージファイルを 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_HOME、MIN_HEAP_SIZE、MAX_HEAP_SIZE、MAX_DIRECT_MEM_SIZE があります。次の表を参考にして適切な値を設定してください。
ネットワーク収集専用
| 日処理量 | 物理コア | vCPU | RAM | APC | HEAP | DM |
|---|---|---|---|---|---|---|
| 1TB/日 | 4 | 8 | 16GB | - | 8GB | 4GB |
Sentry 管理およびネットワーク収集
| 日処理量 | 物理コア | vCPU | RAM | APC | HEAP | DM |
|---|---|---|---|---|---|---|
| 1TB/日 | 12 | 24 | 64GB | - | 31GB | 20GB |
- Forwarder Node は日処理量 1TB/日 以上の環境で運用されます。可用性が重要な場合は、冗長構成を検討してください。
- Forwarder Node は日処理量 1TB/日 を超えるたびに追加構成して使用します。
- APC:
-XX:ActiveProcessorCountに適用する値 - HEAP:
MIN_HEAP_SIZE、MAX_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日)。このファイルは、主要な作業の実行、システムエラーおよび例外状況を記録するために使用されます。ログレコードはそれぞれERROR、WARNING、INFO、DEBUG、TRACEレベルを持ちます。 LOGDB_PURGE-
Logpresso クエリで
purgeコマンドの許可の可否(デフォルト値:disabled)。コマンドの動作は purge コマンドの説明書を参照してください。この機能を有効にするにはenabledに変更してください。 ALLOWED_FILE_SCAN_PATHS-
クエリコマンド(例:
textfile、csvfile)の実行時にアクセスを許可するディレクトリのリスト(デフォルト値:$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"Notesonar.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 のインストール過程で次のような作業が行われます。
-
logpressoユーザーが作成され、Logpresso ディレクトリ内のすべてのファイルおよびディレクトリの所有者と所有グループがlogpressoに変更されます。# /etc/passwd に追加された logpresso アカウント logpresso:x:1001:1001::/opt/logpresso:/sbin/nologin -
/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コマンドを実行する必要があります。 -
/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.targetWantsは追加設定された項目です。作成されたlogpresso.serviceファイルにこの項目がない場合は追加してください。LimitNOFILE行があると、/etc/security/limits.d/50-logpresso.confファイルの設定を無視し、サービスユニットに設定した値が適用されます。この行がある場合は削除してください。
サービスユニットファイルを修正した場合は、次のコマンドを実行してサービスを再起動してください。
sudo systemctl daemon-reload && sudo systemctl restart logpresso
サービス状態の確認
-
次のコマンドを実行して、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 (以下省略) -
次のコマンドを実行して、
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 のインストールを参照してください。