Falcon Logscale merekomendasikan setidaknya 16 inti CPU, memori 32 GB, dan kartu Jaringan 1 GBit untuk pengaturan server tunggal pada lingkungan produksi. Ruang disk akan bergantung pada jumlah data yang diserap per hari dan jumlah hari penyimpanan. Ini dihitung sebagai berikut: Hari Retensi x GB yang Disuntikkan / Faktor Kompresi. Itu akan menentukan ruang disk yang dibutuhkan untuk satu server.
Pengaturan yang Digunakan dalam Dokumen ini:
Data: Partisi 200GB di /partisi data
RAM: 32GB
CPU: 4 Inti
Versi Kafka: 2.13-3.3.2
Versi Penjaga Kebun Binatang: 3.7.1
Versi Humio Falcon: 1.136.1
Tingkatkan Batas File Terbuka:
Untuk penggunaan produksi, Humio harus mampu menjaga banyak file tetap terbuka untuk soket dan file sebenarnya dari sistem file.
Anda dapat memverifikasi batas sebenarnya untuk proses tersebut menggunakan:
PID=`ps -ef | grep java | grep humio-assembly | head -n 1 | awk '{print $2}'`
cat /proc/$PID/limits | grep 'Max open files'
Pengaturan minimum yang diperlukan bergantung pada jumlah koneksi jaringan terbuka dan sumber data. Tidak ada salahnya menetapkan batasan ini tinggi untuk proses elang. Direkomendasikan nilai minimal 8192 .
Anda dapat melakukannya menggunakan editor teks sederhana untuk membuat file bernama 99-falcon-limits.conf di subdirektori /etc/security/limits.d/ . Salin baris ini ke dalam file itu:
#Raise limits for files:
falcon soft nofile 250000
falcon hard nofile 250000
Buat file lain dengan editor teks, kali ini di subdirektori /etc/pam.d/ , dan beri nama common-session . Salin baris ini ke dalamnya:
#Apply limits:
session required pam_limits.so
Periksa noexec pada direktori /tmp
Periksa opsi sistem file di /tmp. Falcon Logscale menggunakan algoritma kompresi real-time Facebook Zstandard, yang memerlukan kemampuan untuk mengeksekusi file langsung dari direktori sementara yang dikonfigurasi.
Opsi untuk sistem file dapat diperiksa menggunakan mount:
$ 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)
Anda dapat menghapus noexec untuk sementara menggunakan mount untuk 'memount ulang' direktori:
mount -oremount,exec /tmp
Untuk menghapus flag noexec secara permanen, perbarui /etc/fstab untuk menghapus flag dari opsi:
tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0
Humio memerlukan JVM Java versi 17 atau lebih baru agar dapat berfungsi dengan baik. (Dokter diperbarui untuk menggunakan JDK 21 karena Logscale akan segera menghentikan dukungan untuk versi JDK di bawah 17)
Unduh arsip terkompresi JDK 21 x64 terbaru dari sini: https://download.Oracle.com/java/21/archive/jdk-21.0.2_linux-x64_bin.tar.gz
Menginstal JDK21 Dengan menghapus ekstrak arsip terkompresi: Ekstrak arsip tar jdk ke direktori /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
Pertama tambahkan pengguna sistem Kafka seperti berikut
$ sudo adduser kafka --shell=/bin/false --no-create-home --system --group
Unduh kafka:
$ curl -o kafka_2.13-3.3.2.tgz https://dlcdn.apache.org/kafka/3.3.2/kafka_2.13-3.3.2.tgz
Buat direktori berikut
$ mkdir /data /usr/local/falcon
Buka kafka ke direktori /usr/local/falcon
$ sudo tar -zxf kafka_2.13-3.3.2.tgz /usr/local/falcon/
Buat direktori berikut
$ 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
Navigasikan ke /usr/local/falcon/kafka/config
lalu edit detail file server.properties
berikut.
broker.id=1
log.dirs=/data/kafka/log
delete.topic.enable = true
Sekarang buat file bernama kafka.service
di bawah direktori /etc/systemd/system
dan tempel detail berikut di dalam file itu.
[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
Jika kita melihat bagian [Unit], kita akan melihatnya memerlukan layanan penjaga kebun binatang. Jadi kita harus menginstal zookeeper sebelum kita dapat memulai layanan kafka.
Unduh Penjaga Kebun Binatang:
$ 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
Membuat pengguna sistem penjaga kebun binatang
$ sudo adduser zookeeper --shell=/bin/false --no-create-home --system --group
Untar Zookeeper ke direktori /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
Buat file bernama zoo.cfg
di dalam direktori /usr/local/falcon/zookeeper/conf
$ sudo vi /usr/local/falcon/zookeeper/conf/zoo.cfg
Rekatkan baris berikut di dalam file itu
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
Buatlah file myid
pada subdirektori data
yang isinya hanya angka 1
saja.
$ sudo bash -c 'echo 1 > /data/zookeeper/data/myid'
Menyebutkan variabel jalur jdk sehingga penjaga kebun binatang menggunakannya
Buat file bernama java.env
di dalam direktori /usr/local/falcon/zookeeper/conf
dan tambahkan baris berikut.
## Adding Custom JAVA_HOME
JAVA_HOME="/usr/local/jdk"
Kemudian Anda dapat memulai Zookeeper untuk memverifikasi bahwa konfigurasi berfungsi
Berikan izin yang tepat ke direktori penjaga kebun binatang
$ sudo chown -R zookeeper:zookeeper /usr/local/falcon/apache-zookeeper-3.7.1-bin/
Terakhir uji apakah semuanya baik-baik saja atau tidak dengan memulai server. (Anda harus melakukannya sebagai pengguna root)
$ ./bin/zkServer.sh start
Jika server berhasil dijalankan maka akan muncul pesan berikut
/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
Sekarang kita harus membuat layanan ke file untuk memulai zookeeper sebagai layanan. Buat file zookeeper.service
di dalam direktori /etc/systemd/system/
dan tempelkan baris berikut
[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
Setelah semuanya selesai dengan benar, mulailah zookeeper dengan menjalankan perintah di bawah ini. Namun sebelum itu periksa, apakah ada log yang dibuat oleh pengguna root di dalam direktori /usr/local/falcon/zookeeper/logs
. Jika ada log, hapuslah.
Sekarang mulailah penjaga kebun binatang.
$ sudo systemctl start zookeeper
$ systemctl status zookeeper
$ sudo systemctl enable zookeeper
Setelah memulai zookeeper, sekarang kita dapat memulai Kafka.
$ sudo systemctl enable kafka
$ sudo systemctl start kafka
$ systemctl status kafka
Buat pengguna elang
$ sudo adduser falcon --shell=/bin/false --no-create-home --system --group
Membuat direktori elang
$ sudo mkdir -p /data/falcon/log/ /data/falcon/data /usr/local/falcon/falcon_app
$ sudo chown -R falcon:falcon /etc/falcon/ /data/falcon
Kami sekarang siap mengunduh dan menginstal perangkat lunak Falcon Logscale. Unduh versi stabil falcon logscale terbaru dari sini:
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
Menggunakan editor teks sederhana, buat file konfigurasi falcon logscale, server.conf
di direktori /etc/falcon
. Anda perlu memasukkan beberapa variabel lingkungan dalam file konfigurasi ini untuk menjalankan Humio di satu server atau instance. Di bawah ini adalah pengaturan dasar tersebut:
$ 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=:9092
EXTERNAL_URL=http://:8080
PUBLIC_URL=http://
HUMIO_SOCKET_BIND=0.0.0.0
HUMIO_HTTP_BIND=0.0.0.0
Terakhir buat file falcon.service
di dalam direktori /etc/systemd/system/
dan tempel konten di bawah ini
[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
Mulai server skala log falcon dengan menjalankan perintah berikut:
$ sudo systemctl start falcon
Periksa kesalahan apa pun di ujung elang:
$ journalctl -fu falcon
Kami juga dapat memeriksa kesalahan log skala log di sini: /data/falcon/log
Jika tidak ada error, Anda dapat mengakses situs falcon logscale dengan mengunjungi http://
di browser Anda.