Инструкция по установке Glaber 3.5 на AstraLinux 1.7.x
Общая информация
Установка Glaber на Debian10 и AstraLinux не отличается, используются одни и те же пакеты из линейки Debian Buster (Debian 10).
В зависимости от версии AstraLinux, есть различные варианты установки фронтенда.
В AstraLinux 1.7.3 поставляется php версии 7.3, для работы Glaber необходимо использовать версию 7.4 или выше.
В качестве решения можно использовать php версии 8.1, от версии AstraLinux 1.7.5
Подготовка (для чистой астры)
Если устанавливаем не с диска:
Раскомментируем официальные репозитории астры, в /etc/apt/sources.list
, добавляем репозиторий для вашей версии astra и обновляем списки, например от 1.7.6:
deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-base/ 1.7_x86-64 main contrib non-free
Не забываем сконфигурировать локали, если этого не делали
sudo dpkg-reconfigure locales
en_US.UTF-8
en_US ISO-8859-1
en_US.ISO-8859-15
ru_RU.UTF-8
ru_RU.ISO-8859-5
По умолчанию выбрать ru_RU.UTF-8
Устанавливаем правильный часовой пояс
timedatectl set-timezone Asia/Yekaterinburg
Asia/Yekaterinburg
ваш часовой пояс, например Europe/Moscow
.
В файле /etc/systemd/timesyncd.conf
прописываем
NTP=192.168.1.1
Установка пакетов
Устанавливаем необходимые утилиты и библиотеки:
apt install libopenipmi0 fping libssh-4 fontconfig-config fonts-dejavu fonts-dejavu-core fonts-dejavu-extra libfontconfig1 libgd3 libjbig0 libjpeg62-turbo libjpeg62-turbo-dev libodbc1 libonig5 libpq5 libsensors-config libsensors5 libtiff5 libwebp6 libxpm4
Работа с snmp v3, поддержка сильного шифрования
В Astra Linux включена поддержка протоколов сильного шифрования в SNMP. Поэтому в версии для Astra, Glaber собирается с версией 5.9 net-snmp с включенным сильным шифрованием.
Даже если в конфигурации не используется протокол SNMP версии 3, для корректной работы программы, требуется правильная версия библиотеки, можно скачать и установить готовые бинарные пакеты или собрать поддержку самостоятельно:
Удалить установленные пакеты net-snmp
По умолчанию в системе могут быть установлены пакеты от net-snmp версии 5.7, в которой шифрование работать не будет. Их нужно удалить.
Получите имена пакетов командой
apt list --installed | grep snmp
apt remove libsnmp30 libsnmp-perl snmp snmpd libsnmp40 libsnmp-base
Скачиваем готовые версии
Для поддержки snmpv3 нужно скачать готовые пакеты net-snmp 5.9, собранные с поддержкой сильного шифрования для AstraLinux. Необходимо скачать и вручную установить пакеты net-snmp
https://glaber.io/repo/common/astra/pool/main/n/net-snmp/
в каталоге находятся три основных пакета которые нужно установить поочередно, согласно их именованию:
wget https://glaber.io/repo/common/astra/pool/main/n/net-snmp/s1_libsnmp-base_5.9%2Bastra173.deb
wget https://glaber.io/repo/common/astra/pool/main/n/net-snmp/s2_libsnmp40_5.9%2Bastra173.deb
wget https://glaber.io/repo/common/astra/pool/main/n/net-snmp/s3_snmp_5.9%2Bastra173.deb
dpkg -i s1_libsnmp-base_5.9+astra173.deb
dpkg -i s2_libsnmp40_5.9+astra173.deb
dpkg -i s3_snmp_5.9+astra173.deb
Для приема snmp трапов рекомендуем использовать worker glb_snmp_worker
вместо траппера и службы snmptrapd. Поэтому устанавливать демон траппера необходимости нет.
Для самостоятельной сборки Glaber в системе Astra потребуется установить dev пакет libsnmp-dev_5.9+dfsg-4+deb11u1_amd64
из каталога extra.
Также рекомендуется установить пакет snmp-mibs-downloader
, содержащий в себе библиотеку mib файлов.
Пакет не входит в дистрибутив Astra Linux, но может быть использован от Debian 10 версии. Glaber будет работать без этого пакета, но не сможет транслировать текстовые описания MIB в числовые, если таковые используются.
apt install snmp-mibs-downloader
Установка приложения - сервера
При наличии доступа в интернет пакеты устанавливать можно из репозитариев напрямую через пакетные менеджеры.\ Получаем ключ и подключаем репозиторий
wget --quiet -O - https://glaber.io/repo/key/repo.gpg | apt-key add -
echo "deb https://glaber.io/repo/3.5/deb/astra-1.7 1.7.6 main" > /etc/apt/sources.list.d/glaber.list
apt update
apt install glaber-server-pgsql
Примечание: данный способ установки подразумевает, что отсутствует возможность автоматической установки пакетов из репозиториев, например по требованиям информационной безопасности или при работе системы в закрытых контурах
dpkg -i glaber-server-pgsql_x.у.z-...-astra-1.7_amd64.deb
Настройка и инициализация базы данных postgres
Имеющаяся в дистрибутиве AstraLinux 11-я версия будет нормально работать с Glaber.
apt install postgresql
стартуем сервер БД, добавляем в автозагрузку:
systemctl start postgresql
systemctl enable postgresql
Создаем пользователя БД, инициализируем БД начальными данными, БД будет называться glaber, имя пользователя для БД используем glaber:
sudo -u postgres createuser --pwprompt glaber
sudo -u postgres createdb -O glaber glaber
/usr/share/doc/glaber-server-pgsql/create.sql.gz
.
Инициализируем базу:
zcat /usr/share/doc/glaber-server-pgsql/create.sql.gz | sudo -u glaber psql glaber
Настройка сервера
Прописываем пользователя и пароль к БД в файле /etc/glaber/glaber_server.conf
(пользователь glaber, пароль тот, который был задан)
Устанавливаем в конфигурации флаг совместимости со старыми версиями БД:
AllowUnsupportedDBVersions=1

Запуск сервера glaber:
systemctl start glaber-server
/var/log/glaber/glaber_server.log
)
Установка и настройка фронтенда
Важно установить пакеты php и расширений php версии 7.4 или более новые.
В репозитории deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-base/
находятся пакеты php8.1, для примера поставим их.
apt install php8.1
apt install php8.1-pgsql php8.1-gd php8.1-fpm php8.1-mbstring php8.1-bcmath php8.1-cli php8.1-common php8.1-ldap php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php-bcmath php-json
Настраиваем PHP
В файле /etc/php/8.1/fpm/php.ini
ставим значения:
memory_limit = 512M
post_max_size = 64M
max_execution_time = 300
upload_max_filesize = 32M
max_input_time = 300
Asia/Yekaterinburg
вписываем ваш часовой пояс который устанавливали вначале.
date.timezone = Asia/Yekaterinburg
Ставим фронтенд glaber
apt install glaber-frontend-php
dpkg -i glaber-frontend-php_x.у.z-...-astra-1.7_amd64.deb
Установка nginx:
apt install nginx nginx-common nginx-core libnginx-mod-http-image-filter libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream
Если установлен apache2 то nginx будет с ним конфликтовать, его стоит либо удалить либо перенести на другой порт, пока что остановим его процесс и удалим из автозагрузки.
sudo apachectl stop
systemctl disable apache2
systemctl start nginx
systemctl enable nginx
apt install glaber-nginx-conf
dpkg -i glaber-nginx-conf_x.у.z-...-astra-1.7_amd64.deb
В репозитории, также, есть конфигурация для apache
glaber-apache-conf
, но данное руководство не покрывает его настройку, и рекомендуется использовать nginx.
Настраиваем фронтенд
В файле конфигурации /etc/nginx/nginx.conf
в блоке http
вписываем
client_max_body_size 32M;

Настройка сайта
В блоке server
раскомментируем порт и вписываем адрес сервера
listen 80;
server_name glaber.yourcompany.loc glaber;

Прописываем сокет и скрипт файл
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME /usr/share/glaber$fastcgi_script_name;

Удаляем ссылку на дефолтный сайт, чтобы вместо заглушки Nginx у нас загружалась страничка Glaber
unlink /etc/nginx/sites-enabled/default
cp /usr/share/glaber/conf/glaber.conf.php.example /etc/glaber/web/glaber.conf.php
/etc/glaber/web/glaber.conf.php
указываем тип базы POSTGRESQL
, имя пользователя glaber
, пароль, который был задан при создании пользователя glaber.
Копируем шрифт для графиков в каталог с фронтендом, так как по умолчанию устанавливается симлинк.
rm /usr/share/glaber/assets/fonts/graphfont.ttf
cp /etc/alternatives/glaber-frontend-font /usr/share/glaber/assets/fonts/graphfont.ttf
systemctl restart nginx
systemctl restart php8.1-fpm
(localhost)
должна открываться страница:

Логин Admin
Пароль zabbix
Видим что веб интерфейсе нет ошибок
Установка ClickHouse:
Скачиваем публичный ключ и прописываем репозиторий
apt-key adv --keyserver keyserver.ubuntu.com --recv 3E4AD4719DDE9A38
echo "deb http://repo.yandex.ru/clickhouse/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
apt update
apt install clickhouse-server clickhouse-client
default
(например glaber
), запоминаем.
Добавляем в автозагрузку и стартуем
systemctl enable clickhouse-server
clickhouse start
touch history.sql
CREATE DATABASE glaber;
CREATE TABLE glaber.history_dbl ( day Date,
itemid UInt64,
clock DateTime,
hostname String,
itemname String,
ns UInt32,
value Float64
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(day)
ORDER BY (itemid, clock)
TTL day + INTERVAL 6 MONTH;
--
CREATE TABLE glaber.history_uint ( day Date,
itemid UInt64,
clock DateTime,
hostname String,
itemname String,
ns UInt32,
value UInt64
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(day)
ORDER BY (itemid, clock)
TTL day + INTERVAL 6 MONTH;
CREATE TABLE glaber.history_str ( day Date,
itemid UInt64,
clock DateTime,
hostname String,
itemname String,
ns UInt32,
value String
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(day)
ORDER BY (itemid, clock)
TTL day + INTERVAL 6 MONTH;
--
CREATE TABLE glaber.history_log ( day Date,
itemid UInt64,
clock DateTime,
logeventid UInt64,
source String,
severity Int16,
hostname String,
itemname String,
ns UInt32,
value String
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(day)
ORDER BY (itemid, clock)
TTL day + INTERVAL 6 MONTH;
--
CREATE TABLE glaber.trends_dbl
(
day Date,
itemid UInt64,
clock DateTime,
value_min Float64,
value_max Float64,
value_avg Float64,
count UInt32,
hostname String,
itemname String
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(day)
ORDER BY (itemid, clock)
TTL day + toIntervalMonth(24)
SETTINGS index_granularity = 8192;
--
CREATE TABLE glaber.trends_uint
(
day Date,
itemid UInt64,
clock DateTime,
value_min UInt64,
value_max UInt64,
value_avg UInt64,
count UInt32,
hostname String,
itemname String
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(day)
ORDER BY (itemid, clock)
TTL day + toIntervalMonth(24)
SETTINGS index_granularity = 8192;
clickhouse-client --password --multiquery < history.sql
Тюнинг Clickhouse
Создаём дополнительные файлы настройки с отключением лишних штук.
Задаём ограничение времени хранения логов. В
/etc/clickhouse-server/config.d/query_log.xml
пишем:
<yandex>
<query_log replace="1">
<database>system</database>
<table>query_log</table>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
<engine>
ENGINE = MergeTree
PARTITION BY event_date
ORDER BY (event_time)
TTL event_date + interval 90 day
SETTINGS ttl_only_drop_parts=1
</engine>
</query_log>
</yandex>
/etc/clickhouse-server/config.d/disable_query_thread_log.xml
пишем:
<yandex>
<query_thread_log remove="1"/>
</yandex>
/etc/clickhouse-server/config.d/disable_metric_logs.xml
пишем:
<yandex>
<metric_log remove="1" />
<asynchronous_metric_log remove="1" />
</yandex>
/etc/clickhouse-server/config.d/part_log.xml
пишем:
<yandex>
<part_log remove="1" />
</yandex>
/etc/clickhouse-server/users.d/log_queries.xml
пишем:
<yandex>
<profiles>
<default>
<log_queries>1</log_queries>
</default>
</profiles>
</yandex>
/etc/clickhouse-server/users.d/enable_on_disk_operations.xml
пишем:
<yandex>
<profiles>
<default>
<max_bytes_before_external_group_by>2000000000</max_bytes_before_external_group_by>
<max_bytes_before_external_sort>2000000000</max_bytes_before_external_sort>
</default>
</profiles>
</yandex>
Настройка glaber для clickhouse
В конфигурации /etc/glaber/glaber_server.conf
Сначала меняем стандартные настройки
Большинство настроек уже прописано по умолчанию, далее приведены описания настроек и стандартные значения
Нужно увеличить кеш для конфигурации, ориентир - 1,5G на каждые 1млн items, минимум 256Мб.
CacheSize=256M
dbsyncer
в Glaber переваривает 20-30kNVPS, так что на большинстве систем достаточно одного. Если вычисляется много триггеров, то следует увеличить. В среднем хватает одного синкера на 100тыс триггеров и 2млн метрик.
StartDBSyncers=1
StartPollers=10
StartPollersUnreachable=1
HousekeepingFrequency=1
StartTrappers=4
StartPingers=2
Специфичные настройки для Glaber
Воркеры - если используются воркер-серверы (прием логов, прием данных в режиме сервера по другим протоколам), то нужно запустить хотя бы один контролирующий сервер:
StartGlbWorkers=1
Асинхронный поллер SNMP
один поллер может снимать метрики со скоростью около 10kNVPS. Рекомендуется запускать такое количество поллеров, чтобы на каждый приходилось не более 2млн метрик. Поллер использует один порт, но много соединений, может потребоваться увеличение conntrack
таблиц фаервола.
StartGlbSNMPPollers=1
DefaultICMPMethod=glbmap
DefaultICMPMethod=fping
StartGlbPingers=1
Пингер glbmap не поддерживает Vlan и маршрутизацию локального компьютера. Нужно или ставить перед ним какой-то роутер, который будет этим заниматься, или жёстко прописать работу через один Vlan, указав номер интерфейса и мак маршрутизатора. Или использовать по старинке fping
GlbmapOptions=-i ens160 -G 00:50:56:9e:7c:9e
GlbmapLocation=/usr/sbin/glbmap
Асинхронный поллер агентов.
Один поллер держит 6-7kNVPS
StartGlbAgentPollers=1
Отдельный траппер для UI и API
APITrappers используются для ответа на API запросы, опция позволяет разделить мониторинговую и пользовательскую нагрузку на трапперы
StartAPITrappers=2
Менеджер препроцессов
Каждый препроцессор способен обработать до 40-50 тысяч метрик в секунду.
Количество препроцессоров задается опцией
StartGlbPreprocessors=8
Настройка дополнительных путей и коннектов в БД
С версии 2.9.0 вернулась встроенная поддержка clickhouse, поэтому предпочтительнее использовать её вместо glb_hist_clickhouse
HistoryModule=clickhouse;{"url":"http://127.0.0.1:8123", "username":"default", "password":"glaber", "dbname":"glaber", "disable_reads":100, "timeout":10 }
WorkerScripts=/usr/lib/glaber/workerscripts/
Настройка ValueCache
Glaber периодически дампит кэш метрик, чтобы быстрее запускаться и работать. Просмотр кеша иногда полезен при диагностике проблем.\ Указываем путь
ValueCacheDumpLocation=/tmp/vcdump
Значения 300 хватит для большинства инсталляций
ValueCacheDumpFrequency = 300
mkdir /tmp/vcdump/
chmod 777 /tmp/vcdump/
chown -R glaber:glaber /tmp/vcdump/
mkdir /usr/sbin/glbmap
chmod +s /usr/sbin/glbmap
clickhouse-client
который выбрали для пользователя default
при установке
nano /etc/clickhouse-server/users.xml
<password>ваш пароль</password>
Установка агента
Скачиваем и устанавливаем пакет
apt install glaber-agent
dpkg -i glaber-agent_x.y.z-...-astra-1.7_amd64.deb
Завершение настройки
Удаляем файл конфигурации
rm /etc/glaber/web/glaber.conf.php
clickhouse restart
service postgresql restart
service nginx restart
service php8.1-fpm restart
service glaber-server restart
service glaber-agent restart
systemctl enable nginx php8.1-fpm clickhouse-server postgresql glaber-server glaber-agent
Далее вход для суперадмина по умолчанию
Логин: Admin
Пароль: zabbix