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