คุณต้องสามารถเก็บข้อมูลที่บีบอัดได้ 48 ชั่วโมงใน 80% ของ RAM ของคุณ
คุณต้องการไฮเปอร์เธรด/vCPU ที่เพียงพอ (แต่ละอันให้การค้นหา 1GB/s) เพื่อให้สามารถค้นหาข้อมูลได้ตลอด 24 ชั่วโมงในเวลาน้อยกว่า 10 วินาที
คุณต้องมีเนื้อที่ดิสก์เพื่อเก็บข้อมูลที่ถูกบีบอัด อย่าเติมดิสก์ของคุณเกิน 80%
Falcon Logscale แนะนำอย่างน้อย 16 CPU core, หน่วยความจำ 32 GB และการ์ดเครือข่าย 1 GBit สำหรับเซิร์ฟเวอร์เดียวที่ตั้งค่าในสภาพแวดล้อมการใช้งานจริง พื้นที่ดิสก์จะขึ้นอยู่กับจำนวนข้อมูลที่นำเข้าต่อวันและจำนวนวันที่เก็บรักษา ซึ่งคำนวณได้ดังต่อไปนี้: วันการเก็บรักษา x GB ที่ฉีดเข้าไป / ปัจจัยการบีบอัด ซึ่งจะกำหนดพื้นที่ดิสก์ที่จำเป็นสำหรับเซิร์ฟเวอร์เครื่องเดียว
ตั้งค่าที่ใช้ในเอกสารนี้:
ข้อมูล: พาร์ติชัน 200GB ที่ /data พาร์ติชัน
แรม: 32GB
ซีพียู: 4 คอร์
คาฟคาเวอร์ชัน: 2.13-3.3.2
ผู้ดูแลสัตว์เวอร์ชัน: 3.7.1
เวอร์ชัน Humio Falcon: 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
คุณสามารถทำได้โดยใช้โปรแกรมแก้ไขข้อความธรรมดาเพื่อสร้างไฟล์ชื่อ 99-falcon-limits.conf ในไดเร็กทอรีย่อย /etc/security/limits.d/ คัดลอกบรรทัดเหล่านี้ลงในไฟล์นั้น:
#Raise limits for files: falcon soft nofile 250000 falcon hard nofile 250000
สร้างไฟล์อื่นด้วยโปรแกรมแก้ไขข้อความ คราวนี้อยู่ในไดเร็กทอรีย่อย /etc/pam.d/ และตั้งชื่อเป็น common-session คัดลอกบรรทัดเหล่านี้ลงไป:
#Apply limits: session required pam_limits.so
ตรวจสอบ noexec บนไดเร็กทอรี /tmp
ตรวจสอบตัวเลือกระบบไฟล์ใน /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)
คุณสามารถลบ noexec ชั่วคราวได้โดยใช้ mount เพื่อ 'ติดตั้ง' ไดเรกทอรีใหม่:
mount -oremount,exec /tmp
หากต้องการลบแฟล็ก noexec อย่างถาวร ให้อัพเดต /etc/fstab เพื่อลบแฟล็กออกจากตัวเลือก:
tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0
Humio ต้องใช้ Java เวอร์ชัน 17 หรือใหม่กว่า JVM เพื่อให้ทำงานได้อย่างถูกต้อง (Doc อัปเดตเพื่อใช้ JDK 21 เนื่องจาก Logscale จะยกเลิกการรองรับ JDK เวอร์ชันต่ำกว่า 17 ในไม่ช้า)
ดาวน์โหลดไฟล์เก็บถาวรที่บีบอัด 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
Untar 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
ตอนนี้สร้างไฟล์ชื่อ kafka.service
ใต้ไดเร็กทอรี /etc/systemd/system
และวางรายละเอียดต่อไปนี้ภายในไฟล์นั้น
[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
หากเราดูที่ส่วน [หน่วย] เราจะเห็นว่าจำเป็นต้องได้รับบริการจากผู้ดูแลสวนสัตว์ ดังนั้นเราจึงต้องติดตั้งผู้ดูแลสัตว์ก่อนจึงจะสามารถเริ่มบริการคาฟคาได้
ดาวน์โหลด 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
การสร้างผู้ใช้ระบบผู้ดูแลสัตว์
$ sudo adduser zookeeper --shell=/bin/false --no-create-home --system --group
Untar 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
สร้างไฟล์ชื่อ zoo.cfg
ภายในไดเร็กทอรี /usr/local/falcon/zookeeper/conf
$ 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
สร้างไฟล์ myid
ในไดเร็กทอรีย่อย data
โดยมีเพียงหมายเลข 1
เป็นเนื้อหา
$ sudo bash -c 'echo 1 > /data/zookeeper/data/myid'
กล่าวถึงตัวแปรเส้นทาง jdk เพื่อให้ผู้ดูแลสวนสัตว์ใช้สิ่งนั้น
สร้างไฟล์ชื่อ java.env
ภายในไดเร็กทอรี /usr/local/falcon/zookeeper/conf
และเพิ่มบรรทัดต่อไปนี้
## Adding Custom JAVA_HOME JAVA_HOME="/usr/local/jdk"
จากนั้นคุณสามารถเริ่ม Zookeeper เพื่อตรวจสอบว่าการกำหนดค่าใช้งานได้
ให้สิทธิ์ที่เหมาะสมแก่ไดเร็กทอรีผู้ดูแลสัตว์
$ sudo chown -R zookeeper:zookeeper /usr/local/falcon/apache-zookeeper-3.7.1-bin/
สุดท้ายทดสอบว่าทุกอย่างเรียบร้อยหรือไม่โดยเริ่มเซิร์ฟเวอร์ (คุณต้องทำในฐานะผู้ใช้รูท)
$ ./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.service
ภายในไดเร็กทอรี /etc/systemd/system/
และวางบรรทัดต่อไปนี้
[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
หลังจากทำทุกอย่างอย่างถูกต้องแล้วให้เริ่มผู้ดูแลสัตว์โดยดำเนินการคำสั่งด้านล่าง แต่ก่อนการตรวจสอบนั้น หากมีบันทึกใด ๆ ที่สร้างโดยผู้ใช้รูทภายในไดเร็กทอรี /usr/local/falcon/zookeeper/logs
หากมีบันทึกใด ๆ ให้ลบออก
ตอนนี้เริ่มต้นผู้ดูแลสัตว์
$ 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
ใช้โปรแกรมแก้ไขข้อความอย่างง่าย สร้างไฟล์คอนฟิกูเรชัน falcon logscale server.conf
ในไดเร็กทอรี /etc/falcon
คุณจะต้องป้อนตัวแปรสภาพแวดล้อมบางตัวในไฟล์การกำหนดค่านี้เพื่อรัน 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=:9092 EXTERNAL_URL=http:// :8080 PUBLIC_URL=http:// HUMIO_SOCKET_BIND=0.0.0.0 HUMIO_HTTP_BIND=0.0.0.0
ในขั้นตอนสุดท้ายให้สร้างไฟล์ falcon.service
ภายในไดเร็กทอรี /etc/systemd/system/
และวางเนื้อหาด้านล่าง
[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
ตรวจสอบข้อผิดพลาดในส่วนท้ายของเหยี่ยว:
$ journalctl -fu falcon
นอกจากนี้เรายังสามารถตรวจสอบบันทึก logscale เพื่อหาข้อผิดพลาดได้ที่นี่: /data/falcon/log
หากไม่มีข้อผิดพลาด คุณสามารถเข้าถึงไซต์ falcon logscale ได้โดยไปที่ http://
บนเบราว์เซอร์ของคุณ