Установка Zabbix HTTPS в Ubuntu Linux
Этот туториал покажет вам все шаги, необходимые для установки Zabbix 4 с использованием HTTPS в Ubuntu Linux.
В этом руководстве будет использоваться Let's Encrypt - бесплатные сертификаты SSL / TLS.
Этот учебник был протестирован на Ubuntu 18.04.
Оглавление
- Настройте дату и время, используя NTP
- Установите MySQL на Ubuntu Linux
- Установите Apache на Ubuntu Linux
- Настройка виртуальных хостов Apache
- Настроить реестр домена DNS
- Настройте бесплатный сертификат HTTPS на Apache
- Тестирование бесплатного HTTPS-сертификата на Apache
- Установите Zabbix 4 на Ubuntu Linux
- Настроить Zabbix в Ubuntu Linux
- Контролировать Zabbix сервер
- Как продлить бесплатный сертификат HTTPS
1. Настройте дату и время, используя NTP
Очень важно поддерживать правильную дату и время в вашей системе.
Установите правильный часовой пояс.
# dpkg-reconfigure tzdata
Установите пакет Ntpdate и установите правильную дату и время.
# apt-get update
# apt-get install ntpdate
# ntpdate pool.ntp.br
Отключите UTP-клиента по умолчанию Ubuntu.
Установите службу NTP, чтобы обновлять дату и время компьютера после перезагрузки.
# timedatectl set-ntp 0
# apt-get install ntp
Убедитесь, что на вашем компьютере установлены правильные дата и время.
# date
2. Установите MySQL на Ubuntu Linux
Zabbix требует системы баз данных для хранения всей своей конфигурации.
Используйте команду Ubuntu APT для установки сервера MySQL.
# apt-get update
# apt-get install mysql-server mysql-client
Используйте следующую команду для доступа к служебной консоли MySQL.
# mysql -u root -p
На консоли 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, чтобы получить шаблоны базы данных.
# mkdir /downloads
# cd /downloads
# wget https://ufpr.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz
Распакуйте установочный пакет Zabbix.
Импортируйте шаблоны базы данных Zabbix в базу данных MySQL.
Когда вас спросят, вам нужно ввести пароль MySQL для пользователя Zabbix.
# tar -zxvf zabbix-4.0.3.tar.gz
# cd zabbix-4.0.3/database/mysql/
# mysql -u zabbix -p zabbix < schema.sql
# mysql -u zabbix -p zabbix < images.sql
# mysql -u zabbix -p zabbix < data.sql
Установка базы данных Zabbix была завершена.
3. Установите Apache в Ubuntu Linux
Используйте команду Ubuntu APT для установки сервера Apache и необходимых модулей PHP.
# apt-get install apache2 php7.2 php7.2-mysql libapache2-mod-php7.2
# apt-get install php7.2-mbstring php7.2-xml php7.2-gd
# apt-get install php7.2-curl php7.2-bcmath php7.2-ldap
Включить Apache mod_ssl.
Включить Apache mod_rewrite.
Отредактируйте файл apache2.conf.
# a2enmod ssl
# a2enmod rewrite
# vi /etc/apache2/apache2.conf
Добавьте следующие строки в конце apache2.conf
<Directory /var/www/html>
AllowOverride All
</Directory>
Найдите расположение файла конфигурации PHP в вашей системе.
Отредактируйте файл конфигурации php.ini.
# updatedb
# locate php.ini
# vi /etc/php/7.2/apache2/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 вручную.
# service apache2 restart
# service apache2 status
Проверьте состояние службы Apache.
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Mon 2018-12-03 03:41:12 -02; 2 days ago
Установка сервера Apache была завершена.
4. Настройка виртуальных хостов Apache
Виртуальные хосты, если функция, которая позволяет одному серверу Apache предлагать несколько веб-сайтов с одним и тем же IP-адресом
Давайте создадим необходимую инфраструктуру для использования функции Apache VirtualHosts.
# mkdir /websites/zabbix -p
# cd /websites/zabbix
# mkdir www logs
# chown www-data.www-data /websites -R
Наш сайт будет называться zabbix.mining-pool.ninja.
Файлы веб-сайта zabbix.mining-pool.ninja должны находиться в каталоге / sites / zabbix / www.
Журналы zabbix.mining-pool.ninja будут храниться в каталоге / sites / zabbix / logs.
Alert!
You need to change the configuration files to reflect your Zabbix website name.
Создайте файл конфигурации Apache Virtualhost на своем веб-сайте Zabbix.
# vi /etc/apache2/sites-available/zabbix.conf
Вот файл с нашей конфигурацией.
<VirtualHost *:80>
ServerAdmin nobody@care.com
DocumentRoot /websites/zabbix/www
ServerName zabbix.mining-pool.ninja
<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.
# a2ensite zabbix.conf
# service apache2 restart
Вы завершили настройку Apache VirtualHosts.
5. Настройте реестр домена DNS
Доступ к GODADDY и купить домен DNS.
В нашем примере мы приобретаем домен с именем MINING-POOL.NINJA.
Вы можете использовать любой сайт для покупки домена DNS, GoDaddy - это мой личный выбор.
Создайте запись DNS, указывающую ваш веб-сайт Zabbix на компьютер под управлением Apache.
В нашем примере мы создали запись DNS, указывающую ZABBIX.MINING-POOL.NINJA на IP-адрес 34.217.177.160.

Используйте команду NSLOOKUP для проверки вашей конфигурации DNS
# apt-get update
# apt-get install dnsutils
# nslookup zabbix.mining-pool.ninja
Non-authoritative answer:
Name: zabbix.mining-pool.ninja
Address: 34.217.177.160
Вы завершили настройку домена DNS.
Откройте браузер и попробуйте получить доступ к HTTP-версии вашего сайта.
В нашем примере в браузере был введен следующий URL:
• http://zabbix.mining-pool.ninja

Теперь нам нужно установить бесплатный сертификат HTTPS.
Нам также необходимо автоматически перенаправить весь HTTP-трафик на HTTPS-версию нашего веб-сайта Zabbix.
6. Настройте бесплатный сертификат HTTPS на Apache
Установите необходимые пакеты для использования LET'S ENCRYPT Free SSL / TLS Certificates в Ubuntu Linux.
# apt-get install software-properties-common
# add-apt-repository universe
# add-apt-repository ppa:certbot/certbot
# apt-get update
# apt-get install python-certbot-apache
Запросите и установите бесплатный HTTPS-сертификат Apache.
# certbot --apache -d mining-pool.ninja
• Нажмите (A), чтобы согласиться с Условиями обслуживания.
• Нажмите (Y), чтобы поделиться своей электронной почтой и получать информационные бюллетени.
• Нажмите (2), чтобы автоматически перенаправить ваш веб-сайт HTTP на версии HTTPS.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): techexpert.tips@gmail.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for zabbix.mining-pool.ninja
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/zabbix-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/zabbix-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/zabbix-le-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/zabbix.conf to ssl vhost in /etc/apache2/sites-available/zabbix-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://zabbix.mining-pool.ninja
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=zabbix.mining-pool.ninja
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Система автоматически запросит бесплатный сертификат.
Он также настроит ваш веб-сервер Apache для перенаправления всего HTTP-доступа к HTTPS-версии вашего веб-сайта.
В нашем примере система создала файл конфигурации HTTPS Virtualhost с именем zabbix-le-ssl.conf.
Вот содержимое файла конфигурации HTTPS Virtualhost zabbix-le-ssl.conf:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin nobody@care.com
DocumentRoot /websites/zabbix/www
ServerName zabbix.mining-pool.ninja
<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.
Он автоматически перенаправит все HTTP-запросы в HTTPS-версию вашего сайта.
Вот содержимое обновленного исходного файла конфигурации HTTP Virtualhost, zabbix.conf:
<VirtualHost *:80>
ServerAdmin nobody@care.com
DocumentRoot /websites/zabbix/www
ServerName zabbix.mining-pool.ninja
<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
RewriteEngine on
RewriteCond %{SERVER_NAME} =zabbix.mining-pool.ninja
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
7. Тестирование бесплатного сертификата HTTPS на Apache
Все необходимые настройки выполнены.
Настало время протестировать вашу конфигурацию.
Откройте браузер и попробуйте получить доступ к HTTP-версии вашего сайта.
В нашем примере в браузере был введен следующий URL:
• http://zabbix.mining-pool.ninja
Apache автоматически перенаправит HTTP-запрос на HTTPS-версию вашего сайта.

Вы завершили настройку бесплатного сертификата Apache HTTPS.
8. Установите Zabbix 4 в Ubuntu Linux
Закончив настройку MySQL и Apache, мы можем начать установку Zabbix.
Создайте необходимую учетную запись пользователя для сервиса Zabbix.
# groupadd zabbix
# useradd -g zabbix -s /bin/bash zabbix
Используйте команду Ubuntu APT для установки необходимых пакетов.
# apt-get install build-essential libmysqlclient-dev libssl-dev libsnmp-dev libevent-dev
# apt-get install libopenipmi-dev libcurl4-openssl-dev libxml2-dev libssh2-1-dev libpcre3-dev
# apt-get install libldap2-dev libiksemel-dev libcurl4-openssl-dev libgnutls28-dev
Откройте каталог, в который был загружен установочный пакет Zabbix.
Скомпилируйте и установите приложение Zabbix-сервера.
# cd /downloads/zabbix-4.0.3/
# ./configure --enable-server --enable-agent --with-mysql --with-openssl --with-net-snmp --with-openipmi --with-libcurl --with-libxml2 --with-ssh2 --with-ldap
# make
# make install
Найдите расположение файла конфигурации Zabbix сервера в вашей системе.
Отредактируйте файл конфигурации zabbix_server.conf.
# updatedb
# locate zabbix_server.conf
# vi /usr/local/etc/zabbix_server.conf
Вот оригинальный файл, перед нашей конфигурацией.
LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=zabbix
Timeout=4
LogSlowQueries=3000
Вот новый файл с нашей конфигурацией.
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=kamisama123
Timeout=4
LogSlowQueries=3000
Запустите Zabbix сервер, используя следующую команду.
# /usr/local/sbin/zabbix_server
Запустите приложение агента Zabbix с помощью следующей команды.
# /usr/local/sbin/zabbix_agentd
Необязательный! Установочный пакет Zabbix предлагает сценарии запуска службы.
Скопируйте скрипт запуска Zabbix.
# cd /downloads/zabbix-4.0.3/
# cp misc/init.d/debian/* /etc/init.d/
Теперь вы можете использовать следующие команды для запуска службы Zabbix сервера.
# /etc/init.d/zabbix-server start
Теперь вы можете использовать следующие команды, чтобы остановить службу Zabbix сервера.
# /etc/init.d/zabbix-server stop
Переместите файлы внешнего интерфейса Zabbix в каталог корневого диска Apache.
Предоставьте пользователю www-data полный контроль над каталогом Zabbix и его файлами.
# cd /downloads/zabbix-4.0.3/frontends
# cp php/* /websites/zabbix/www/ -R
# chown www-data.www-data /websites/zabbix/www -R
Перезапустите сервис Apache.
# service apache2 stop
# service apache2 start
9. Настройте Zabbix в Ubuntu Linux
Откройте браузер и получите доступ к HTTPS-версии вашего сайта Zabbix.
В нашем примере в браузере был введен следующий URL:
• https://zabbix.mining-pool.ninja
Будет представлен мастер установки Zabbix.

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

Введите информацию для входа в MySQL, необходимую для подключения к базе данных Zabbix

Нажмите на кнопку Далее.

Проверьте сводную информацию об установке Zabbix.

Нажмите на кнопку Готово, чтобы получить доступ к экрану входа Zabbix.

На экране входа в Zabbix введите следующую информацию.
• Zabbix имя пользователя по умолчанию: Admin
• Zabbix пароль по умолчанию: zabbix

После успешного входа в систему будет отображаться панель управления Zabbix.

Поздравляем, Zabbix установлен в вашей системе.
10. Контролировать Zabbix сервер
Сервер Zabbix должен иметь возможность контролировать себя.
На панели инструментов Zabbix войдите в меню «Конфигурация» и выберите опцию «Хост».

В правом верхнем углу экрана выберите опцию с именем: Zabbix серверы

Найдите хост с именем Zabbix server и нажмите на слово DISABLED.
Это позволит Zabbix серверу контролировать себя.

Состояние сервера Zabbix изменится с ОТКЛЮЧЕНО на ВКЛЮЧЕНО.

Сервер Zabbix теперь контролирует себя.
11. Как продлить бесплатный сертификат HTTPS
LET'S ENCRYPT Бесплатные сертификаты SSL / TLS действительны только в течение 90 дней.
Система создает запланированное задание для автоматического продления любого сертификата в течение тридцати дней после истечения срока действия.
Имя запланированной задачи - certbot, и оно находится в каталоге /etc/cron.d.
Вот содержимое файла /etc/cron.d/certbot:
# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc. Renewal will only occur if expiration
# is within 30 days.
#
# Important Note! This cronjob will NOT be executed if you are
# running systemd as your init system. If you are running systemd,
# the cronjob.timer function takes precedence over this cronjob. For
# more details, see the systemd.timer manpage, or use systemctl show
# certbot.timer.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
Используйте следующую команду для имитации процесса обновления сертификата.
# certbot renew --dry-run
Вы должны увидеть следующие сообщения:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/zabbix.mining-pool.ninja.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator apache, Installer apache
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for zabbix.mining-pool.ninja
Waiting for verification...
Cleaning up challenges
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/zabbix.mining-pool.ninja/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/zabbix.mining-pool.ninja/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
Leave A Comment
You must be logged in to post a comment.