Автор выбрал Computer History Museum для получения пожертвования в рамках программы Write for DOnations.
Zabbix — это программное обеспечение с открытым исходным кодом для мониторинга сетей и приложений. С его помощью можно выполнять мониторинг в режиме реального времени нескольких тысяч метрических показателей, собранных с серверов, виртуальных машин, сетевых устройств и веб-приложений. Эти параметры могут помочь вам определить текущее состояние инфраструктуры ИТ и выявить проблемы, связанные с компонентами аппаратного или программного обеспечения, до того, как на них пожалуется клиент. Полезная информация хранится в базе данных для возможности анализировать данные с течением времени и повышать качество предоставляемых услуг или планировать модернизацию оборудования.
Zabbix использует несколько методов сбора метрических показателей, включая безагентный мониторинг услуг для пользователей и архитектуру клиент-сервер. Для сбора метрических показателей сервера используется маленький агент на отслеживаемом клиенте, который собирает данные и отправляет их на сервер Zabbix. Zabbix поддерживает зашифрованную связь между сервером и подключенными клиентами, что обеспечивает защиту данных во время перемещения по ненадежным сетям.
Сервер Zabbix хранит свои данные в реляционной базе данных, работающей на базе MySQL или PostgreSQL. Также вы можете хранить исторические данные в таких базах данных, как Elasticsearch и TimescaleDB. Zabbix предоставляет веб-интерфейс для возможности просмотра данных и настройки системы.
В этом обучающем модуле мы настроим Zabbix на двух компьютерах Ubuntu 20.04. Один из них будет настроен в качестве сервера Zabbix, а второй — в качестве клиента, который будет отслеживаться. Сервер Zabbix будет использовать базу данных MySQL для записи данных мониторинга и использовать Nginx для обслуживания веб-интерфейса.
Для данного обучающего модуля вам потребуется следующее:
ufw
. На одном сервере вы установите Zabbix. В этом обучающем модуле он будет называться сервер Zabbix. Он будет отслеживать ваш второй сервер, этот второй сервер будет называться второй сервер Ubuntu.your_domain
. Вы можете купить доменное имя на Namecheap, получить его бесплатно на Freenom или воспользоваться услугами любого предпочитаемого регистратора доменных имен.your_domain
указывает на публичный IP-адрес вашего сервера Zabbix.www.``your_domain
указывает на публичный IP-адрес вашего сервера Zabbix.Кроме того, поскольку сервер Zabbix используется для доступа к ценной информации о вашей инфраструктуре, которую вам нужно защищать от несанкционированного доступа, очень важно обеспечить защиту сервера сертификатом TLS/SSL. Это необязательно, но настоятельно рекомендуется. Если вы хотите защитить ваш сервер, следуйте указаниям руководства Let’s Encrypt в Ubuntu 20.04 после шага 3 этого обучающего модуля.
Во-первых, нужно установить Zabbix на сервере, на котором вы установили MySQL, Nginx и PHP. Выполните вход на эту машину в качестве пользователя без прав root:
ssh sammy@zabbix_server_ip_address
Zabbix доступен в диспетчере пакетов Ubuntu, но он уже устарел, поэтому используйте официальный репозиторий Zabbix для установки последней стабильной версии. Загрузите и установите пакет конфигурации репозитория:
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
sudo dpkg -i zabbix-release_5.0-1+focal_all.deb
Результат будет выглядеть следующим образом:
Output
Selecting previously unselected package zabbix-release.
(Reading database ... 64058 files and directories currently installed.)
Preparing to unpack zabbix-release_5.0-1+focal_all.deb ...
Unpacking zabbix-release (1:5.0-1+focal) ...
Setting up zabbix-release (1:5.0-1+focal) ...
Обновите индекс пакета, чтобы новый репозиторий включал:
sudo apt update
Затем установите сервер Zabbix и пользовательский веб-интерфейс с поддержкой базы данных MySQL:
sudo apt install zabbix-server-mysql zabbix-frontend-php
Также установите агент Zabbix, который позволит вам собирать данные непосредственно о статусе сервера Zabbix.
sudo apt install zabbix-agent
Перед тем, как вы сможете использовать Zabbix, необходимо создать базу данных для хранения данных, которые сервер Zabbix будет собирать от своих агентов. Это можно сделать на следующем шаге.
Вам нужно создать новую базу данных MySQL и заполнить ее определенной базовой информацией, чтобы она была пригодна для Zabbix. Также вы создадите конкретного пользователя для этой базы данных, чтобы Zabbix не входил в MySQL с помощью учетной записи root
.
Войдите в MySQL в качестве пользователя root:
sudo mysql
Создайте базу данных Zabbix с поддержкой символов UTF-8:
create database zabbix character set utf8 collate utf8_bin;
Затем создайте пользователя, которого будет использовать сервер Zabbix, предоставьте ему доступ к новой базе данных и установите пароль для пользователя:
create user zabbix@localhost identified by 'your_zabbix_mysql_password';
grant all privileges on zabbix.* to zabbix@localhost;
Он защитит пользователя и базу данных. Выйдите из консоли базы данных.
quit;
Далее вам потребуется импортировать начальную схему и данные. При установке Zabbix вам был предоставлен файл, который сделает это.
Запустите следующую команду для настройки схемы и импорта данных в базу данных zabbix
. Используйте zcat
, так как данные в файле сжаты:
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Введите пароль пользователя MySQL zabbix
, который вы настроил при получении соответствующей инструкции.
Выполнение этой команды может занять одну или две минуты. Если вы видите ошибку ERROR 1045 (28000): Access denied for userzabbix@'localhost' (using password: YES)
, убедитесь, что используете правильный пароль для пользователя zabbix.
Чтобы сервер Zabbix использовал эту базу данных, вам нужно задать пароль базы данных в файле конфигурации сервера Zabbix. Откройте файл конфигурации в предпочитаемом текстовом редакторе. В этом обучающем руководстве мы будем использовать nano
:
sudo nano /etc/zabbix/zabbix_server.conf
Найдите следующую часть файла:
/etc/zabbix/zabbix_server.conf
...
#### Option: DBPassword
## Database password. Ignored for SQLite.
## Comment this line if no password is used.
##
## Mandatory: no
## Default:
## DBPassword=
...
Эти комментарии в файле объясняют, как подключаться к базе данных. Вам необходимо задать значение DBPassword
в файле для пароля для вашего пользователя базы данных. Добавьте эту строку после этих комментариев для настройки базы данных:
/etc/zabbix/zabbix_server.conf
...
DBPassword=your_zabbix_mysql_password
...
Сохраните и закройте zabbix_server.conf
, нажав CTRL+X
, а затем Y
и ENTER
, если вы используете nano
.
Теперь вы настроили сервер Zabbix для подключения к базе данных. Затем вы настроите веб-сервер Nginx для обслуживания пользовательского интерфейса Zabbix.
#ubuntu