Программное обеспечение на российской ОС
Никогда не думал, что буду писать статьи, но наболело.
Стартовавшая в начале года кампания по переводу серверов на российскую операционную систему затронула и государственную компанию в которой я тружусь. Прилетела директива срочно все серверы на отечественную ОС.
И так вышло, что для старта процесса перехода на отечественный ИТ-продукт выбрали систему мониторинга 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 один из самых безобидных сервисов. А постоянно все компилировать из исходников, да еще на достаточном объеме серверов то еще веселье, которое однозначно увеличит трудозатраты на сопровождение и повысит вероятность появления ошибки в процессе обновления.
Установка Zabbix
Zabbix — это универсальный инструмент мониторинга, способный отслеживать динамику работы серверов и сетевого оборудования, быстро реагировать на внештатные ситуации и предупреждать возможные проблемы с нагрузкой. Система мониторинга Zabbix может собирать статистику в указанной рабочей среде и действовать в определенных случаях заданным образом.
1. Подготовка сервера с ОС Астра Линукс Орел для установки Zabbix.
Включаем root и задаём пароль для root:
sudo hostnamectl set-hostname zabbix.entnet.ru
sudo apt update
sudo apt upgrade
sudo apt autoremove -y
sudo apt install apache2 libapache2-mod-php7.0 postgresql-9.6 php7.0-pgsql -y
3. Устанавливаем параметры часового пояса
В файле php.ini удалить символ ‘»точка с запятой» перед параметром date/timezone и дописать часовой пояс, например Europe/Moscow
nano /etc/php/7.0/apache2/php.ini
4. Если компьютер еще не в домене то внесем именные атрибуты в файл Host.
5. Перезапустим веб сервер Apache2
sudo systemctl restart apache2
6. Настраиваем PGSQL и правим файл pg_hba.conf
nano /etc/postgresql/9.6/main/pg_hba.conf
7.Перезапустить кластер PGSQL.
sudo systemctl restart Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
8.Создаим пользователя и базу данных zabbix в PGSQL:
CREATE DATABASE ZABBIX;
CREATE ROLE zabbix with login password '12345678';
GRANT ALL ON DATABASE zabbix to zabbix;
\q
sudo apt install zabbix-frontend-php zabbix-server-pgsql -y
chmod 777 /etc/zabbix/
10 Сделаем бэкап архива с дампами и распакуем их:
mkdir /usr/share/zabbix-server-pgsql/gz
cp /usr/share/zabbix-server-pgsql/*.gz /usr/share/zabbix-server-pgsql/gz
gunzip /usr/share/zabbix-server-pgsql/*.gz
11. Залить дампы в базы (от пользователя postgres):
psql -U zabbix -f /usr/share/zabbix-server-pgsql/schema.sql zabbix
psql -U zabbix -f /usr/share/zabbix-server-pgsql/images.sql zabbix
psql -U zabbix -f /usr/share/zabbix-server-pgsql/data.sql zabbix
sudo systemctl restart apache2
sudo systemctl enable zabbix-server
sudo systemctl start zabbix-server
14. Редактируем конфигурационный файл zabbix_server
sudo nano /etc/zabbix/zabbix_server.conf
Ищем строчку ниже через редактор nano при помощи поиска Ctrl + W и раскомменчиваем её, указываем пароль от базы данных
15. В файле 000-default.conf DocumentRoot /var/www/html меняем на DocumentRoot /usr/share/zabbix
nano /etc/apache2/sites-available/000-default.conf
sudo systemctl restart apache2
sudo systemctl restart zabbix-server
16. В файле php.ini выставляем нужные параметры
nano /etc/php/7.0/apache2/php.ini
sudo systemctl restart zabbix-server
sudo systemctl restart apache2
18.Установим PG_admin для удобства управления базой данных
sudo apt install pgadmin3 -y
19. Переходим к настройке сервера Zabbix
Login: Admin Passwd: zabbix
20. Далее идет интуитивно понятная установка сервера Zabbix.Нажимаем Next step.
21. Если файл php.ini настроен по инструкции то ошибок быть не должно.
22. Подключаем созданную базу данных. Пароль от базы данных zabbix мы определили при создании.
23. Вносим имя нашего сервера мониторинга zabbix.entnet.ru
24. Проверяем внесенные данные. Если все верно жмем Next Step.
25. Настройка сервера Zabbix прошла успешно. Нажимаем Finish.
26. Напоминаю что Логин: Admin Passwd: zabbix
27. Остается русифицировать интерфейс сервера Zabbix. Заходим в администрирование — user. Нажимаем на пользователя Администратор. Выбираем нужный нам язык и жмем Update.
27. Для получения параметров с необходимого сервера нужно на него установить агента Zabbix.
28. Отредактируем конфигурационный файл aгента Zabbix.
nano /etc/zabbix/zabbix_agentd.conf
В нем необходимо раскоментировать #Server и указать адрес сервера Zabbix.
Zabbix [new]
Zabbix is an enterprise-class open source monitoring solution for network and application monitoring.
Install Zabbix-Server
Zabbix-server can be installed on any server. Same server with Astra or dedicated server:
- Go to Zabbix website: https://www.zabbix.com/download
- Choose Zabbix v.5.4
- Choose your platform
- Launch commands from the instruction on the Zabbix site
Find out more information on official site: https://www.zabbix.com/manuals
Install Zabbix-Agent
Zabbix-agent should be installed on the same server with Astra. If you installed zabbix-server on the same server, just skip this step.
- Go to Zabbix website: https://www.zabbix.com/download_agents
- Choose your platform
- Launch commands from the instruction on the Zabbix site
Configure Zabbix-Agent
- Open configuration file: sudo nano /etc/zabbix/zabbix_agentd.conf
- Find option Server= and set the IP or DNS name of the server where Zabbix is installed
- Add the parameter: UnsafeUserParameters=1
- Save the file by pressing Ctrl+O and exit the editor by pressing: Ctrl+X
- Download scripts for zabbix-agent: curl -L https://cesbo.com/download/astra/zabbix/agent.tar.gz | tar -zxC /opt
- Scripts will be saved to /opt/zabbix_agent directory
- set rights: chmod +x /opt/zabbix_agent/*
- Setup configuration file: curl -Lo /etc/zabbix/zabbix_agentd.d/astra.conf https://cesbo.com/download/astra/zabbix/astra.conf
- Install the dependencies for scripts:
- on RedHat-like systems: yum install python3 python3-requests
- on Debian-like systems: apt-get install python3 python3-requests
- Restart the agent service: service zabbix-agent restart
Configure Astra
- Open the Aastra web interface
- Go to Settings -> Users
- Create user with the Administrator type to access the zabbix-agent to Astra API
Configure Zabbix
- Download Zabbix template for Astra to your computer: https://cesbo.com/download/astra/zabbix/zbx_astra.xml
- Open the Zabbix Admin interface: http://zabbix-server
- By default, login and password is Admin
- Change your password
- Go to Configuration -> Templates
- Click Import in the upper-right corner
- Click Browse . Open downloaded template: zbx_astra.xml
- Click Import . After successful import you will see on top the green message Imported successfully
- And again go to Configuration -> Templates and choose Astra API monitoring
- Choose Macros tab and fill the Value column:
- First row set password for zabbix in Astra (user you created in previous step)
- Second row set username for zabbix in Astra (same, user created in previous step)
- Last row is a port for astra web-interface. If you have several instances set all ports separated by comma. For example: 8000,8001,8002
- After filling all options, click the Update button
- Go to Configuration — > Hosts and click Create host in the upper-right corner
- Fill next fields:
- Hostname — any name for server with Astra. for example Astra
- Groups — select Cesbo_templates or create new group
- Interfaces — click add , choose Agent , specify the IP or DNS name of the server with zabbix-agent
- Open the Templates tab:
- Link new templates: Astra API monitoring , and if you want to control overall system status append Linux by Zabbix agent
- Save the changes, and in 10 minutes, you will have graphs and triggers about the status of streams and adapters