Содержание:

Общие понятия и требования

Установка и настройка Zabbix-сервера на VPS начинается с подготовки рабочего окружения. Для работы потребуется минимум 2 устройства:

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

Базовые компоненты Zabbix

  • СУБД — совокупность программных модулей для управления базами данных (создания, удаления, добавления записей и т. д.). Zabbix поддерживает следующие СУБД: MySQL (InnoDB или MariaDB engine), Oracle, PostgreSQL, IBM DB2, SQLite.
  • База данных (БД) — связанные между собой данные, организованные по определенной структуре в виде таблиц.
  • PHP (препроцессор гипертекста) — язык программирования, используемый для построения web-приложений с использованием БД.
  • Web-сервер (Apache, Nginx) — набор программных средств для работы с web-приложениями.

Сбор и передача информации с сервера на клиент выполняется по защищенному шифрованием каналу при помощи специального приложения — Zabbix-агента.

Для установки Zabbix-сервера рекомендуется использовать Linux / Unix-платформы. Для этой цели отлично подойдут операционные системы: Debian, Ubuntu и CentOS.

Подробнее об архитектуре и принципах работы Zabbix можно почитать в отдельной статье.

Готовые решения

Установка из образа

Развертывание приложения из iso-образа — готовое решение, которое значительно экономит время по сравнению с установкой вручную. Этот вариант подходит для быстрого развертывания Zabbix-сервера (MySQL/PostgreSQL) и Zabbix-прокси (MySQL/SQLite 3).

  1. Для начала нужно зайти на официальный сайт приложения, где выложены архивы с готовыми решениями Zabbix под различные виртуальные платформы.
  2. Выбрав нужный вариант, нужно скачать его, разархивировать и развернуть в соответствующей виртуальной машине.
  3. После развертывания Zabbix, следует запустить его и залогиниться. Обычно, умолчанию логин: «root», пароль: «zabbix», либо эти параметры задаются произвольно в процессе установки.
  4. Далее, нужно узнать IP-адрес, которое приложение получило командой «ip addr». Затем вписать полученный адрес в строку браузера в следующем виде: «http://<host_ip>/zabbix» (где «host_ip» — адрес установленной версии Zabbix) и нажать ввод.
  5. Осуществится переход в веб-интерфейс панели управления Zabbix-сервером, где можно сделать все необходимые настройки конфигурации.

Установка Zabbix из контейнеров Docker

Zabbix интегрирован с приложением для контейнеризации Docker. Об установке программы можно узнать здесь.

Каждый компонент Zabbix можно быстро развернуть в виде виртуального контейнера. Они доступны для скачивания на официальном сайте.

Docker-образы Zabbix поставляются для трех операционных систем:

  • Ubuntu;
  • AlpineLinux;
  • CentOS.

Установку Zabbix-сервера можно произвести несколькими основными способами.

Вариант №1

Можно сразу установить готовый образ, включающий в себя Zabbix-сервер, MySQL, Nginx. Для этого нужно выполнить команду:

docker run --name some-zabbix-appliance -p 80:80 -p 10051:10051 -d zabbix/zabbix-appliance:latest

Создастся Zabbix-экземпляр, прослушивающий 80 и 10051 порты.

Остаётся перейти по адресу: «http://<host_ip>/». В открывшемся веб-интерфейсе потребуется ввести логин – «Admin», пароль – «zabbix».

Вариант №2

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

Для создаваемых контейнеров нужно создать сеть Docker:

docker network create zabbix-net

Теперь необходимо запустить контейнер с СУБД:

docker run -d --name zabbix-postgres --network zabbix-net -v /var/lib/zabbix/localtime:/etc/localtime -e POSTGRES_PASSWORD=zabbix -e POSTGRES_USER=zabbix postgres:alpine

В примере используется Postgresql.

Далее стоит разместить контейнер с Zabbix-сервером:

docker run --name zabbix-server --network zabbix-net -v /var/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts -v /var/lib/zabbix/localtime:/etc/localtime -p 10051:10051 -e DB_SERVER_HOST="zabbix-postgres" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" -d zabbix/zabbix-server-pgsql:alpine-latest

Остаётся запустить веб-сервер Zabbix:

docker run --name zabbix-web -p 80:8080 -p 443:8443 --network zabbix-net -e DB_SERVER_HOST="zabbix-postgres" -v /var/lib/zabbix/localtime:/etc/localtime -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" -e ZBX_SERVER_HOST="zabbix-server" -d zabbix/zabbix-web-nginx-pgsql:alpine-latest

В примере используется Nginx.

Остаётся перейти по адресу: «http://<host_ip>/», и войти в веб-интерфейс, воспользовавшись логином – «Admin», и паролем – «zabbix».

Ручная установка

Ниже мы покажем как развернуть Zabbix на VDS на примере трех ОС — Debian 10, Ubuntu 20.04 и CentOS 7.

Установка на Zabbix на Debian 10

Команды, вводимые в терминале на Debian 10 (Debian 9) практически идентичны Ubuntu 20.04., но есть некоторые отличия.

Установка системы мониторинга начинается с загрузки deb-пакета Zabbix 5:

wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb

Далее его необходимо установить:

dpkg -i zabbix-release_5.0-1+buster_all.deb

apt update

Далее нужно установить Zabix-сервер и агент для его мониторинга командой:

apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent

Установка Zabbix на Ubuntu 20.04

Для начала установки Zabbix 5 на Ubuntu загружаем и устанавливаем deb-пакет:

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb

dpkg -i zabbix-release_5.0-1+focal_all.deb

apt update

Устанавливаем Zabix-сервер и агент:

apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent

Установка Zabbix на CentOS 7

Установка начинается с добавления репозитория, находящегося на официальном сайте. Сделать это можно при помощи последовательности двух команд:

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

yum clean all

Далее нужно установить Zabix-сервер и агент:

yum install zabbix-server-mysql zabbix-agent

После этого нужно установить веб-интерфейс Zabix, последовательно выполнив ряд действий.

  • Установить пакет актуального софта для CentOS из репозитория Red Hat Software Collections:
yum install centos-release-scl
  • Отредактировать файл «/etc/yum.repos.d/zabbix.repo» и включить репозиторий «zabbix-frontend», выполнив команду:
vi /etc/yum.repos.d/zabbix.repo
  • Здесь следует заменить строку «enabled=0» на «enabled=1».
[zabbix-frontend]

...

enabled=1

...
  • Далее нужно установить пакеты веб-интерфейса Zabbix:
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

Работа с сервером баз данных MySQL

Debian 10

Переходим в директорию «/tmp»:

cd /tmp

Устанавливаем консольную утилиту wget:

apt -y  install wget

Устанавливаем APT репозиторий с deb-пакетом, который управляет загрузкой и настройкой программного обеспечения MySQL:

wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb

dpkg -i mysql-apt-config_0.8.13-1_all.deb

Для установки последней версии нужно оставить все как есть и нажать ввод на «Оk»

Устанавливаем MySQL сервер:

apt update

apt install mysql-server

Во время установки появится диалоговое окно конфигурации, в котором нужно будет задать пароль пользователя root для MySQL. Введите безопасный и надежный пароль, а затем подтвердите его.

После этого появится предупреждение о новой системе аутентификации, на основе SHA256, использующейся в MySQL. Нажимаем «Ok». Далее следует выбрать плагин аутентификации (если оставить вариант по умолчанию, будет использоваться рекомендуемый плагин) и нажать «Enter», чтобы завершить процесс установки.

Ubuntu 20.04

Устанавливаем MySQL сервер:

apt install mysql-server

Запускаем MySQL сервер и добавляем его в автозагрузку:

systemctl start mysql

systemctl enable mysql

Производим первоначальную настройку MySQL:

mysql_secure_installation

На первом вопросе, жмём «2», а далее создаём пароль для root и на все вопросы отвечаем «Y» (yes).

CentOS 7

Устанавливаем репозиторий «epel-release»:

yum install epel-release

Устанавливаем сервер MariaDB :

yum install mariadb-server

Запускаем сервер MariaDB и добавляем его в автозагрузку:

systemctl start mariadb

systemctl enable mariadb

Производим первоначальную настройку MariaDB:

/usr/bin/mysql_secure_installation

На первом вопросе, жмём «Enter», так как пароль для root ещё не создан. Далее создаём пароль для root и на все вопросы отвечаем «Y» (yes).

Создание базы данных и пользователя

Это общий шаг для всех ОС.

mysql -uroot -p

password

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> create user zabbix@localhost identified by 'zabbix';

mysql> grant all privileges on zabbix.* to zabbix@localhost;

mysql> quit;

Вместо «password» в данном примере вписываем пароль от root, заданный на предыдущем шаге.

Имортируем исходнyю схему и данные:

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Появится диалоговое окно с требованием ввести пароль. Вводим «zabbix».

Редактируем файл «/etc/zabbix/zabbix_server.conf»:

vi /etc/zabbix/zabbix_server.conf

Раскоментируем строку и меняем значение:

DBPassword=zabbix

Настройка PHP для веб-интерфейса Zabbix

Debian 10 и Ubuntu 20.04

Редактируем файл «/etc/zabbix/apache.conf»:

vi /etc/zabbix/apache.conf

Раскоментируем строку и изменим значение:

php_value[date.timezone] = Europe/Moscow

Centos 7

Редактируем файл «/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf»:

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

Раскоментируем строку и изменим значение:

php_value[date.timezone] = Europe/Moscow

Запуск Zabbix-сервера и процессов агента

Debian 10

systemctl restart zabbix-server zabbix-agent apache2

systemctl enable zabbix-server zabbix-agent apache2

Ubuntu 20.04

systemctl restart zabbix-server zabbix-agent apache2

systemctl enable zabbix-server zabbix-agent apache2

Centos 7

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
Настройка iptables в CentOS 7

Отключаем и убираем из автозагрузки firewall:

systemctl stop firewalld

systemctl disable firewalld

Устанавливаем службку iptables:

yum install iptables-services

Создаем правила:

iptables -I INPUT 1 -p tcp --dport 1500 -j ACCEPT

iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

Сохраняем правила:

service iptables save

Включаем сервис iptables в автозагрузку:

service iptables enable

Проверка доступности веб-интерфейса

Переходим по адресу «http: // server_ip_or_name / zabbix», где «server_ip_or_name» — IP-адрес или доменное имя сервера.

Настройка web-интерфейса

Для установки и настройки Zabbix через web-интерфейс нужно перейти на страницу, где он установлен. Должно появиться такое окно приветствия мастера установки.

Далее нужно нажать на кнопку продолжения установки «Next step». После этого отобразится анализ соответствия Zabbix-сервера всем системным требованиям текущего сервера. Возле каждого из них должен стоять параметр соответствия «Ок».

После нажатия на кнопку «Next step» необходимо ввести параметры подключения к базе данных, которая была создана.

Параметры следующего окна нужно оставить без изменений.

Остаётся нажать «Finish» для завершения настройки Zabbix 5 .