Установка Zabbix на Astra Linux

Я участвовал в большом проекте по настройке системы мониторинга на базе отечественных ОС. В качестве системы использовалась Astra Linux, так что у меня сохранилось некоторое количество заметок по этому поводу. Одну из таких заметок я и хочу организовать в статью по установке сервера мониторинг Zabbix на Astra Linux. Там есть некоторое количество нюансов, связанных с особенностью отечественной ОС.

Онлайн-курс по устройству компьютерных сетей

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

Введение

Для тех, кто не в курсе, напомню, что Astra Linux существует в двух редакциях:

  • Astra Linux Special Edition под релизным названием Смоленск.
  • Astra Linux Common Edition под названием Орел.

Я все работы выполнял на Смоленске, но так как его нельзя свободно скачать, то в статье будет использоваться система Орел. В контексте данной задачи каких-то серьезных отличий нет, но в общем и целом они существуют. Для Орла есть публичный репозиторий, из которого можно ставить необходимые пакеты. Для Смоленска его нет. Надо либо локально с диска все устанавливать, либо где-то в сети разворачивать свой репозиторий.

Важное пояснение! ОС Astra Linux базируется на кодовой базе Debian со всеми вытекающими отсюда последствиями. А какие могут быть последствия? У нас есть все необходимые пакеты от Debian, которые мы можем использовать в Астре. А они нам очень пригодятся, потому что в родной репе Астры версия Zabbix сервера - 3.4. Собственно, поэтому и появилась статья. Я покажу, как получить на Astra Linux последнюю версию Zabbix Server.

При этом есть еще одна проблема. В родных репозиториях Астры самая свежая версия php - 7.0. Используя эту версию, вы не сможете использовать версию Zabbix 5.0 и выше, потому что она требует минимум php 7.2. Если вам достаточно версии zabbix 4.4, то задача по его установке сильно упрощается, так как не надо где-то на стороне обновлять php. Когда я реализовывал этот проект, то Zabbix был как раз 4.4. В этой версии было много обновлений шаблонов, что очень актуально. В 5.0 были основные изменения в интерфейсе, которые не сильно интересовали, поэтому не стали прорабатывать переход на 5-ю ветку.

Установка Zabbix 4.4 на Astra Linux

Я выполню установку Zabbix Server на Astra Linux на базе веб сервера Apache и базы данных PostgreSQL. Версии возьму те, что есть в стандартном репозитории дистрибутива.

Обновляем систему и устанавливаем необходимые пакеты.

# apt install apache2 libapache2-mod-php7.0 postgresql-9.6 php7.0-pgsql

Подготовка astra linux к установке zabbix server

В настройках php - /etc/php/7.0/apache2/php.ini устанавливаем часовой пояс.

date.timezone = Europe/Moscow

В файл /etc/hosts добавьте запись с вашим ip адресом. У меня она вот такая получилась:

10.20.1.31 astra

Если делаете установку на редакции Смоленск и не используете авторизацию в apache, то отключите ее в конфиге /etc/apache2/apache2.conf.

AstraMode off

Теперь можно перезапустить apache и проверить работу веб сервера.

# systemctl reload apache2

Перейдя в браузере по ip адресу сервера, должны увидеть стандартную страницу заглушку apache в Debian.

Проверка работы веб сервера в astralinux

Теперь настроим postgresql. Добавляем в ее конфиг /etc/postgresql/9.6/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

Перезапускаем сервер баз данных.

# systemctl restart postgresql@9.6-main

Дальше надо подключиться к postgresql и создать пользователя с базой данных для zabbix.

# sudo -u postgres psql
CREATE DATABASE ZABBIX;
CREATE ROLE zabbix with login password 'secretparol';
GRANT ALL ON DATABASE zabbix to zabbix;
\q

Создание базы данных zabbix

Не забудьте указать свой пароль. Мой копировать не надо.

Устанавливаем в Astra Linux сам Zabbix Server.

# apt install zabbix-frontend-php zabbix-server-pgsql

Установка Zabbix Server на Astra Linux

Импортируем шаблон базы данных в саму базу, которую сделали ранее.

# cd ~
# gunzip -c /usr/share/doc/zabbix-server-pgsql/create.sql.gz > create.sql
# cat create.sql | sudo -u zabbix psql zabbix

Если получите ошибку:

psql: СБОЙ: error obtaining MAC configuration for user "zabbix"

То сделайте следующее:

# 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

Добавим параметры подключения к БД в конфигурацию Zabbix Server /etc/zabbix/zabbix_server.conf.

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=secretparol

После всех этих действий перезапускаем apache и запускаем zabbix-server.

# systemctl reload apache2
# systemctl start zabbix-server
# systemctl enable zabbix-server

Далее идем в браузер по адресу http://10.20.1.31/zabbix/ и выполняем установку сервера. Не буду на этом подробно останавливаться, там все тривиально. Можно подсмотреть в любой инструкции по установке. Например, в моей же для этой версии. Там все будет идентично, 1 в 1, так как и версия zabbix, и версия debian 9 совпадают.

После завершения установки, заходим в веб интерфейс, используя стандартную учетную запись Admin / zabbix .

Zabbix Server в Astralinux

Теперь нам нужно обновить эту версию до 4.4. Для этого вручную скачиваем пакеты zabbix-server-pgsql и zabbix-frontend-php для Debian 9 из официального репозитория Zabbix - https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix/.

# cd ~
# wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix/zabbix-server-pgsql_4.4.10-1%2Bstretch_amd64.deb
# wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix/zabbix-frontend-php_4.4.10-1%2Bstretch_all.deb

Вручную устанавливаем скачанные пакеты.

# dpkg -i zabbix-server-pgsql_4.4.10-1+stretch_amd64.deb
# dpkg -i zabbix-frontend-php_4.4.10-1+stretch_all.deb

Обновление Zabbix до 4.4

Так как мы перезаписал прошлый конфиг сервера новой версией, надо сходить и еще раз прописать доступ к базе данных. После этого перезапускаем сервер.

# systemctl restart zabbix-server

Идем в веб интерфейс и проверяем версию сервера.

Zabbix 4.4 в Astra Linux

Если вы хотите увидеть новые шаблоны от версии 4.4, то их надо будет вручную импортировать из github - https://github.com/zabbix/zabbix/tree/release/5.0/templates. Автоматически они не приедут на сервер с обновлением. Ветку надо брать 5-ю, так как в 4-й только изменения от 4.0 будут.

На этом установка Zabbix 4 на Astra Linux завершена. Если вас устраивает эта версия, то настраивайте дальше сервер и используйте. Если же вы хотите получить 5-ю версию, то продолжаем настройку.

Обновление php 7.0 до 7.4 в Astra Linux

Для обновления до 5-й версии Zabbix в Astra Linux нам надо сначала обновить php 7.0 до 7.4. Для этого надо либо вручную скачать все необходимые пакеты и обновить их, либо воспользоваться сторонним репозиторием.

Очевидно, что второй способ быстрее и проще, хотя и вызывает вопросы безопасности и происхождения пакетов. Но в рамках данной статьи, я не буду это рассматривать. Очевидно, что для максимальной безопасности, вам надо взять исходники, самим собрать пакеты и положить в свой репозиторий, либо установить локально.

Подключаем сторонний репозиторий для php пакетов.

# wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
# echo "deb https://packages.sury.org/php/ stretch main" |sudo tee /etc/apt/sources.list.d/php.list

И отключаем родной репозиторий Астры в /etc/apt/sources.list.

#deb https://download.astralinux.ru/astra/stable/orel/repository/ orel main contrib non-free

Обновляем список пакетов и устанавливаем обновления php.

# apt update && apt upgrade

Ставим php 7.4 основных пакетов:

# apt install libapache2-mod-php7.4 php7.4-pgsql

Обновление php 7.0 до 7.4 в Astra Linux

Проверяем версию php в консоли.

# php -v
PHP 7.4.13 (cli) (built: Nov 30 2020 20:40:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.13, Copyright (c), by Zend Technologies

Теперь сразу же подключите обратно отключенный репозиторий астры и еще раз обновите все пакеты. На всякий случай убедитесь, что у вас установлен пакет php7.4-mbstring. Без него веб интерфейс Zabbix работать не будет.

Дальше вам нужно отключить в настройках веб сервера модуль php7.0 и подключить 7.4. Для этого надо заменить символьные ссылки в /etc/apache2/mods-enabled с

php7.0.conf -> ../mods-available/php7.0.conf
php7.0.load -> ../mods-available/php7.0.load

на

php7.4.conf -> ../mods-available/php7.4.conf
php7.4.load -> ../mods-available/php7.4.load

После этого осталось только перезапустить apache.

# apachectl restart

Все готово, мы установили версию php 7.4 в Astra Linux. Можно приступать к обновлению Zabbix Server до версии 5.

Установка Zabbix 5 на Astra Linux

Для обновления Zabbix Server до 5-й версии, делаем все то же самое, что и ранее для 4-й. Скачиваем пакеты нужной нам версии и устанавливаем их вручную.

# wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix/zabbix-server-pgsql_5.0.6-2%2Bstretch_amd64.deb
# wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix/zabbix-frontend-php_5.0.6-2%2Bbuster_all.deb

Обращаю внимание на ссылку для zabbix-frontend-php. Хоть в названии и присутствует имя релиза buster, данный пакет подходит для всех версий Debian, а все остальные пакеты объявлены deprecated.

Устанавливаем Zabbix 5 на Astra Linux:

# dpkg -i zabbix-server-pgsql_5.0.6-2+stretch_amd64.deb
# dpkg -i zabbix-frontend-php_5.0.6-2+buster_all.deb

Если будет заменен дефолтный конфиг сервера, не забудьте его актуализировать. В целом по обновлению zabbix все. Перезапускаем сервер и идем в веб интерфейс.

# systemctl restart zabbix-server

Установка Zabbix 5 на Astra Linux

Не забудьте почистить кэш браузера после обновления web интерфейса. Иначе в новой версии все будет криво отображаться, как-будто что-то сломано.

Заключение

На этом у меня все. Я показал, как на Astra Linux установить самую свежую версию Zabbix Server. Предлагаю далее проследовать в статью по базовой настройке zabbix.

А вам доводилось работать с Astra Linux? Поделитесь впечатлением. По сути тот же Debian, а вот графическое окружение уникальное и мне оно очень понравилось. Уж точно лучше Gnome.

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

13 комментариев

  1. Ставлю сервер zabbix 5.0 на Astra Linux Orel, и на этапе запуска скрипта create.sql.. выдает сообщение "ВАЖНО: для роли "zabbix" вход запрещен". Что я не так сделал? Команду "GRANT ALL ON DATABASE zabbix to zabbix;" отработал как надо, потому непонимаю в чем дело.

  2. Дмитрий

    Здравствуйте! Когда я захожу на сервер Zabbix в 192.168.1.1/zabbix/setup.php всё появляется, но при нажатии на кнопку next step ничего не происходит, просто обновляется страница. Что это может быть?

    • Попробуйте другой браузер и почистите кэш и куки. Сталкивался и не раз с таким, что в каком-то браузере не работает нормально установщик.

      • Дмитрий

        Увы,но нет. Я нашёл одно решение (Единственное в гугле) где пишут про смену владельца: Yes! You are right! Directroy /var/lib/php/sessions was owner apache, I changed it to nginx.
        Но я не совсем понимаю как это сделать. Папка Sessions у меня пустая. Указываю chmod 777 /var/lib/php/sessions. Но ничего не помогает. Может быть я что-то не правильно указываю?

        • Владельцем директории с сессиями /var/lib/php/sessions надо сделать того пользователя, под которым работает веб сервер. Я уже не помню, от кого он в астре работает. То ли nginx, то ли www-data.

  3. Отличная статья! Подскажите, а можно выявлять мандатные метки уровня , кто сидит в zabbix ?
    не секретная сессия или секретная

    • Это не знаю. Мандатную систему вообще не настраивал. Да и в целом почти не знаком с этой системой. Только в контексте задач по мониторингу с ней встречался на одном проекте.

  4. Спасибо.
    Умеет ли Астра с ZFS ?

    • Есть ли она там из коробки в базовых репах - не знаю. Но по факту под капотом там сейчас Debian 9, так что технически поставить и настроить можно все, что работает на этой системе.

  5. Михаил

    Работаю постоянно. Спасибо за статью, прекрасно изложено и без излишеств. Но хотелось бы подчеркнуть, что установка сторонних пакетов в Смоленске недопустима. По крайней мере, если вы будете это сдавать приёмке. Так что точно придётся оставаться на 3.4

    • Это очевидно из самой концепции системы. Но версию zabbix выбирал сам заказчик, который ставил Смоленск. Сейчас такое дело, что всем надо "отечественное" даже без привязки к безопасности.

  6. Дмитрий

    Довелось. В целом приемлемо, хотя из 26 машин за 2 месяца работы 4 вышли из стоя с ошибкой ФС: бабули выключили не дожидаясь полного выключения (ext4), на машинах с windows я такого уже давно не припомню. А так работают вполне сносно как рабочие машинки, нареканий нет. На сервер не рискнул, там старый добрый centos стоит.

    • Очень странно. За всю свою карьеру ни разу не видел, чтобы ext4 умирала от аварийного выключения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar