- Требования
- Примерный раcчет требуемого пространства на жестком диске
- Подготовка системы
- Настройка конфигурации Parsec
- Установка пакетов
- Настройка службы Apache2
- Настройка СУБД PostgreSQL
- Настройка zabbix
- Импорт шаблона БД zabbix:
- Настройка WEB-интерфейса zabbix
- Установка и настройка zabbix агента
- Программное обеспечение на российской ОС
- 1. Попытка все сделать из родного
- 2. Что Zabbix предлагает
- 3. Собираем сами
Требования
Zabbix построен на современном веб-сервере Apache, ведущих СУБД, и на языке сценариев PHP. В состав комплекта ПО Zabbix входят сервер и WEB-интерфейс. Для работы WEB-интерфейса Zabbix требуется следующее программное обеспечение:
Приложение | Версия | Комментарии |
---|---|---|
Apache | 1.3.12 или более поздняя | |
PHP | 5.4.0 или более поздняя | |
Расширения PHP: | ||
gd | 2.0 или более поздняя | Расширение PHP GD должен поддерживать формат PNG (—with-png-dir), JPEG (—with-jpeg-dir) изображения и FreeType 2 (—with-freetype-dir). |
bcmath | php-bcmath (—enable-bcmath) | |
ctype | php-ctype (—enable-ctype) | |
libXML | 2.6.15 или более поздняя | php-xml или php5-dom, если поставляется как отдельный пакет от поставщика. |
xmlreader | php-xmlreader, если поставляется как отдельный пакет от поставщика. | |
xmlwriter | php-xmlwriter, если поставляется как отдельный пакет от поставщика. | |
session | php-session, если поставляется как отдельный пакет от поставщика. | |
sockets | php-net-socket (—enable-sockets). Требуется для поддержки пользовательских скриптов. | |
mbstring | php-mbstring (—enable-mbstring) | |
gettext | php-gettext (—with-gettext). Требуется для работы переводов. | |
ldap | php-ldap. Требуется только, если в веб-интерфейсе используется LDAP аутентификация. | |
ibm_db2 | Требуется, если используется IBM DB2 в качестве базы для Zabbix. | |
mysqli | Требуется, если используется MySQL в качестве базы для Zabbix. | |
oci8 | Требуется, если используется Oracle в качестве базы для Zabbix. | |
pgsql | Требуется, если используется PostgresSQL в качестве базы для Zabbix. |
Обязательные требования нужны всегда, опциональные требования требуется только для поддержки определённых функций.
Требование | Статус | Описание |
---|---|---|
libpcre | Обязательно | PCRE библиотека требуется для поддержки PCRE совместимых регулярных выражений. Наименование может отличаться в зависимости от GNU/Linux дистрибутива, например ‘libpcre3’ или ‘libpcre1’. Обратите внимание, что необходима именно PCRE(v8.X), тогда как PCRE2(v10.X) библиотека не используется. |
libevent | Требуется для массового сбора метрик и IPMI мониторинга. Версия 1.4 или более новая. Обратите внимание, что для Zabbix прокси это требование опциональное, и нужно только для IPMI мониторинга. | |
OpenIPMI | Опционально | Требуется для поддержки IPMI |
libssh2 | Требуется для поддержки SSH. Версия 1.0 или более новая. | |
fping | Требуется для элементов данных ICMP пинг. | |
libcurl | Требуется для веб-мониторинга, мониторинга VMware и для SMTP аутентификации. Для SMTP аутентификации, требуется версия 7.20.0 или выше. Также необходима для поддержки Elasticsearch. | |
libiksemel | Требуется для поддержки Jabber. | |
libxml2 | Требуется для мониторинга VMware. | |
net-snmp | Требуется для поддержки SNMP. |
Примерный раcчет требуемого пространства на жестком диске
Представленная ниже таблица содержит формулы для расчета требуемого пространства на жёстком диске для системы мониторинга Zabbix:
Параметр | Формула для расчета занимаемого места(в байтах) |
---|---|
Конфигурация Zabbix | Фиксированный размер. Ориентировочно 10МБ или меньше. |
История | дней*(элементов/частота обновления)*24*3600*байт элементы : количество элементов данных дней : количество дней хранения истории частота обновления : среднее значение периода проверки элементов данных байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 90 байт |
Динамика изменений | дней*(элементов/3600)*24*3600*байт элементов : количество элементов данных дней : количество дней хранения динамики изменений байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 90 байт. |
События | дней*событий*24*3600*байт событий : количество событий в секунду. Одно (1) событие в худшем случае. дней : количество дней хранения событий байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 170 байт. |
Подготовка системы
Настройка конфигурации Parsec
В конфигурационном файле Parsec /etc/parsec/mswitch.conf присвоить параметру zero_if_notfound значение yes:
Это необходимо, чтобы пользователь СУБД, сущность которого не создана в ОС, мог входить в СУБД с нулевыми мандатными атрибутами.
Установка пакетов
Установить необходимые пакеты:
Настройка службы Apache2
В файле /etc/php/*/apache2/php.ini удалить символ ‘»точка с запятой» перед параметром date.timezone и указать часовой пояс, например Europe/Moscow
[Date] date.timezone = Europe/Moscow
Отредактировать файл /etc/hosts
127.0.0.1 localhost #127.0.1.1 astra16 192.168.32.218 astra16.example.com astra16
В при работе в Astra Linux Special Edition в конфигурационном файле /etc/apache2/apache2.conf указать параметр :
Перезапустить службу apache2:
Настройка СУБД PostgreSQL
Отредактировать конфигурационный файл /etc/postgresql/*/main/pg_hba.conf:
# TYPE DATABASE USER ADDRESS METHOD local zabbix zabbix trust # IPv4 local connections: host zabbix zabbix 127.0.0.1/32 trust
sudo -u postgres psql
CREATE DATABASE ZABBIX;
CREATE USER zabbix WITH ENCRYPTED PASSWORD ‘12345678’;
GRANT ALL ON DATABASE zabbix to zabbix;
\q
Настройка zabbix
Импорт шаблона БД zabbix:
Для Astra Linux Common Edition, Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 с установленным обновлением БЮЛЛЕТЕНЬ № 20210611SE16 (оперативное обновление 7) и более поздних обновлений ОС (включая Astra Linux Special Edition x.7):
zcat /usr/share/zabbix-server-pgsql/.sql.gz | psql -h localhost zabbix zabbix sudo a2enconf zabbix-frontend-php sudo systemctl reload apache2
Для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 без установленного обновления БЮЛЛЕТЕНЬ № 20210611SE16 (оперативное обновление 7):
gunzip -c /usr/share/doc/zabbix-server-pgsql/create.sql.gz > create.sql
psql -U zabbix -d zabbix -f create.sql
то для устранения ошибки выполнить следующие команды:
usermod -a -G shadow postgres
setfacl -d -m u:postgres:r /etc/parsec/macdb
setfacl -R -m u:postgres:r /etc/parsec/macdb
setfacl -m u:postgres:rx /etc/parsec/macdb
setfacl -d -m u:postgres:r /etc/parsec/capdb
setfacl -R -m u:postgres:r /etc/parsec/capdb
setfacl -m u:postgres:rx /etc/parsec/capdb
pdpl-user -l 0:0 zabbix
Настройка WEB-интерфейса zabbix
Для Astra Linux Common Edition, Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 с установленным обновлением БЮЛЛЕТЕНЬ № 20210611SE16 (оперативное обновление 7) и более поздних обновлений ОС (включая Astra Linux Special Edition x.7):
- Скопировать в файл /etc/zabbix/zabbix.conf.php один из файлов /usr/share/zabbix/conf/zabbix.conf.php.example или /usr/share/doc/zabbix-frontend-php/examples/zabbix.conf.php.example:
$DB['TYPE'] = 'POSTGRESQL'; . $DB['PASSWORD'] = '';
Установка и настройка zabbix агента
В конфигурационном файле /etc/zabbix/zabbix_agentd.conf в строке Server указать адрес IP-сервера:
### Option: Server # List of comma delimited IP addresses, optionally in CIDR notation, or hostnames of Zabbix servers. # Incoming connections will be accepted only from the hosts listed here. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally and '::/0' will allow any IPv4 or IPv6 address. # '0.0.0.0/0' can be used to allow any IPv4 address. # Example: Server=127.0.0.1,192.168.1.0/24. 1,2001:db8::/32,zabbix.domain # # Mandatory: no # Default: # Server= Server=192.168.32.218
В WEB-интерфейсе сервера zabbix перейти в «Настройка» → «Узлы сети» → «Создать узел сети», после чего указать название добавляемого узла, отображаемое имя, IP-адрес и группу (для выбора группы начать вводить ее имя или нажать кнопку «Выбрать»):
Перейти в закладку «Шаблоны», в строке «Присоединение новых шаблонов» начать печатать имя шаблона («lin. «), и з полученного списка выбрать «Template OS Linux by Zabbix Agent»
Нажать кнопку «Добавить» для сохранения введенных данных, после чего компьютер будет добавлен в список узлов для проверки.
Программное обеспечение на российской ОС
Никогда не думал, что буду писать статьи, но наболело.
Стартовавшая в начале года кампания по переводу серверов на российскую операционную систему затронула и государственную компанию в которой я тружусь. Прилетела директива срочно все серверы на отечественную ОС.
И так вышло, что для старта процесса перехода на отечественный ИТ-продукт выбрали систему мониторинга Zabbix, которую завершили внедрять буквально в декабре прошлого года, как раз отказавшись от ряда иностранных проприетарных аналогов.
Посмотрев рынок и послушав разных менеджеров по продажам высшее ИТ-руководство приняло решение выбрать к внедрению в качестве российской Linux системы — Astra Linux CE. Им еще ИТ-архитекторы поддакивали, а технический персонал никто слушать не стал. В итоге, технари взялись за работу и начался бег по граблям с энтузиазмом.
1. Попытка все сделать из родного
Первоначально пошли по правильному пути и поставив Astra Linux CE решили установить Zabbix из родного репозитория. Все хорошо, Zabbix в репозитории есть. Postgres присутствует то же, но. все ужасно старых версий.
У нас уже было развернуто порядка двадцати серверов Zabbix версии 6.0.3 на Postgres 12, да еще и с подключенными временными рядами. А тут 4.0.3 и 9.6 версии соответсвенно. Нас такая «древность» в родном репозитории никак не устраивала.
В силу того, что разработчик Astra Linux разрешает к редакции CE подключать внешние репозитории и даже есть официальные рекомендации на сайте самого разработчика, то именно эти рекомендации мы и выполнили. Пришлось немного помучиться с выбором какой релиз подключать. В итоге остановились на версии buster, соответствующей Debian 10. Тут мы точно не натыкаемся на проблемы версии библиотеки libc6.
Добавили в /etc/apt/source.list ссылку на репозиторий debian который на Yandex живет:
deb http://mirror.yandex.ru/debian/ buster main contrib non-free
Увы, результат нас особенно не порадовал:
2. Что Zabbix предлагает
Устав от родных рекомендаций Astra Linux и экспериментов с ними обратили свой взор на сайт Zabbix. На сайте очень удобно устроен выбор инструкций в зависимости от версии операционной системы. Лучик надежды, что сейчас нам скажут как под Debian 9 можно поставить Zabbix 6 сразу рухнул. Не поддерживается из нативных репозиториев Zabbix. Тогда пошли уже изведанным путем и посмотрели настройки для Debian 10. Вроде бы удача, поддерживается
Пошли по инструкциям от разработчика Zabbix, которые представлены на том же сайте:
# wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-1+debian10_all.deb# dpkg -i zabbix-release_6.0-1+debian10_all.deb# apt update
Все проходит на отлично. После обновления смотрим версию Zabbix сервера и снова разочарование — только надстройка для отладки версии 6.0.4. Установить необходимую нам версию ПО невозможно.
3. Собираем сами
Собрав очередные грабли прибегаем к испробованному, хотя и не совсем правильному в масштабах солидной корпорации, способу — установка из исходников.
Определились, что хотим: Zabbix север версии 6.0.х на Postgres версии 12.х и начинали работать. Как мы уже выяснили ранее, Postgres мы поставит версии 12 не можем из родных или подключенных репозиториев.
Ничего страшного, подключили репозиторий PostgreSQL по рекомендациям с сайта производителя СУБД. Обновили пакеты и получили полный список доступных версий, включая необходимую нам 12-ю.
Воодушевленные запускаем процесс установки и снова неудача. Несовместимость вспомогательных библиотек. Опять во всех репозиториях они старые! Возвращаемся к компиляции и PostgreSQL. Скачиваем сами исходники с родного сайта (https://www.postgresql.org/ftp/source/v12.11/) и не забываем установить несколько необходимых пакетов. Указано сразу и для Postgres и для Zabbix:
apt-get -y install libreadline-dev zlib1g-dev libevent-dev libpcre3-dev
Ну и далее идем строго по инструкции из файла INSTALL и получаем установленный Postgres версии 12.х
Далее так же компилируем Zabbix и в итоге имеем
К чему весь этот пост. Увы, наши отечественные ОС не готовы к внедрению в крупных корпорациях. Не могут они обеспечить корректную поддержку популярного прикладного софта. И популярность у отечественных ОС не такая высокая, чтоб вендоры софта на них ровнялись и поддерживали. Предположу, что такая ситуация продлиться еще три-пять лет, а может и вовсе никогда не исправится. При этом Zabbix один из самых безобидных сервисов. А постоянно все компилировать из исходников, да еще на достаточном объеме серверов то еще веселье, которое однозначно увеличит трудозатраты на сопровождение и повысит вероятность появления ошибки в процессе обновления.