Zabbix: различия между версиями
PastorDi (обсуждение | вклад) Новая страница: «=Введение= Эта статья описывает установку и первоначальную настройку системы Zabbix на дистрибутиве ROSA платформы rosa2021.1 или новее. Система Zabbix предназначена для организации мониторинга инфраструктуры. Данная инструкция ставит своей целью привести при...» |
PastorDi (обсуждение | вклад) Нет описания правки |
||
Строка 121: | Строка 121: | ||
</pre> | </pre> | ||
Предлагается запретить входить в MySQL под root по сети. Соглашаемся. | Предлагается запретить входить в MySQL под root по сети. Соглашаемся. | ||
<pre> | |||
... Success! | |||
By default, MariaDB comes with a database named 'test' that anyone can | |||
access. This is also intended only for testing, and should be removed | |||
before moving into a production environment. | |||
Remove test database and access to it? [Y/n] y | |||
</pre> | |||
из коробки существует пустая база данных с публичным доступом. Предлагается ее удалить. Соглашаемся. | |||
<pre> | |||
- Dropping test database... | |||
... Success! | |||
- Removing privileges on test database... | |||
... Success! | |||
Reloading the privilege tables will ensure that all changes made so far | |||
will take effect immediately. | |||
Reload privilege tables now? [Y/n] y | |||
</pre> | |||
Предлагается перезагрузить таблицы привелегий, чтобы гарантировать вступление изменений в силу. Соглашаемся. | |||
<pre> | |||
... Success! | |||
Cleaning up... | |||
All done! If you've completed all of the above steps, your MariaDB | |||
installation should now be secure. | |||
Thanks for using MariaDB! | |||
</pre> | |||
Работа скрипта первоначальной настройки MySQL закончена. | |||
Теперь, согласно документации Zabbix (https://www.zabbix.com/documentation/5.0/ru/manual/appendix/install/db_scripts#mysql), произведем настройки базы данных для него. | |||
Войдем в консоль MySQL под пользователем root: | |||
mysql -uroot -p | |||
Запросит пароль, введите ранее установленный пароль root MySQL. | |||
Создадим базу данных для Zabbix: | |||
create database zabbix character set utf8 collate utf8_bin; | |||
Теперь создадим пользователя базы данных и дадим ему доступ к ней: | |||
grant all privileges on zabbix.* to zabbix@localhost identified by 'пароль'; | |||
Пароль можно создать уже приводившейся выше командой, которую можно выполнить в другой консоли: | |||
head -c 100 /dev/random | base64 | head -c 20 | |||
Сохраните созданный пароль. | |||
Выйдите из консоли MySQL: | |||
quit; | |||
Перейдите в папку, в которой хранится стандартное наполнение БД Zabbix, которым нужно наполнить базу данных до начала работы с ней: | |||
cd /usr/share/zabbix-mysql | |||
Импортируйте дамп базы данных: | |||
mysql -uzabbix -p'пароль' zabbix < schema.sql | |||
Вместо "пароль" укажите установленный ранее пароль пользователя MySQL "zabbix". | |||
Аналогично выполните еще 2 SQL-запроса: | |||
mysql -uzabbix -p'пароль' zabbix < images.sql | |||
mysql -uzabbix -p'пароль' zabbix < data.sql | |||
Обратите внимание, что пароль внутри использованных команды сохранился в логах консоли. Очистите историю bash: | |||
history -cw | |||
И историю MySQL: | |||
rm -fv ~/.mysql_history | |||
Если в процессе настройки базы данных что-то пошло не так, можно удалить всё и начать заново: | |||
systemctl stop mariadb | |||
rm -fvr /var/lib/mysql/* | |||
systemctl start mariadb | |||
И далее mysql_secure_installation по инструкции выше. | |||
Создайте резервную копию файла конфигурации: | |||
cp -v /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.orig | |||
Откройте файл в nano или любом другом редакторе: | |||
nano /etc/zabbix/zabbix_server.conf | |||
Замените строку | |||
# DBPassword= | |||
на: | |||
DBPassword=пароль | |||
где вместо "пароль" укажите пароль пользователя MySQL "zabbix". | |||
Рекомендуется также заменить стандартный порт на любой другой, чтобы меньше ботов пытались сканировать сервер. Для этого замените строку | |||
# ListenPort=10051 | |||
на: | |||
ListenPort=15889 | |||
где вместо 15889 — любое число от 1024 до 32767. | |||
Посмотрите отличия между исходным файлом и тем, что получилось после редактирования: | |||
diff -u --color /etc/zabbix/zabbix_server.conf.orig /etc/zabbix/zabbix_server.conf | |||
Запустите сервер Zabbix в варианте для работы с MySQL: | |||
systemctl start zabbix-server-mysql | |||
Убедитесь, что он запустился успешно: | |||
systemctl status zabbix-server-mysql | |||
Добавьте его в автозапуск: | |||
systemctl enable zabbix-server-mysql | |||
=Настройка веб-интерфейса= |
Версия от 23:28, 10 марта 2025
Введение
Эта статья описывает установку и первоначальную настройку системы Zabbix на дистрибутиве ROSA платформы rosa2021.1 или новее.
Система Zabbix предназначена для организации мониторинга инфраструктуры.
Данная инструкция ставит своей целью привести пример настройки Zabbix в дистрибутиве ROSA, в т.ч. описав специфичные для ROSA нюансы, однако не ставит своей целью описать все возможные сценарии настройки и использования Zabbix. Рекомендуется изучить официальную документацию по Zabbix: https://www.zabbix.com/documentation/5.0/ru/manual
Данная инструкция заменяет раздел "Установка" из официальной документации.
Все описанные в инструкции действия выполняются от root, если не указано иное.
Настройках всех возможных конфигураций не рассматривается, рассмотрена следующая типовая конфигурация сервера с Zabbix:
- сервер Zabbix
- веб-интерфейс через веб-сервер Apache HTTPD
- база данных MySQL (MariaDB)
Также рассмотрена типовая настройка агента Zabbix.
В репозитории rosa2021.1 поставляется Zabbix 5.0 LTS.
Развертывание рекомендуется выполнять в отдельной виртуальной машине, которую можно сделать на основе серверного образа ROSA или в контейнере на основе rootfs. Доступные сборки rosa2021.1 здесь: https://abf.io/platforms/rosa2021.1/products
Сервер Zabbix
Минимальная настройка сервера
Установите необходимые пакеты:
dnf install zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql mariadb locales-ru
Это установит сервер Zabbix, веб-интерфейс Zabbix, компоненты для использованияч MySQL в качестве базы данных и саму базу данных — MariaDB (форк MySQL).
Установите имя хоста (это делать не обязательно, но рекомендуется), например:
hostnamectl set-hostname zabbix.infrastructure.dumalogiya.ru
Можно установить FQDN имя хоста, которое затем будет резолвится через ваш DNS-сервер. В приведенном примере на DNS-сервере, обслуживающем домен dumalogiya.ru, будет добавлена A-запись zabbix.infrastructure.dumalogiya.ru, указывающая на необходимый IP-адрес. Это позволит иметь дсотуп к серверу из внешней сети. Будьте осторожны с открытием дсотупа из внешней сети, возможно, стоит настроить firewall и использовать VPN.
Настройка базы данных MySQL Произведите тестовый запуск базы данных:
systemctl start mariadb
Убедитесь, что она запустилась без ошибок:
systemctl status mariadb
При ее первом запуске будут созданы файлы в /var/lib/mysql.
Добавьте базу данных в автозапуск:
systemctl enable mariadb
Запустите скрипт первоначальной настройки БД:
mysql_secure_installation
Ниже приведен вывод скрипта с комментариями к задаваемым им вопросам. Для ответа на вопросы нужно ввести Y для утвердительного или N для отрицательного ответа и нажать Enter.
[root@rosa-2019 ~]# /usr/bin/mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and haven't set the root password yet, you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on...
Просто нажмите Enter.
Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have your root account protected, so you can safely answer 'n'. Switch to unix_socket authentication [Y/n] y
У нас спросили, нужно ли на время первоначальной настройки запретить авторизацию для подключений по сети. Соглашаемся.
Enabled successfully! Reloading privilege tables.. ... Success! You already have your root account protected, so you can safely answer 'n'. Change the root password? [Y/n]
У нас спросили, хотим ли мы поставить root-пароль MySQL. Обратите внимание, что это пароль пользователя root внутри MySQL, но не в ОС. Соглашаемся.
New password: Re-enter new password:
2 раза вводим придуманный пароль, создать случайный пароль можно, например, так:
head -c 100 /dev/random | base64 | head -c 20
Запишите установленный пароль в безопасное место, например, в базу данных Keepass с помощью доступной в репозиториях ROSA графической программы KeepassXC (пакет keepassxc).
Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y
Предлагается удалить существующего из коробки анонимного пользователя. Он не нужен. Соглашаемся.
... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y
Предлагается запретить входить в MySQL под root по сети. Соглашаемся.
... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y
из коробки существует пустая база данных с публичным доступом. Предлагается ее удалить. Соглашаемся.
- Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y
Предлагается перезагрузить таблицы привелегий, чтобы гарантировать вступление изменений в силу. Соглашаемся.
... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Работа скрипта первоначальной настройки MySQL закончена.
Теперь, согласно документации Zabbix (https://www.zabbix.com/documentation/5.0/ru/manual/appendix/install/db_scripts#mysql), произведем настройки базы данных для него.
Войдем в консоль MySQL под пользователем root:
mysql -uroot -p
Запросит пароль, введите ранее установленный пароль root MySQL.
Создадим базу данных для Zabbix:
create database zabbix character set utf8 collate utf8_bin;
Теперь создадим пользователя базы данных и дадим ему доступ к ней:
grant all privileges on zabbix.* to zabbix@localhost identified by 'пароль';
Пароль можно создать уже приводившейся выше командой, которую можно выполнить в другой консоли:
head -c 100 /dev/random | base64 | head -c 20
Сохраните созданный пароль.
Выйдите из консоли MySQL:
quit;
Перейдите в папку, в которой хранится стандартное наполнение БД Zabbix, которым нужно наполнить базу данных до начала работы с ней:
cd /usr/share/zabbix-mysql
Импортируйте дамп базы данных:
mysql -uzabbix -p'пароль' zabbix < schema.sql
Вместо "пароль" укажите установленный ранее пароль пользователя MySQL "zabbix".
Аналогично выполните еще 2 SQL-запроса:
mysql -uzabbix -p'пароль' zabbix < images.sql mysql -uzabbix -p'пароль' zabbix < data.sql
Обратите внимание, что пароль внутри использованных команды сохранился в логах консоли. Очистите историю bash:
history -cw
И историю MySQL:
rm -fv ~/.mysql_history
Если в процессе настройки базы данных что-то пошло не так, можно удалить всё и начать заново:
systemctl stop mariadb rm -fvr /var/lib/mysql/* systemctl start mariadb
И далее mysql_secure_installation по инструкции выше.
Создайте резервную копию файла конфигурации:
cp -v /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.orig
Откройте файл в nano или любом другом редакторе:
nano /etc/zabbix/zabbix_server.conf
Замените строку
# DBPassword=
на:
DBPassword=пароль
где вместо "пароль" укажите пароль пользователя MySQL "zabbix".
Рекомендуется также заменить стандартный порт на любой другой, чтобы меньше ботов пытались сканировать сервер. Для этого замените строку
# ListenPort=10051
на:
ListenPort=15889
где вместо 15889 — любое число от 1024 до 32767.
Посмотрите отличия между исходным файлом и тем, что получилось после редактирования:
diff -u --color /etc/zabbix/zabbix_server.conf.orig /etc/zabbix/zabbix_server.conf
Запустите сервер Zabbix в варианте для работы с MySQL:
systemctl start zabbix-server-mysql
Убедитесь, что он запустился успешно:
systemctl status zabbix-server-mysql
Добавьте его в автозапуск:
systemctl enable zabbix-server-mysql