RAM の 80% に 48 時間の圧縮データを保持できる必要があります。
24 時間のデータを 10 秒以内に検索できるように、十分なハイパー スレッド/vCPU (それぞれ 1 GB/秒の検索が可能) が必要です。
圧縮データを保持するにはディスク容量が必要です。ディスクを 80% を超えていっぱいにしないでください。
Falcon Logscale では、運用環境でセットアップされる単一サーバーの場合、少なくとも 16 個の CPU コア、32 GB のメモリ、および 1 GBit ネットワーク カードを推奨します。ディスク容量は、1 日あたりに取り込まれるデータの量と保持日数によって異なります。これは次のように計算されます: 保持日数 x 注入された GB / 圧縮係数。これにより、単一サーバーに必要なディスク容量が決まります。
このドキュメントで使用されるセットアップ:
データ: /data パーティションに 200GB パーティション
RAM: 32GB
CPU: 4コア
カフカのバージョン: 2.13-3.3.2
ズーキーパーのバージョン: 3.7.1
フミオ・ファルコン バージョン: 1.136.1
開いているファイルの制限を増やす:
運用環境で使用する場合、Humio はソケット用に多くのファイルを開いたままにし、ファイル システムからの実際のファイルを維持できる必要があります。
以下を使用して、プロセスの実際の制限を確認できます。
PID=`ps -ef | grep java | grep humio-assembly | head -n 1 | awk '{print $2}'` cat /proc/$PID/limits | grep 'Max open files'
最低限必要な設定は、オープン ネットワーク接続とデータソースの数によって異なります。ファルコンプロセスに対してこれらの制限を高く設定しても問題はありません。少なくとも 8192 の値が推奨されます。
これを行うには、単純なテキスト エディタを使用して、 /etc/security/limits.d/サブディレクトリに99-falcon-limits.confという名前のファイルを作成します。次の行をそのファイルにコピーします。
#Raise limits for files: falcon soft nofile 250000 falcon hard nofile 250000
テキスト エディタで別のファイルを作成し、今回は/etc/pam.d/サブディレクトリに作成し、 common-session という名前を付けます。次の行をそこにコピーします。
#Apply limits: session required pam_limits.so
/tmp ディレクトリの noexec を確認してください
/tmp のファイルシステム オプションを確認します。 Falcon Logscale は、Facebook Zstandard リアルタイム圧縮アルゴリズムを利用します。これには、構成された一時ディレクトリからファイルを直接実行する機能が必要です。
ファイルシステムのオプションは、マウントを使用して確認できます。
$ mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) udev on /dev type devtmpfs (rw,nosuid,noexec,relatime,size=1967912k,nr_inodes=491978,mode=755,inode64) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=399508k,mode=755,inode64) /dev/sda5 on / type ext4 (rw,relatime,errors=remount-ro) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noexec,seclabel)
mount を使用して一時的に noexec を削除し、ディレクトリを「再マウント」できます。
mount -oremount,exec /tmp
noexec フラグを永久に削除するには、 /etc/fstabを更新してオプションからフラグを削除します。
tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0
Humio が正しく機能するには、Java バージョン 17 以降の JVM が必要です。 (Logscale が 17 未満の JDK バージョンのサポートをまもなく終了するため、JDK 21 を使用するようにドキュメントが更新されました)
最新の JDK 21 x64 圧縮アーカイブをここからダウンロードします: https://download.oracle.com/java/21/archive/jdk-21.0.2_linux-x64_bin.tar.gz
JDK21 のインストール 圧縮アーカイブを解凍して、 jdk tar アーカイブを /usr/local/jdk ディレクトリに解凍します。
tar -xf jdk-21.0.2_linux-x64_bin.tar.gz -C /usr/local/jdk cd /usr/local/jdk mv jdk-21.0.2/* . chmod -R o+rx /usr/local/jdk
まずは以下のようにKafkaシステムユーザーを追加します。
$ sudo adduser kafka --shell=/bin/false --no-create-home --system --group
カフカをダウンロード:
$ curl -o kafka_2.13-3.3.2.tgz https://dlcdn.apache.org/kafka/3.3.2/kafka_2.13-3.3.2.tgz
以下のディレクトリを作成します
$ mkdir /data /usr/local/falcon
kafka を /usr/local/falcon ディレクトリに解凍します
$ sudo tar -zxf kafka_2.13-3.3.2.tgz /usr/local/falcon/
以下のディレクトリを作成します
$ sudo mkdir -p /data/kafka/log /data/kafka/kafka-data $ sudo chown -R kafka:kafka /data/kafka $ sudo chown -R kafka:kafka /usr/local/falcon/kafka_2.13-3.3.2
/usr/local/falcon/kafka/config
に移動し、 server.properties
ファイルの次の詳細を編集します。
broker.id=1 log.dirs=/data/kafka/log delete.topic.enable = true
次に、 /etc/systemd/system
ディレクトリの下にkafka.service
という名前のファイルを作成し、そのファイル内に次の詳細を貼り付けます。
[Unit] Requires=zookeeper.service After=zookeeper.service [Service] Type=simple User=kafka LimitNOFILE=800000 Environment="JAVA_HOME=/usr/local/jdk" Environment="LOG_DIR=/data/kafka/log/kafka" Environment="GC_LOG_ENABLED=true" Environment="KAFKA_HEAP_OPTS=-Xms512M -Xmx4G" ExecStart=/usr/local/falcon/kafka/bin/kafka-server-start.sh /usr/local/falcon/kafka/config/server.properties Restart=on-failure [Install] WantedBy=multi-user.target
[Unit] セクションを見ると、Zookeeper サービスが必要であることがわかります。したがって、kafka サービスを開始する前に、zookeeper をインストールする必要があります。
Zookeeper をダウンロード:
$ curl -o zookeeper-3.7.1-bin.tar.gz https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
Zookeeper システム ユーザーの作成
$ sudo adduser zookeeper --shell=/bin/false --no-create-home --system --group
Zookeeper を/usr/local/falcon
ディレクトリに解凍します
$ sudo tar -zxf zookeeper-3.7.1-bin.tar.gz /usr/local/falcon/ $ sudo mkdir -p /data/zookeeper/data $ sudo ln -s /usr/local/falcon/apache-zookeeper-3.7.1-bin /usr/local/falcon/zookeeper $ sudo chown -R zookeeper:zookeeper /data/zookeeper
/usr/local/falcon/zookeeper/conf
ディレクトリ内に、 zoo.cfg
という名前のファイルを作成します。
$ sudo vi /usr/local/falcon/zookeeper/conf/zoo.cfg
そのファイル内に次の行を貼り付けます
tickTime = 2000 dataDir = /data/zookeeper/data clientPort = 2181 initLimit = 5 syncLimit = 2 maxClientCnxns=60 autopurge.purgeInterval=1 admin.enableServer=false 4lw.commands.whitelist=* admin.enableServer=false
data
サブディレクトリに、内容として数値1
だけを含むmyid
ファイルを作成します。
$ sudo bash -c 'echo 1 > /data/zookeeper/data/myid'
Zookeeper がそれを使用するように jdk パス変数を言及する
/usr/local/falcon/zookeeper/conf
ディレクトリ内にjava.env
という名前のファイルを作成し、次の行を追加します。
## Adding Custom JAVA_HOME JAVA_HOME="/usr/local/jdk"
その後、Zookeeper を起動して、構成が機能していることを確認できます。
Zookeeper ディレクトリに適切な権限を与える
$ sudo chown -R zookeeper:zookeeper /usr/local/falcon/apache-zookeeper-3.7.1-bin/
最後に、サーバーを起動して、すべてが正常かどうかをテストします。 (rootユーザーで行う必要があります)
$ ./bin/zkServer.sh start
サーバーが正常に起動すると、次のメッセージが表示されます。
/usr/local/java/bin/java ZooKeeper JMX enabled by default Using config: /usr/local/falcon/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
ここで、Zookeeper をサービスとして開始するために、ファイルにサービスを作成する必要があります。 /etc/systemd/system/
ディレクトリ内にzookeeper.service
ファイルを作成し、次の行を貼り付けます。
[Unit] Description=Zookeeper Daemon Documentation=http://zookeeper.apache.org Requires=network.target After=network.target [Service] Type=forking WorkingDirectory=/usr/local/falcon/zookeeper User=zookeeper Group=zookeeper ExecStart=/usr/local/falcon/zookeeper/bin/zkServer.sh start /usr/local/falcon/zookeeper/conf/zoo.cfg ExecStop=/usr/local/falcon/zookeeper/bin/zkServer.sh stop /usr/local/falcon/zookeeper/conf/zoo.cfg ExecReload=/usr/local/falcon/zookeeper/bin/zkServer.sh restart /usr/local/falcon/zookeeper/conf/zoo.cfg TimeoutSec=30 Restart=on-failure [Install] WantedBy=default.target
すべての作業が正しく完了したら、以下のコマンドを実行してzookeeperを起動します。ただし、その前に、 /usr/local/falcon/zookeeper/logs
ディレクトリ内に root ユーザーによって作成されたログがあるかどうかを確認してください。ログがある場合は削除してください。
今すぐZookeeperを開始します。
$ sudo systemctl start zookeeper $ systemctl status zookeeper $ sudo systemctl enable zookeeper
Zookeeper を起動したら、Kafka を起動できるようになります。
$ sudo systemctl enable kafka $ sudo systemctl start kafka $ systemctl status kafka
ファルコンユーザーの作成
$ sudo adduser falcon --shell=/bin/false --no-create-home --system --group
ファルコンディレクトリの作成
$ sudo mkdir -p /data/falcon/log/ /data/falcon/data /usr/local/falcon/falcon_app $ sudo chown -R falcon:falcon /etc/falcon/ /data/falcon
これで、Falcon Logscale のソフトウェアをダウンロードしてインストールする準備ができました。最新の falcon logscale 安定バージョンをここからダウンロードします。
https://repo.humio.com/service/rest/repository/browse/maven-releases/com/humio/server/
$ curl -o server-1.136.1.tar.gz https://repo.humio.com/repository/maven-releases/com/humio/server/1.136.1/server-1.136.1.tar.gz $ tar -xzf server-1.136.1.tar.gz $ cd humio $ mv * /usr/local/falcon/falcon_app $ sudo chown -R falcon:falcon /usr/local/falcon/falcon_app
単純なテキスト エディタを使用して、 /etc/falcon
ディレクトリに falcon ログスケール構成ファイル、 server.conf
を作成します。 Humio を単一のサーバーまたはインスタンスで実行するには、この構成ファイルにいくつかの環境変数を入力する必要があります。これらの基本的な設定は次のとおりです。
$ sudo vim /etc/falcon/server.conf
BOOTSTRAP_HOST_ID=1 DIRECTORY=/data/falcon/data JAVA_HOME=/usr/local/jdk HUMIO_AUDITLOG_DIR=/data/falcon/log HUMIO_DEBUGLOG_DIR=/data/falcon/log JVM_LOG_DIR=/data/falcon/log HUMIO_PORT=8080 KAFKA_SERVERS=<hostip>:9092 EXTERNAL_URL=http://<hostip or domain>:8080 PUBLIC_URL=http://<hostip or domain> HUMIO_SOCKET_BIND=0.0.0.0 HUMIO_HTTP_BIND=0.0.0.0
最後に、 /etc/systemd/system/
ディレクトリ内にfalcon.service
ファイルを作成し、以下の内容を貼り付けます。
[Unit] Description=Falcon Logscale service After=network.service [Service] Type=notify Restart=on-abnormal User=humio Group=humio LimitNOFILE=250000:250000 EnvironmentFile=/etc/falcon/server.conf WorkingDirectory=/data/falcon ExecStart=/usr/local/falcon/falcon_app/bin/humio-server-start.sh [Install] WantedBy=default.target
次のコマンドを実行して、falcon logscale サーバーを起動します。
$ sudo systemctl start falcon
falcon エンドでエラーがないか確認します。
$ journalctl -fu falcon
/data/falcon/log
ログスケール ログのエラーを確認することもできます。
エラーがなければ、ブラウザでhttp://<serverip>:8080
アクセスして、falcon logscale サイトにアクセスできます。