Вам необходимо иметь возможность хранить 48 часов сжатых данных в 80% оперативной памяти.
Вам нужно достаточное количество гиперпотоков/виртуальных процессоров (каждый из которых обеспечивает поиск со скоростью 1 ГБ/с), чтобы иметь возможность осуществлять поиск данных за 24 часа менее чем за 10 секунд.
Вам необходимо дисковое пространство для хранения сжатых данных. Никогда не заполняйте диск более чем на 80%.
Falcon Logscale рекомендует использовать как минимум 16 ядер ЦП, 32 ГБ памяти и сетевую карту 1 ГБ для одного сервера, установленного в производственной среде. Дисковое пространство будет зависеть от объема принимаемых данных в день и количества дней хранения. Это рассчитывается следующим образом: дни хранения x введенный ГБ/коэффициент сжатия. Это определит необходимое дисковое пространство для одного сервера.
Настройка, используемая в этом документе:
Данные: раздел 200 ГБ в разделе /data.
ОЗУ: 32 ГБ
Процессор: 4 ядра
Версия Кафки: 2.13-3.3.2
Версия Zookeeper: 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:
$ 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 или более поздней версии. (Документ обновлен для использования 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. Распаковав сжатый архив: извлеките tar-архив jdk в каталог /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
Теперь создайте файл с именем 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
Если мы посмотрим на раздел [Unit], то увидим, что для него требуется служба Zookeeper. Поэтому нам нужно установить Zookeeper, прежде чем мы сможем запустить службу Kafka.
Скачать 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, чтобы убедиться, что конфигурация работает.
Предоставьте соответствующие разрешения каталогу 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 как службу. Создайте файл 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, выполнив приведенную ниже команду. Но перед этим проверьте, существует ли какой-либо журнал, созданный пользователем root в каталоге /usr/local/falcon/zookeeper/logs
. Если есть логи, удалите их.
Теперь запустите 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
Используя простой текстовый редактор, создайте файл конфигурации масштаба журнала falcon, 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
Запустите сервер logscale falcon, выполнив следующую команду:
$ sudo systemctl start falcon
Проверьте наличие ошибок в falcon end:
$ journalctl -fu falcon
Мы также можем проверить журналы logscale на наличие ошибок здесь: /data/falcon/log
Если ошибок нет, вы можете получить доступ к сайту Falcon Logscale, посетив http://
в своем браузере.