Zabbix nginx ubuntu настройка

Обновлено: 08.07.2024

В этом руководстве будет использоваться Let's Encrypt - бесплатные сертификаты SSL / TLS.

Этот учебник был протестирован на Ubuntu 18.04.

Оглавление

1. Настройте дату и время, используя NTP

Очень важно поддерживать правильную дату и время в вашей системе.

Установите правильный часовой пояс.

Установите пакет Ntpdate и установите правильную дату и время.

Отключите UTP-клиента по умолчанию Ubuntu.

Установите службу NTP, чтобы обновлять дату и время компьютера после перезагрузки.

Убедитесь, что на вашем компьютере установлены правильные дата и время.

2. Установите MySQL на Ubuntu Linux

Zabbix требует системы баз данных для хранения всей своей конфигурации.

Используйте команду Ubuntu APT для установки сервера MySQL.

Используйте следующую команду для доступа к служебной консоли MySQL.

На консоли MySQL вам необходимо выполнить следующие задачи:

• Создайте базу данных с именем zabbix.
• Создайте учетную запись пользователя MySQL с именем zabbix.
• Предоставить полный контроль над базой данных zabbix пользователю zabbix.

CREATE DATABASE zabbix CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'kamisama123';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
quit;

Загрузите установочный пакет Zabbix, чтобы получить шаблоны базы данных.

Распакуйте установочный пакет Zabbix.

Импортируйте шаблоны базы данных Zabbix в базу данных MySQL.

Когда вас спросят, вам нужно ввести пароль MySQL для пользователя Zabbix.

Установка базы данных Zabbix была завершена.

3. Установите Apache в Ubuntu Linux

Используйте команду Ubuntu APT для установки сервера Apache и необходимых модулей PHP.

Включить Apache mod_ssl.

Включить Apache mod_rewrite.

Отредактируйте файл apache2.conf.

Добавьте следующие строки в конце apache2.conf

<Directory /var/www/html>
AllowOverride All
</Directory>

Найдите расположение файла конфигурации PHP в вашей системе.

Отредактируйте файл конфигурации php.ini.

Ваша версия PHP может отличаться от нашей.

Ваше местоположение файла конфигурации PHP может не совпадать с нашим.

Измените следующие элементы в файле конфигурации php.ini.

max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
max_input_time = 300
date.timezone = America/Sao_Paulo

Ваш часовой пояс может отличаться от нашего.

Перезапустите веб-сервер Apache вручную.

Проверьте состояние службы Apache.

Установка сервера Apache была завершена.

4. Настройка виртуальных хостов Apache

Виртуальные хосты, если функция, которая позволяет одному серверу Apache предлагать несколько веб-сайтов с одним и тем же IP-адресом

Давайте создадим необходимую инфраструктуру для использования функции Apache VirtualHosts.

Наш сайт будет называться zabbix.mining-pool.ninja.

Журналы zabbix.mining-pool.ninja будут храниться в каталоге / sites / zabbix / logs.

Alert!

You need to change the configuration files to reflect your Zabbix website name.

Создайте файл конфигурации Apache Virtualhost на своем веб-сайте Zabbix.

Вот файл с нашей конфигурацией.

<Directory /websites/zabbix/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog /websites/zabbix/logs/error.log
CustomLog /websites/zabbix/logs/access.log combined
LogLevel error
</VirtualHost>

Включите файл конфигурации вашего сайта Zabbix Virtualhost.

Перезапустите сервис Apache.

Вы завершили настройку Apache VirtualHosts.

5. Настройте реестр домена DNS

Доступ к GODADDY и купить домен DNS.

В нашем примере мы приобретаем домен с именем MINING-POOL.NINJA.

Вы можете использовать любой сайт для покупки домена DNS, GoDaddy - это мой личный выбор.

Создайте запись DNS, указывающую ваш веб-сайт Zabbix на компьютер под управлением Apache.

В нашем примере мы создали запись DNS, указывающую ZABBIX.MINING-POOL.NINJA на IP-адрес 34.217.177.160.

Zabbix virtual host dns

Используйте команду NSLOOKUP для проверки вашей конфигурации DNS

Non-authoritative answer:
Name: zabbix.mining-pool.ninja
Address: 34.217.177.160

Вы завершили настройку домена DNS.

В нашем примере в браузере был введен следующий URL:

Zabbix HTTP Virtual Host

Установите необходимые пакеты для использования LET'S ENCRYPT Free SSL / TLS Certificates в Ubuntu Linux.

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/zabbix.mining-pool.ninja/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/zabbix.mining-pool.ninja/privkey.pem
Your cert will expire on 2019-04-09. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:

Система автоматически запросит бесплатный сертификат.

<Directory /websites/zabbix/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog /websites/zabbix/logs/error.log
CustomLog /websites/zabbix/logs/access.log combined
LogLevel error

SSLCertificateFile /etc/letsencrypt/live/zabbix.mining-pool.ninja/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/zabbix.mining-pool.ninja/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Файл KEY содержит ваш закрытый ключ сертификата и должен постоянно храниться в безопасном месте.

Файл ключа для mining-pool.ninja хранится по адресу /etc/letsencrypt/live/zabbix.mining-pool.ninja/privkey.pem

Система автоматически изменяет исходный файл конфигурации Apache Virtualhost.

<Directory /websites/zabbix/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

This tutorial will show you all the steps required to install Zabbix 4 with Nginx and PHP-FPM on Ubuntu Linux.

This tutorial was tested on Ubuntu 18.04.

Table of Contents

1. Configure Date and Time using NTP

It is very important to keep your system with the correct date and time.

Set the correct timezone.

Install the Ntpdate package and set the correct date and time.

Disable the Ubuntu default NTP client.

Install the NTP service to keep the computer date and time updated after a reboot.

Make sure the correct date and time have been set on your computer.

2. Install MySQL on Ubuntu Linux

Zabbix requires a database system to store all its configuration.

Use the Ubuntu APT command to install the MySQL server.

Use the following command to access the MySQL service console.

On the MySQL console, you need to perform the following tasks:

• Create a database named zabbix.
• Create a MySQL user account named zabbix.
• Give full control over the zabbix database to the zabbix user.

CREATE DATABASE zabbix CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'kamisama123';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
quit;

Download the Zabbix installation package to get the database templates.

Extract the Zabbix installation package.

Import the Zabbix database templates inside the MySQL database.

When asked, you need to enter the MySQL password for the Zabbix user.

The Zabbix database installation was completed.

3. Install Nginx on Ubuntu Linux

Use the Ubuntu APT command to install the Nginx server.

Edit the nginx.conf configuration file.

Configure the maximum upload size to 32 Megabytes.

Here is the file with our configuration.

Restart the Nginx web server manually.

Verify the Nginx service status.

The Nginx web server was installed successfully.

4. Add PHP support to Nginx

Nginx needs an external program to add PHP support.

Use the Ubuntu APT command to install the PHP required packages.

Use the following command to install the required PHP modules.

Сервер Zabbix используется для сбора и анализа информации о состоянии узлов сети. В данной статье будет рассмотрен процесс его установки и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MariaDB/MySQL. Версия операционной системы, которая использовалась для написания инструкции — 18.04 (LTS), версия Zabbix — 4.2.

Подготовка сервера

Перед установкой Zabbix выполняем подготовительные процедуры.

1. Правильное время

Для получения актуальной информации необходимо, чтобы на сервере было правильное время.

Для этого сначала задаем правильную временную зону:

timedatectl set-timezone Europe/Moscow

* в данном примере задается московское время.

Затем устанавливаем и запускаем сервис синхронизации времени:

apt-get install chrony

systemctl enable chrony

systemctl start chrony

2. Настройка брандмауэра

Для работы сервера, открываем следующие порты:

ufw allow 80,443,10050,10051/tcp

ufw allow 10050,10051/udp

Установка веб-сервера

Управление сервером Zabbix будет осуществляться посредством веб-интерфейса. Для этого необходимо установить и настроить веб-сервер, СУБД и PHP.

В данному инструкции мы будем использовать сервер баз данных mariadb.

Для установки вводим:

apt-get install mariadb-server

Разрешаем автозапуск сервера баз данных и запускаем mariadb:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль для суперпользователя СУБД:

mysqladmin -u root password

* после ввода команды система потребует ввести пароль два раза.

Веб-сервер

Для наших целей будем использовать веб-сервер NGINX.

Для его установки вводим команду:

apt-get install nginx

Запускаем nginx и разрешаем его автозапуск:

systemctl enable nginx

systemctl start nginx

Окно приветствия NGINX

PHP и PHP-FPM

Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипты, написанные на нем.

Устанавливаем php и необходимые компоненты:

apt-get install php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-gettext php-bcmath

Для настройки php, открываем файл:

* где 7.2 — версия PHP. В вашем случае это может быть другая версия. Проверить можно командой php -v.

Редактируем следующие параметры:

date.timezone = "Europe/Moscow"
.
max_execution_time = 300
.
post_max_size = 16M
.
max_input_time = 300
.
max_input_vars = 10000

Разрешим запуск php-fpm и перезапустим его:

systemctl enable php7.2-fpm

systemctl restart php7.2-fpm

NGINX + PHP

Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл:

В секции location добавляем параметр index:

Внутри секции server добавим следующее:

\.php$ set $root_path /var/www/html;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>

Проверяем настройки nginx:

И перезагружаем его:

systemctl restart nginx

Создаем index.php со следующим содержимым:

Сводная информация по PHP

Веб-сервер готов для работы с Zabbix Web.

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

Переходим к установке самого Zabbix сервера.

Установка

Копируем ссылку на нужный релиз Zabbix

Скачиваем файл репозитория командой:

dpkg -i zabbix-release_4.2-1+bionic_all.deb

Обновляем списки пакетов:

Устанавливаем сервер, вводя команду:

apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-get

Настройка базы данных

Создаем базу данных:

> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;

* мы создали базу zabbix.

Создаем пользователя для подключения и работы с созданной базой:

* в данном примете мы создали пользователя zabbix с доступом к базе zabbix и паролем zabbixpassword.

Выходим из sql-оболочки:

В составе zabbix идет готовая схема для СУБД MySQL/MariaDB или postgreSQL. В нашем случае, нам нужен MySQL.

Для применения схемы переходим в каталог:

Распаковываем архив с дампом базы:

Восстанавливаем базу их дампа:

mysql -v -u root -p zabbix < create.sql

* после ввода команды система запросит пароль. Необходимо ввести пароль, который мы задали после установки mariadb.

Настройка zabbix

Открываем конфигурационный файл zabbix:

* мы настраиваем портал на подключение к базе с паролем zabbixpassword, который задали при создании базы для zabbix.

И проверяем следующие строки:

* имя базы и пользователя должны быть zabbix (как мы и создали в mariadb).

Создаем каталог для инклудов конфигурационных файлов (по какой-то причине, он может быть не создан при установке):

Также создаем каталог для логов и задаем владельца:

chown zabbix:zabbix /var/log/zabbix-server

Запуск zabbix-server

Разрешаем автозапуск сервера мониторинга:

systemctl enable zabbix-server

После запускаем сам сервер zabbix:

systemctl start zabbix-server

Настройка nginx

При установке zabbix-web файлы портала копируются в каталог /usr/share/zabbix. Наш веб-сервер работает с каталогом /var/www/html.

Меняем это — открываем конфигурационный файл nginx:

Редактируем параметры root и set $root_path:

.
root /usr/share/zabbix;
.
set $root_path /usr/share/zabbix;
.

systemctl restart nginx

Установка портала для управления Zabbix

Кликаем по ссылке Next Step для начала установки Zabbix

В следующем окне внимательно смотрим на результаты проверки нашего веб-сервера — справа мы должны увидеть все OK. Если это не так, проверяем настройки и исправляем предупреждения и ошибки, после перезапускаем страницу F5 для повторной проверки настроек.

Когда все результаты будут OK, кликаем по Next Step:

Кликаем по Next Step для продолжения установки Zabbix

В следующем окне мы оставляем настройки подключения к базе как есть — дополнительно прописываем пароль, который задали при создании пользователя zabbix. После нажимаем Next Step:

Вводим пароль для пользователя Zabbix

* в нашем случае, пароль был zabbixpassword;

В следующем окне оставляем все как есть:

Вводим название сервера Zabbix

. и нажимаем Next Step.

В последнем окне мы проверяем настройки и кликаем Next Step.

Установка завершена — нажимаем Finish:

Установка Zabbix завершена

В открывшемся окне вводим логин Admin и пароль zabbix (по умолчанию) — откроется окно со сводной информацией по мониторингу:

Сводная информация по мониторингу Zabbix

Zabbix Agent

В качестве примера установим и настроим zabbix agent на наш сервер. Так как мы уже устанавливали репозиторий, установка агента выполняется командой:

apt-get install zabbix-agent

Откроем конфигурационный файл:

Отредактируем следующую опцию:

* в данном примере мы указываем агенту сервер Zabbix — мы может указать его имя или IP-адрес.

Нашим первым шагом после установки ОС Ubuntu 18 будет настройка сети.

Настройка сети

Нам необходимо посмотреть какие сетевые интересы у нас доступны

ifconfig -a

В данном случае у нас уже настроен сетевой интерфейс и имеет имя eth0 с IP 192.168.88.250. Если у вас там пусто, то нам надо настроить сеть, для этого необходимо внести соответствующие правки в файл конфигурации.

Открываем файл конфигурации для правки с правами администратора

sudo nano /etc/netplan/*.yaml

Вносим изменения как показано на картинке где вы должны указать свои данные такие как:

  • Имя интерфейса (имена могут быть разные имя можно увидеть в предыдущей команде)
  • Нужный IP адрес и его маску
  • Шлюз и IP ДНС сервера
Внимание! Для отступов использовать исключительно пробелы в противном случае у вас будут ошибки. Все пробелы имеют значения. Вносить надо внимательно.

Сохраняем и выходим.

Применяем наши настройки с проверкой конфигурации

Если мы меняем уже имеющиеся настройки то лучше воспользоваться командой

sudo netplan try

в случае если мы потеряем сервер, то настройки вернуться через некоторое время.

После настройки сети нам надо убедиться, что ОС имеет выход в Интернет т.к. дальнейшая работа будет связана с установкой множество пакетов и сети.

Обновим нашу ОС и установим SSH и Midnight Commander

Обновляем списки репозиториев

установим имеющиеся обновления. Процесс это не быстрый.

После обновления установим службу SSH для удаленного конфигурирования.

Так же установим, файловый менеджер Midnight Commander с ним нам будет удобнее работать.

Когда вы первый раз откроете любой файл на редактирование выберите 3. /usr/bin/mcedit . Встроенный редактор файлов мне более нравиться.

Запускать Midnight Commander лучше

Midnight Commander

чтоб впоследствии каждый раз не набирать sudo перед командой и иметь уже нужные права для редактирования файлов. Переход в командную строку CTRL+O

Теперь мы может подключиться по SSH к нашей ОС.

Установка основных пакетов для Zabbix

Добавим репозиторий Zabbix.

В зависимости от того как вы будете работать, возможно вам необходимо будет добавлять перед каждой командой sudo

Мы будем работать со следующей связкой для zabbix - php7, nginx, mysql

Установим необходимые пакеты

Может занять долгое время

Установим Zabbix сервер с поддержкой MySQL с WEB частью

Настройка пакетов

Создадим базу данных в MySQL и произведем импорт ее структуры

После установки у нас не задан пароль root для управления базами в MySQL. Чтоб задать данный пароль воспользуемся скриптом sudo mysql_secure_installation

sudo mysql_secure_installation

Прищёлкиваем как на картинке. В общем-то отвечаем везде Yes , а первым шагом мы как раз задаем наш пароль.

Создаем базу а так же пользователя который будет работать с нашей базой.

mysql –u root –p

Теперь импортируйте изначальную схему и данные. MySQL запросит вас ввести недавно созданный пароль.

Самое время идти на перекур, импорт будет идти достаточно долго

Настройка подключения для Zabbix сервера

Открываем на редактирование файл /etc/zabbix/zabbix_server.conf . Ищем там соответствующие строки и правим на наши значения.

zabbix_server.conf

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

Настройка PHP к требованиям Zabbix

Открываем для редактирования /etc/php/7.3/fpm/php.ini и правим следующие значения

Перезапускаем PHP, чтоб сделанные нами изменения вступили в силу

Настройка сервера NGINX

Копируем файлы веб-сервера Zabbix

Открываем для редактирования файл /etc/nginx/sites-available/default и вносим изменения.

Обратите внимание, что в исходном файле настройка PHP php7.0-fpm.sock , а у нас php7.3

Перезагружаем NGINX.

Основные настройки завершены.

zabbix мастер установки

Прищёлкиваем Next step до Finish . Нам потребуется лишь только ввести пароль от базы данных. Логин и пароль по умолчанию, логин вводить с учетом регистра.

После входа мы увидим следующую картину

zabbix стартовая страница

Сменим язык веб-интерфейса на Русский

Жмем на человечка , выбираем язык Русский и жмем обновить

zabbix смена языка

Настройка аутентификации в Zabbix по LDAP

Для удобства входа и распределения прав мы можем подключить Zabbix на использование Active Directory, для этого нам надо настроить Аутентификацию

Заходим в Администрирование – Аутентификация и заполняем поля как на картинке, подставляя свои значения.

zabbix стартовая страница

Нажимаем тест , если все хорошо, то переходим во вкладку Пользователи и создаем пользователя. При использовании LDAP пароль можно поставить любой.

Читайте также: