توصي Falcon Logscale بوجود 16 مركزًا لوحدة المعالجة المركزية (CPU) على الأقل، وذاكرة بسعة 32 جيجابايت، وبطاقة شبكة بسعة 1 جيجابايت لخادم واحد تم إعداده في بيئة الإنتاج. ستعتمد مساحة القرص على كمية البيانات المتناولة يوميًا وعدد أيام الاحتفاظ. يتم حساب ذلك على النحو التالي: أيام الاستبقاء × غيغابايت المحقونة / عامل الضغط. سيحدد ذلك مساحة القرص المطلوبة لخادم واحد.
الإعداد المستخدم في هذا المستند:
البيانات: قسم 200 جيجابايت في قسم / البيانات
ذاكرة الوصول العشوائي: 32 جيجابايت
وحدة المعالجة المركزية: 4 النوى
نسخة كافكا: 2.13-3.3.2
إصدار برنامج Zookeeper: 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 .
يمكنك القيام بذلك باستخدام محرر نصوص بسيط لإنشاء ملف باسم 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:
$ 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 ليعمل بشكل صحيح. (تم تحديث المستند لاستخدام 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
في البداية أضف مستخدم نظام كافكا كما يلي
$ 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
قم بإزالة كافكا إلى الدليل /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 قبل أن نتمكن من بدء خدمة كافكا.
تنزيل برنامج 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
قم بإنشاء ملف باسم 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 بحيث يستخدم برنامج Zookeeper ذلك
قم بإنشاء ملف باسم 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 كخدمة. قم بإنشاء ملف 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
بعد الانتهاء من كل الأمور بشكل صحيح، قم بتشغيل برنامج Zookeeper عن طريق تنفيذ الأمر أدناه. ولكن قبل ذلك التحقق، إذا كان هناك أي سجل تم إنشاؤه بواسطة المستخدم الجذر داخل الدليل /usr/local/falcon/zookeeper/logs
. إذا كان هناك أي سجلات، قم بإزالتها.
الآن ابدأ حارس حديقة الحيوان.
$ sudo systemctl start zookeeper
$ systemctl status zookeeper
$ sudo systemctl enable zookeeper
بعد بدء تشغيل برنامج Zookeeper يمكننا الآن تشغيل كافكا.
$ 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
يمكننا أيضًا التحقق من سجلات مقياس السجل بحثًا عن الأخطاء هنا: /data/falcon/log
إذا لم يكن هناك خطأ، يمكنك الوصول إلى موقع falcon logscale عن طريق زيارة http://
على متصفحك.