Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
    с установленным обновлением БЮЛЛЕТЕНЬ № 20210611SE16 (оперативное обновление 7)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12.43

Требования

Система мониторинга Zabbix построена на современном гипертекстовом сервере Apache (apache2), использует СУБД postgresql (или другие СУБД) и интерпретатор сценариев PHP. Система мониторинга состоит из сервера Zabbix и агентов мониторинга, располагающихся на клиентах. В состав сервера Zabbix входят серверная служба и web-интерфейс для администрирования серверной служы. Для работы web-интерфейса Zabbix требуется следующее программное обеспечение:


ПриложениеВерсияКомментарии
Apache1.3.12 или более поздняя
PHP5.4.0 или более поздняя
Расширения PHP:
gd2.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)
libXML2.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 байт.

Подготовка системы

Установка пакетов

Установить необходимые пакеты:

sudo apt update
sudo apt install zabbix-server-pgsql zabbix-frontend-php php-pgsql

Настройка работы с включенными МРД и МКЦ

Для работы с защищенной СУБД postgresql с включенным мандатным управлением доступом (МРД) и мандатным контролем целостности (МКЦ):

  1. Назначить метки безопасности служебным пользователям postgres и zabbix:
    1. Метка безопасности служебного пользователя postgres
      1. Нулевая классификационная метка:
        sudo pdpl-user -l 0:0
      2. Полный набор неиерархических категорий целостности ("высокая целостность"):
        sudo pdpl-user -i 63 postgres
        Требуется в для выполнения команд от имени пользователя postgres в терминале администратора с высокой целостность (используется далее в примерах).

    2. Метка безопасности служебного пользователя zabbix (нулевая классификационная метка):
      sudo pdpl-user -l 0:0 zabbix
  2. Предоставить служебному пользователю postgres право чтения базы данных меток безопасности локальных пользователей:
    sudo setfacl -d -m u:postgres:r /etc/parsec/{macdb,capdb}
    sudo setfacl -R -m u:postgres:r /etc/parsec/{macdb,capdb}
    sudo setfacl -m u:postgres:rx /etc/parsec/{macdb,capdb}

Настройка службы Apache2

В файле /etc/php/*/apache2/php.ini удалить символ "точка с запятой" перед параметром date.timezone и указать часовой пояс, например Europe/Moscow

/etc/php/*/apache2/php.ini
[Date]
date.timezone = Europe/Moscow

Отредактировать файл /etc/hosts

/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 указать параметр:

/etc/apache2/apache2.conf
AstraMode off

Перезапустить службу apache2:

sudo systemctl reload apache2

Настройка СУБД PostgreSQL

Отредактировать конфигурационный файл /etc/postgresql/*/main/pg_hba.conf:

/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 systemctl restart postgresql
Создать пользователя СУБД zabbix и базу данных zabbix. Владельцем созданной базы данных сделать пользователя zabbix:
sudo -u postgres psql

CREATE DATABASE ZABBIX;
CREATE USER zabbix WITH ENCRYPTED PASSWORD '12345678';
GRANT ALL ON DATABASE zabbix to zabbix;
ALTER DATABASE zabbix OWNER TO zabbix;
\q

Настройка zabbix

Импорт шаблона БД zabbix:

Для Astra Linux Common Edition, Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 с установленным обновлением БЮЛЛЕТЕНЬ № 20210611SE16 (оперативное обновление 7) и более поздних очередных обновлений Astra Linux:

zcat /usr/share/zabbix-server-pgsql/{schema,images,data}.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

Настройка WEB-интерфейса zabbix

Для Astra Linux Common Edition, Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 с установленным обновлением БЮЛЛЕТЕНЬ № 20210611SE16 (оперативное обновление 7) и более поздних обновлений ОС (включая Astra Linux Special Edition x.7):

  1. Скопировать в файл /etc/zabbix/zabbix.conf.php один из файлов  /usr/share/zabbix/conf/zabbix.conf.php.example или /usr/share/doc/zabbix-frontend-php/examples/zabbix.conf.php.example:

    sudo cp /usr/share/zabbix/conf/zabbix.conf.php.example /etc/zabbix/zabbix.conf.php

  2. Установить права доступа к созданному файлу:

    sudo chown www-data:www-data /etc/zabbix/zabbix.conf.php

  3. В файле /etc/zabbix/zabbix.conf.php задать значения переменных TYPE (тип используемой СУБД) и PASSWORD (пароль пользователя zabbix СУБД):

    $DB['TYPE'] = 'POSTGRESQL';
    
    ...
    $DB['PASSWORD'] = '<пароль_пользователя_zabbix_СУБД>';
  4. Перезапустить службу apache2:

    sudo systemctl reload apache2

  5. В конфигурационном файле /etc/zabbix/zabbix_server.conf раскомментировать строку, задающую пароль доступа к БД zabbix, и указать там пароль:

    DBPassword=<пароль>
  6. Разрешить автоматический запуск службы zabbix при перезагрузке ОС и запустить службу zabbix:

    sudo systemctl enable zabbix-server
    sudo systemctl start zabbix-server

  7. Открыть WEB-страницу zabbix в WEB-браузере. Имя для входа: Admin (с заглавной буквы), пароль для входа: zabbix

    firefox localhost/zabbix

Установка и настройка zabbix агента

Установить пакет:

sudo apt install zabbix-agent

В конфигурационном файле /etc/zabbix/zabbix_agentd.conf в строке Server указать адрес IP-сервера:

/etc/zabbix/zabbix_agentd.conf
### 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

Перезапустить агента:

sudo systemctl restart zabbix-agent

В WEB-интерфейсе сервера zabbix перейти в "Настройка" → "Узлы сети" → "Создать узел сети", после чего указать название добавляемого узла, отображаемое имя, IP-адрес и группу (для выбора группы начать вводить ее имя или нажать кнопку "Выбрать"):

Перейти в закладку "Шаблоны", в строке "Присоединение новых шаблонов" начать печатать имя шаблона ("lin..."),  из полученного списка выбрать "Template OS Linux by Zabbix Agent" или "Linux by Zabbix Agent" в зависимости от используемой версии сервера.

Нажать кнопку "Добавить" для сохранения введенных данных, после чего компьютер будет добавлен в список узлов для проверки.