Автор выбрал Computer History Museum для получения пожертвования в рамках программы Write for DOnations.

Введение

Zabbix — это программное обеспечение с открытым исходным кодом для мониторинга сетей и приложений. С его помощью можно выполнять мониторинг в режиме реального времени нескольких тысяч метрических показателей, собранных с серверов, виртуальных машин, сетевых устройств и веб-приложений. Эти параметры могут помочь вам определить текущее состояние инфраструктуры ИТ и выявить проблемы, связанные с компонентами аппаратного или программного обеспечения, до того, как на них пожалуется клиент. Полезная информация хранится в базе данных для возможности анализировать данные с течением времени и повышать качество предоставляемых услуг или планировать модернизацию оборудования.

Zabbix использует несколько методов сбора метрических показателей, включая безагентный мониторинг услуг для пользователей и архитектуру клиент-сервер. Для сбора метрических показателей сервера используется маленький агент на отслеживаемом клиенте, который собирает данные и отправляет их на сервер Zabbix. Zabbix поддерживает зашифрованную связь между сервером и подключенными клиентами, что обеспечивает защиту данных во время перемещения по ненадежным сетям.

Сервер Zabbix хранит свои данные в реляционной базе данных, работающей на базе MySQL или PostgreSQL. Также вы можете хранить исторические данные в таких базах данных, как Elasticsearch и TimescaleDB. Zabbix предоставляет веб-интерфейс для возможности просмотра данных и настройки системы.

В этом обучающем модуле мы настроим Zabbix на двух компьютерах Ubuntu 20.04. Один из них будет настроен в качестве сервера Zabbix, а второй — в качестве клиента, который будет отслеживаться. Сервер Zabbix будет использовать базу данных MySQL для записи данных мониторинга и использовать Nginx для обслуживания веб-интерфейса.

Предварительные требования

Для данного обучающего модуля вам потребуется следующее:

  • Два сервера Ubuntu 20.04, настроенных в соответствии с указаниями обучающего модуля Начальная настройка сервера для Ubuntu 20.04, включая пользователя без привилегий root с привилегиями sudo и настроенный брандмауэр ufw. На одном сервере вы установите Zabbix. В этом обучающем модуле он будет называться сервер Zabbix. Он будет отслеживать ваш второй сервер, этот второй сервер будет называться второй сервер Ubuntu.
  • Для сервера, на базе которого будет работать сервер Zabbix, требуется установка Nginx, MySQL и PHP. Следуйте шагам 1–3 нашего обучающего руководства по набору LEMP Ubuntu 20.04 для их настройки на вашем сервере Zabbix.
  • Зарегистрированное доменное имя. В этом обучающем руководстве мы будем использовать your_domain. Вы можете купить доменное имя на Namecheap, получить его бесплатно на Freenom или воспользоваться услугами любого предпочитаемого регистратора доменных имен.
  • На вашем сервере Zabbix должны быть настроены обе нижеследующие записи DNS. Если вы используете DigitalOcean, ознакомьтесь с нашей документацией по DNS для получения подробной информации по их добавлению.
  • Запись A, где your_domain указывает на публичный IP-адрес вашего сервера Zabbix.
  • Запись A, где www.``your_domain указывает на публичный IP-адрес вашего сервера Zabbix.

Кроме того, поскольку сервер Zabbix используется для доступа к ценной информации о вашей инфраструктуре, которую вам нужно защищать от несанкционированного доступа, очень важно обеспечить защиту сервера сертификатом TLS/SSL. Это необязательно, но настоятельно рекомендуется. Если вы хотите защитить ваш сервер, следуйте указаниям руководства Let’s Encrypt в Ubuntu 20.04 после шага 3 этого обучающего модуля.

Шаг 1 — Установка сервера Zabbix

Во-первых, нужно установить 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 будет собирать от своих агентов. Это можно сделать на следующем шаге.

Шаг 2 — Настройка базы данных MySQL для 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

Установка и настройка Zabbix для безопасного мониторинга удаленных серверов в Ubuntu 20.04
1.20 GEEK