Sie müssen in der Lage sein, 48 Stunden komprimierte Daten in 80 % Ihres RAM zu speichern.
Sie benötigen genügend Hyper-Threads/vCPUs (jeweils 1 GB/s Suche), um 24 Stunden Daten in weniger als 10 Sekunden durchsuchen zu können.
Sie benötigen Speicherplatz, um Ihre komprimierten Daten zu speichern. Füllen Sie Ihre Festplatte niemals zu mehr als 80 %.
Falcon Logscale empfiehlt mindestens 16 CPU-Kerne, 32 GB Arbeitsspeicher und eine 1-GBit-Netzwerkkarte für die Einrichtung eines einzelnen Servers in einer Produktionsumgebung. Der Speicherplatz auf der Festplatte hängt von der Menge der pro Tag aufgenommenen Daten und der Anzahl der Aufbewahrungstage ab. Dies wird wie folgt berechnet: Aufbewahrungstage x injizierte GB / Komprimierungsfaktor. Dadurch wird der benötigte Speicherplatz für einen einzelnen Server bestimmt.
In diesem Dokument verwendetes Setup:
Daten: 200-GB-Partition unter /data-Partition
RAM: 32 GB
CPU: 4 Kerne
Kafka-Version: 2.13-3.3.2
Zookeeper-Version: 3.7.1
Humio Falcon-Version: 1.136.1
Erhöhen Sie das Limit für geöffnete Dateien:
Für den Produktionseinsatz muss Humio in der Lage sein, viele Dateien für Sockets und tatsächliche Dateien aus dem Dateisystem offen zu halten.
Sie können die tatsächlichen Grenzwerte für den Prozess überprüfen, indem Sie Folgendes verwenden:
PID=`ps -ef | grep java | grep humio-assembly | head -n 1 | awk '{print $2}'` cat /proc/$PID/limits | grep 'Max open files'
Die minimal erforderlichen Einstellungen hängen von der Anzahl der offenen Netzwerkverbindungen und Datenquellen ab. Es schadet nicht, diese Grenzwerte für den Falcon-Prozess hoch anzusetzen. Empfohlen wird ein Wert von mindestens 8192 .
Sie können dies mit einem einfachen Texteditor tun, um eine Datei mit dem Namen 99-falcon-limits.conf im Unterverzeichnis /etc/security/limits.d/ zu erstellen. Kopieren Sie diese Zeilen in diese Datei:
#Raise limits for files: falcon soft nofile 250000 falcon hard nofile 250000
Erstellen Sie eine weitere Datei mit einem Texteditor, dieses Mal im Unterverzeichnis /etc/pam.d/ , und nennen Sie sie common-session . Kopieren Sie diese Zeilen hinein:
#Apply limits: session required pam_limits.so
Überprüfen Sie noexec im Verzeichnis /tmp
Überprüfen Sie die Dateisystemoptionen unter /tmp. Falcon Logscale nutzt den Zstandard-Echtzeitkomprimierungsalgorithmus von Facebook, der die Möglichkeit erfordert, Dateien direkt aus dem konfigurierten temporären Verzeichnis auszuführen.
Die Optionen für das Dateisystem können mit mount überprüft werden:
$ 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)
Sie können noexec vorübergehend entfernen, indem Sie mount verwenden, um das Verzeichnis erneut bereitzustellen:
mount -oremount,exec /tmp
Um das Noexec-Flag dauerhaft zu entfernen, aktualisieren Sie /etc/fstab, um das Flag aus den Optionen zu entfernen:
tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0
Humio erfordert eine Java-JVM der Version 17 oder höher, um ordnungsgemäß zu funktionieren. (Dokument wurde aktualisiert, um JDK 21 zu verwenden, da Logscale die Unterstützung für JDK-Versionen unter 17 bald einstellen wird)
Laden Sie das neueste komprimierte JDK 21 x64-Archiv hier herunter: https://download.oracle.com/java/21/archive/jdk-21.0.2_linux-x64_bin.tar.gz
Installieren von JDK21 Durch Entpacken des komprimierten Archivs: Extrahieren Sie das JDK-TAR-Archiv in das Verzeichnis /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
Fügen Sie zunächst den Kafka-Systembenutzer wie folgt hinzu
$ sudo adduser kafka --shell=/bin/false --no-create-home --system --group
Kafka herunterladen:
$ curl -o kafka_2.13-3.3.2.tgz https://dlcdn.apache.org/kafka/3.3.2/kafka_2.13-3.3.2.tgz
Erstellen Sie die folgenden Verzeichnisse
$ mkdir /data /usr/local/falcon
Entpacken Sie Kafka in das Verzeichnis /usr/local/falcon
$ sudo tar -zxf kafka_2.13-3.3.2.tgz /usr/local/falcon/
Erstellen Sie das folgende Verzeichnis
$ 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
Navigieren Sie zu /usr/local/falcon/kafka/config
und bearbeiten Sie dann die folgenden Details der Datei server.properties
.
broker.id=1 log.dirs=/data/kafka/log delete.topic.enable = true
Erstellen Sie nun eine Datei mit dem Namen kafka.service
im Verzeichnis /etc/systemd/system
und fügen Sie die folgenden Details in diese Datei ein.
[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
Wenn wir uns den Abschnitt [Einheit] ansehen, werden wir sehen, dass dafür der Zookeeper-Dienst erforderlich ist. Daher müssen wir zookeeper installieren, bevor wir den Kafka-Dienst starten können.
Laden Sie Zookeeper herunter:
$ 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-Systembenutzer wird erstellt
$ sudo adduser zookeeper --shell=/bin/false --no-create-home --system --group
Entpacken Sie Zookeeper in das Verzeichnis /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
Erstellen Sie eine Datei mit dem Namen zoo.cfg
im Verzeichnis /usr/local/falcon/zookeeper/conf
$ sudo vi /usr/local/falcon/zookeeper/conf/zoo.cfg
Fügen Sie die folgenden Zeilen in diese Datei ein
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
Erstellen Sie im data
eine myid
Datei mit nur der Nummer 1
als Inhalt.
$ sudo bash -c 'echo 1 > /data/zookeeper/data/myid'
Erwähnung der JDK-Pfadvariablen, damit Zookeeper diese verwendet
Erstellen Sie eine Datei mit dem Namen java.env
im Verzeichnis /usr/local/falcon/zookeeper/conf
und fügen Sie die folgende Zeile hinzu.
## Adding Custom JAVA_HOME JAVA_HOME="/usr/local/jdk"
Anschließend können Sie Zookeeper starten, um zu überprüfen, ob die Konfiguration funktioniert
Erteilen Sie dem Zookeeper-Verzeichnis die entsprechenden Berechtigungen
$ sudo chown -R zookeeper:zookeeper /usr/local/falcon/apache-zookeeper-3.7.1-bin/
Testen Sie abschließend, ob alles in Ordnung ist oder nicht, indem Sie den Server starten. (Sie müssen es als Root-Benutzer tun)
$ ./bin/zkServer.sh start
Wenn der Server erfolgreich startet, wird die folgende Meldung angezeigt
/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
Jetzt müssen wir einen Dienst erstellen, um zookeeper als Dienst zu starten. Erstellen Sie eine zookeeper.service
-Datei im Verzeichnis /etc/systemd/system/
und fügen Sie die folgenden Zeilen ein
[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
Nachdem alle Dinge korrekt erledigt sind, starten Sie zookeeper, indem Sie den folgenden Befehl ausführen. Überprüfen Sie jedoch vorher, ob im Verzeichnis /usr/local/falcon/zookeeper/logs
ein vom Root-Benutzer erstelltes Protokoll vorhanden ist. Wenn Protokolle vorhanden sind, entfernen Sie diese.
Starten Sie nun zookeeper.
$ sudo systemctl start zookeeper $ systemctl status zookeeper $ sudo systemctl enable zookeeper
Nachdem wir zookeeper gestartet haben, können wir nun Kafka starten.
$ sudo systemctl enable kafka $ sudo systemctl start kafka $ systemctl status kafka
Falcon-Benutzer erstellen
$ sudo adduser falcon --shell=/bin/false --no-create-home --system --group
Falcon-Verzeichnisse erstellen
$ sudo mkdir -p /data/falcon/log/ /data/falcon/data /usr/local/falcon/falcon_app $ sudo chown -R falcon:falcon /etc/falcon/ /data/falcon
Jetzt können wir die Software von Falcon Logscale herunterladen und installieren. Laden Sie hier die neueste stabile Version von Falcon Logscale herunter:
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
Erstellen Sie mit einem einfachen Texteditor die Falcon Logscale-Konfigurationsdatei server.conf
im Verzeichnis /etc/falcon
. Sie müssen einige Umgebungsvariablen in diese Konfigurationsdatei eingeben, um Humio auf einem einzelnen Server oder einer einzelnen Instanz auszuführen. Nachfolgend finden Sie die Grundeinstellungen:
$ 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
Erstellen Sie im letzten Schritt die Datei falcon.service
im Verzeichnis /etc/systemd/system/
und fügen Sie den folgenden Inhalt ein
[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
Starten Sie den Falcon Logscale-Server, indem Sie den folgenden Befehl ausführen:
$ sudo systemctl start falcon
Überprüfen Sie Falcon End auf Fehler:
$ journalctl -fu falcon
Wir können die Logscale-Protokolle auch hier auf Fehler überprüfen: /data/falcon/log
Wenn kein Fehler auftritt, können Sie auf die Falcon Logscale-Site zugreifen, indem Sie in Ihrem Browser http://
aufrufen.