Я участвовал в большом проекте по настройке системы мониторинга на базе отечественных ОС. В качестве системы использовалась Astra Linux, так что у меня сохранилось некоторое количество заметок по этому поводу. Одну из таких заметок я и хочу организовать в статью по установке сервера мониторинг Zabbix на Astra Linux. Там есть некоторое количество нюансов, связанных с особенностью отечественной ОС.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Введение
Для тех, кто не в курсе, напомню, что 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
В настройках 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.
Теперь настроим 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
Не забудьте указать свой пароль. Мой копировать не надо.
Устанавливаем в Astra Linux сам Zabbix Server.
# apt install zabbix-frontend-php zabbix-server-pgsql
Импортируем шаблон базы данных в саму базу, которую сделали ранее.
# 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 .
Теперь нам нужно обновить эту версию до 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
Так как мы перезаписал прошлый конфиг сервера новой версией, надо сходить и еще раз прописать доступ к базе данных. После этого перезапускаем сервер.
# systemctl restart zabbix-server
Идем в веб интерфейс и проверяем версию сервера.
Если вы хотите увидеть новые шаблоны от версии 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 в консоли.
# 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
Не забудьте почистить кэш браузера после обновления web интерфейса. Иначе в новой версии все будет криво отображаться, как-будто что-то сломано.
Заключение
На этом у меня все. Я показал, как на Astra Linux установить самую свежую версию Zabbix Server. Предлагаю далее проследовать в статью по базовой настройке zabbix.
А вам доводилось работать с Astra Linux? Поделитесь впечатлением. По сути тот же Debian, а вот графическое окружение уникальное и мне оно очень понравилось. Уж точно лучше Gnome.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Ставлю сервер zabbix 5.0 на Astra Linux Orel, и на этапе запуска скрипта create.sql.. выдает сообщение "ВАЖНО: для роли "zabbix" вход запрещен". Что я не так сделал? Команду "GRANT ALL ON DATABASE zabbix to zabbix;" отработал как надо, потому непонимаю в чем дело.
Здравствуйте! Когда я захожу на сервер 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.
Отличная статья! Подскажите, а можно выявлять мандатные метки уровня , кто сидит в zabbix ?
не секретная сессия или секретная
Это не знаю. Мандатную систему вообще не настраивал. Да и в целом почти не знаком с этой системой. Только в контексте задач по мониторингу с ней встречался на одном проекте.
Спасибо.
Умеет ли Астра с ZFS ?
Есть ли она там из коробки в базовых репах - не знаю. Но по факту под капотом там сейчас Debian 9, так что технически поставить и настроить можно все, что работает на этой системе.
Работаю постоянно. Спасибо за статью, прекрасно изложено и без излишеств. Но хотелось бы подчеркнуть, что установка сторонних пакетов в Смоленске недопустима. По крайней мере, если вы будете это сдавать приёмке. Так что точно придётся оставаться на 3.4
Это очевидно из самой концепции системы. Но версию zabbix выбирал сам заказчик, который ставил Смоленск. Сейчас такое дело, что всем надо "отечественное" даже без привязки к безопасности.
Довелось. В целом приемлемо, хотя из 26 машин за 2 месяца работы 4 вышли из стоя с ошибкой ФС: бабули выключили не дожидаясь полного выключения (ext4), на машинах с windows я такого уже давно не припомню. А так работают вполне сносно как рабочие машинки, нареканий нет. На сервер не рискнул, там старый добрый centos стоит.
Очень странно. За всю свою карьеру ни разу не видел, чтобы ext4 умирала от аварийного выключения.