オペレーティングシステム
このドキュメントでは、オペレーティングシステムのインストールおよび設定時に必要な項目を説明します。
- インストール時に必要な権限: Logpresso Sonar のインストールに必要な権限を説明します。
- オペレーティングシステム & JDK のインストール: オペレーティングシステムのインストール、パーティション構成、必須パッケージおよび JDK のインストール方法を説明します。
- オペレーティングシステムの設定: JDK 権限、SELinux、ホスト名、NTP、ファイアウォール、カーネルパラメーターなどを設定します。
- Logpresso ディレクトリの作成: Logpresso のインストールディレクトリを作成します。
インストール時に必要な権限
Logpresso Sonar をインストールするには、インストール対象サーバーの root 権限、または sudo コマンドで管理者権限のコマンドを実行できるユーザー(wheel グループに属するユーザー)の権限が必要です。
オペレーティングシステム & JDK のインストール
Logpresso が公式にサポートするオペレーティングシステムは Red Hat Enterprise Linux 9 です。
- Rocky Linux のような RHEL 9 互換のオペレーティングシステムも使用できます。
- インストールタイプは Server with GUI を推奨します。
- オペレーティングシステムのパーティションとデータパーティションを分離して構成してください。
- データパーティションは
/dataにマウントしてください。 - データパーティションは、必要に応じて容量を増設できるように LVM で構成することを推奨します。
- データパーティションは
必須パッケージのインストール
インターネットに接続できるネットワークで、次のコマンドを実行して必須パッケージをインストールしてください。
sudo dnf -y install curl firewalld java-21-openjdk-devel \
lsof net-tools traceroute unzip
| パッケージ | 用途 |
|---|---|
| curl | API テスト時に使用 |
| firewalld | ホストファイアウォールの設定 |
| java-21-openjdk-devel | Logpresso Sonar の実行に必要な JDK |
| lsof | 開いているファイルおよびポートの確認に使用する診断ツール |
| net-tools | netstat、ifconfig などのネットワーク診断ツール |
| traceroute | ネットワーク経路の追跡に使用する診断ツール |
| unzip | Logpresso Sonar インストールパッケージの解凍 |
java-21-openjdkの代わりにjava-21-openjdk-develパッケージをインストールすると、障害発生時にjmap、jstackコマンドを利用してデバッグできます。- デバッグツールのインストールが許可されていない環境では、
java-21-openjdk-headlessパッケージをインストールしてください。
作業の利便性のため、次のパッケージをインストールすることを推奨します。
sudo dnf -y install vim wget
| パッケージ | 用途 |
|---|---|
| vim | 設定ファイルの編集 |
| wget | Sentry をインストールするホストで Sentry インストールスクリプトを実行する際に使用 |
パッケージのダウンロード(閉域網環境への備え)
閉域網環境にインストールする必要がある場合は、次の手順に従って閉域網環境に持ち込むパッケージファイルを準備します。
-
閉域網で使用するオペレーティングシステムとバージョンを確認し、インターネットに接続できるネットワークで、閉域網で運用する Linux サーバーと同じバージョンの Linux ホストを準備してください。
-
次のコマンドを実行して、インストールするパッケージおよびその依存関係を持つすべてのパッケージを指定したパスにダウンロードしてください。
# パッケージのダウンロードには sudo 権限は必要ありません。 mkdir $HOME/rpm && cd $HOME/rpm && \ dnf download --resolve curl firewalld java-21-openjdk-devel \ lsof net-tools traceroute unzip vim wget && \ tar czvf rpm.tgz *.rpm -
圧縮したファイルのハッシュ値を記録したファイルを作成してください。ハッシュ値は、閉域網に持ち込んだファイルの整合性を検証する際に必要です。
sha256sum rpm.tgz > rpm.tgz.sha256 -
rpm.tgz、rpm.tgz.sha256ファイルを安全な場所に保管してください(読み取り専用メディアを推奨)。
閉域網環境に必須パッケージをインストールするには、次の手順に従って必須パッケージをインストールしてください。
-
新しいディレクトリ(例:
$HOME/rpm)を作成し、新しいディレクトリにrpm.tgz、rpm.tgz.sha256ファイルをコピーしてください。 -
新しいディレクトリで次のコマンドを実行して、確認したハッシュ値を
rpm.tgz.sha256ファイルに記録されたハッシュ値と比較してください。sha256sum rpm.tgz -
rpm.tgzファイルを解凍してパッケージをインストールしてください。tar xzvf rpm.tgz && sudo dnf install -y *.rpm
オペレーティングシステムの設定
JDK 権限の設定
インストールされた JDK バージョンを確認し、Logpresso Sonar の実行に必要な権限を付与します。この設定はすべてのノードで実行してください。
-
インストールされた JDK バージョンを確認してください。
java -version次のようなバージョン情報を確認できるはずです。
openjdk version "21.0.10" 2026-01-20 LTS OpenJDK Runtime Environment (Red_Hat-21.0.10.0.7-1) (build 21.0.10+7-LTS) OpenJDK 64-Bit Server VM (Red_Hat-21.0.10.0.7-1) (build 21.0.10+7-LTS, mixed mode, sharing) -
java実行ファイルに必要な権限を付与してください。sudo setcap cap_net_bind_service,cap_sys_time,cap_net_raw=+ep $(readlink /etc/alternatives/java)setcapでjava実行ファイルに付与する権限は次のとおりです。オプション 説明 備考 cap_net_bind_service 1024 番以下のポート使用権限 一般ユーザー権限では 1024 以下のポートを使用できません cap_sys_time システム時刻を変更できる権限 時刻同期、タイムスタンプ調整時に必要 cap_net_raw raw socket、packet socket の使用権限 pcap 直接収集、sendsyslog、ping アプリに使用されます +ep +: 権限の追加e: 権限の適用p: 権限を永続的に維持 -
権限が正常に適用されたかを確認してください。
getcap $(readlink /etc/alternatives/java)次のような結果を確認できるはずです。
/usr/lib/jvm/java-21-openjdk-21.0.10.0.7-1.el9.x86_64/bin/java cap_net_bind_service,cap_net_raw,cap_sys_time=ep
SELinux の設定
SELinux(Security-Enhanced Linux)は、Linux カーネルレベルのセキュリティポリシーを適用するモジュールです。デフォルトでは、enforcing モードでセキュリティポリシー違反が発生した場合、その動作を遮断します。Logpresso Sonar の実行時に特定のディレクトリへのアクセスが制限される場合があるため、SELinux を permissive に変更する必要があります。
-
/etc/selinux/configファイルを開き、次のように設定してください。変更した設定は、システムを再起動するか、setenforce 0コマンドを実行するとすぐに適用されます。# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive -
SELinux を Permissive に即時適用するために、次のコマンドを実行してください。
sudo setenforce 0 -
getenforceコマンドを実行して、現在の SELinux 動作モードがPermissiveと出力されるかを確認してください。
ホスト名の変更
Logpresso Sonar ノードを識別しやすいように、次のコマンドでサーバーのホスト名を変更してください。
sudo hostnamectl set-hostname HOSTNAME
HOSTNAME: ホスト名
ノードペアが複数ある場合は、c1a/c1b、d1a/d1b、d2a/d2b、f1a/f1b などのように、ノードペア識別子とノード識別子を付与してホスト名を付けることを推奨します。たとえば、Control Node ペア 1 組、Data Node ペア 2 組、Forwarder Node ペア 1 組で構成されたクラスターであれば、次のようなホスト名を使用できます。
| ノードペア | ホスト名 | 説明 |
|---|---|---|
| c1 | c1a | Control Node ペア c1 のノード A |
| c1 | c1b | Control Node ペア c1 のノード B |
| d1 | d1a | Data Node ペア d1 のノード A |
| d1 | d1b | Data Node ペア d1 のノード B |
| d2 | d2a | Data Node ペア d2 のノード A |
| d2 | d2b | Data Node ペア d2 のノード B |
| f1 | f1a | Forwarder Node ペア f1 のノード A |
| f1 | f1b | Forwarder Node ペア f1 のノード B |
NTP の設定
すべてのノードが正確な時刻情報を使用できるように、同じ NTP サーバーと時刻を同期します。
-
すべてのサーバーが同じ NTP サーバーとネットワーク標準時刻を同期するように、
/etc/chrony.confファイルに同じ NTP サーバーまたはサーバープールを設定してください。# Use public servers from the pool.ntp.org project. # Please consider joining the pool (https://www.pool.ntp.org/join.html). # pool 2.rocky.pool.ntp.org iburst # pool 行をコメントアウト server time.kriss.re.kr iburst prefer # 韓国標準科学研究院の NTP サーバー server 192.0.2.1 iburst # 内部ネットワーク 192.0.2.0/24 帯域の NTP サーバー(例)⚠️
server行を追加した場合は、pool行を削除するかコメントアウトしてください。どちらか一方のみを使用する必要があります。 -
次のコマンドを実行して
chronydサービスを再起動してください。sudo systemctl restart chronyd -
次のコマンドを実行して、現在登録されている NTP サーバーの同期状態を確認してください。chronyd が正常に動作していれば、同期状態が表示されます。
chronyc sources -v -
次のコマンドを実行すると、時刻を即座に同期できます。
sudo chronyc -a makestep
ホストファイアウォールの設定
Logpresso Sonar の稼働に必要な通信が可能になるように、インバウンドのファイアウォールポリシーを設定してください。次は、事前準備ドキュメントで説明した ファイアウォールポリシーの設定に従って、Forwarder Node サーバーでファイアウォールポリシーを設定するコマンドの例です。
sudo firewall-cmd --permanent --add-port={22,8443,7140,8514,44300}/tcp --add-port={514,8514,162}/udp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
- Syslog over DTLS(8514/tcp、8514/udp)は標準ポートがないため、運用環境によって異なる場合があります。
上記のようなファイアウォール設定には、送信元 IP アドレスを制限しないという問題があります。ホストファイアウォールで送信元 IP アドレスを制限するには、次のように --add-rich-rule オプションを利用した高度なファイアウォールポリシーコマンドを実行する必要があります。IP アドレス帯域は実際の環境に合わせて変更してください。
# 1. 管理網: 192.0.2.0/24
# 管理者: SSH 接続(22)、Web 管理コンソールおよび API 点検(8443)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.0.2.0/24" port port="22" protocol="tcp" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.0.2.0/24" port port="8443" protocol="tcp" accept'
# 2. Control Node: 203.0.113.240/29
# Control Node: Sonar フェデレーション(8443)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.240/29" port port="8443" protocol="tcp" accept'
# 3. Forwarder Node 帯域: 203.0.113.160/27 (203.0.113.161 - 203.0.113.190)
# ピアノード間の状態確認(7140)
# 注意: Forwarder Node グループから来るトラフィックのみ許可
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.160/27" port port="7140" protocol="tcp" accept'
# 4. サービス網: 203.0.113.0/25 (203.0.113.1 - 203.0.113.126)
# 対象: Sentry エージェントおよび一般的なログ発生装置(スイッチ、サーバーなど)
# Sentry: RPC およびログ受信 (7140/tcp)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/25" port port="7140" protocol="tcp" accept'
# ログ収集対象: Syslog (514/udp)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/25" port port="514" protocol="udp" accept'
# ログ収集対象: Syslog over DTLS (8514/udp)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/25" port port="8514" protocol="tcp" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/25" port port="8514" protocol="udp" accept'
# ログ収集対象: SNMP TRAP (162/udp)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/25" port port="162" protocol="udp" accept'
# 5. Sentry 帯域: 203.0.113.0/25 (203.0.113.1 - 203.0.113.126)
# 証明書の更新、Sentry のインストール (44300/tcp)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/25" port port="44300" protocol="tcp" accept'
# 6. 設定の適用および確認
sudo firewall-cmd --reload
sudo firewall-cmd --list-rich-rules
ソケットバッファおよびメモリマップの設定
Syslog、Syslog over DTLS、SNMP TRAP の受信時に、カーネルのソケットバッファが不足したり、メモリバッファが不足したりすると、ログパケットが失われてログ損失が発生する場合があります。これを防ぐため、ソケットバッファおよびメモリマップの設定を変更します。この作業はすべてのノードで実行してください。
-
/etc/sysctl.dディレクトリに50-logpresso.confファイルを作成し、ファイルに次の内容を追加してください。net.core.rmem_default = 52428800 net.core.rmem_max = 52428800 net.ipv4.udp_rmem_min = 8192 net.ipv4.ipfrag_high_thresh = 16777216 vm.max_map_count = 10000000 vm.swappiness = 1各項目の意味は次のとおりです:
変数 説明 デフォルト値 設定値 net.core.rmem_default ソケットのデフォルト受信バッファサイズ 212992 52428800 net.core.rmem_max ソケットの最大受信バッファサイズ 212992 52428800 net.ipv4.udp_rmem_min UDP ソケットの最小受信バッファサイズ 4096 8192 net.ipv4.ipfrag_high_thresh IP パケット再構成バッファの最大サイズ設定 4194304 16777216 vm.max_map_count 仮想メモリマッピングの最大許容数 65530 10000000 vm.swappiness スワップ使用の最小化 60 1 -
次のコマンドを実行して、変更したカーネル設定を即座に適用してください。
sudo sysctl -p -
次のコマンドを実行して、変更した設定値を確認してください。
sudo sysctl -a | grep -E "rmem_default|rmem_max|udp_rmem_min|ipfrag_high_thresh|max_map_count"
リソース制限の緩和設定
-
/etc/security/limits.dディレクトリに50-logpresso.confファイルを作成し、ファイルに次の内容を追加してください。logpresso soft nofile 126488 logpresso hard nofile 126488 logpresso soft nproc 126488 logpresso hard nproc 126488nofile: 同時に開くことができるファイルの最大数nproc: 同時に実行できるプロセス(およびスレッド)の最大数
-
次のコマンドを実行して、変更した設定値を確認してください。
ulimit -n # ファイルオープン制限(nofile)の確認 ulimit -u # プロセス数制限(nproc)の確認
診断ツールの権限付与
-
次のコマンドを実行して、
jstack、jmap実行ファイルの正確なパスを確認してください。readlink /etc/alternatives/jstack readlink /etc/alternatives/jmap次のような結果を確認できるはずです。
/usr/lib/jvm/java-21-openjdk/bin/jstack /usr/lib/jvm/java-21-openjdk/bin/jmap -
sudo visudo /etc/sudoers.d/logpressoコマンドを実行して、次のように編集してください。1 で確認したjstack、jmap実行ファイルのパスに対して、logpresso アカウントで実行できるように権限を付与します。# readlink コマンドの実行結果に合わせてパスを修正して設定してください。 %logpresso ALL=(ALL) NOPASSWD: /usr/lib/jvm/java-21-openjdk/bin/jstack %logpresso ALL=(ALL) NOPASSWD: /usr/lib/jvm/java-21-openjdk/bin/jmap %logpresso ALL=(ALL) NOPASSWD: /usr/bin/arping %logpresso ALL=(ALL) NOPASSWD: /usr/bin/netstat %logpresso ALL=(ALL) NOPASSWD: /usr/sbin/ifconfig %logpresso ALL=(ALL) NOPASSWD: /usr/sbin/tcpdump Defaults:logpresso !requirettyNoteLogpresso Sonar のインストール時に logpresso アカウントが作成されます。ここでは、あらかじめ診断ツールの権限を付与する方法で説明します。
arping、netstat、ifconfig、tcpdump コマンドは、Logpresso Sonar が Sentry の状態を確認したり、pcap ファイルを収集する目的で使用されます。
-
次のコマンドを実行して、権限が正常に適用されたかを確認してください。
sudo visudo -c
Logpresso ディレクトリの作成
次のコマンドを実行して、Logpresso をインストールするディレクトリを作成してください。Logpresso ディレクトリは運用環境に合わせて変更して使用できます。このドキュメントでは /opt/logpresso を使用します。
sudo mkdir -p /opt/logpresso