Как установить Zabbix с Nginx на Ubuntu Linux

Этот туториал покажет вам все шаги, необходимые для установки Zabbix 4 с Nginx и PHP-FPM в Ubuntu Linux.

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

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. Установите Nginx на Ubuntu Linux

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

# apt-get update
# apt-get install nginx

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

Добавьте client_max_body_size в раздел HTTP.

Настройте максимальный размер загрузки до 32 мегабайт.

# vi /etc/nginx/nginx.conf

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

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
client_max_body_size 32M;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

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

# service nginx restart
# service nginx status

Проверьте статус сервиса Nginx.

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-12-29 04:29:22 UTC; 1h 17min ago
Docs: man:nginx(8)
Process: 2233 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status
Process: 2221 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exite
Main PID: 2238 (nginx)
Tasks: 2 (limit: 1152)
CGroup: /system.slice/nginx.service
├─2238 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2239 nginx: worker process

Веб-сервер Nginx был успешно установлен.

4. Добавьте поддержку PHP в Nginx

Nginx нужна внешняя программа для добавления поддержки PHP.

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

# apt-get update
# apt-get install php7.2-fpm

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

# apt-get install php7.2-mysql php7.2-mbstring php7.2-xml
# apt-get install php7.2-gd php7.2-curl php7.2-bcmath php7.2-ldap

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

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

# updatedb
# locate php.ini
# vi /etc/php/7.2/fpm/php.ini

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

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

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

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

Отредактируйте файл конфигурации веб-сайта Nginx по умолчанию.

# vi /etc/nginx/sites-available/default

Вот оригинальный файл, перед нашей конфигурацией.

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}

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

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}

Убедитесь, что в вашем файле конфигурации Nginx нет ошибок.

# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Перезапустите службу PHP.
Перезапустите сервис Nginx.

# service php7.2-fpm restart
# service nginx restart

Настройка PHP сервера Nginx завершена.

5. Установите Zabbix 4 в Ubuntu Linux

После завершения настройки MySQL и Nginx мы можем начать установку 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 в каталог корневого диска Nginx.

Предоставьте пользователю www-data полный контроль над каталогом Zabbix и его файлами.

# cd /downloads/zabbix-4.0.3/frontends
# mv php /var/www/html/zabbix
# chown www-data.www-data /var/www/html/zabbix/* -R

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

# service nginx stop
# service nginx start

6. Настройте Zabbix в Ubuntu Linux

Откройте браузер и введите IP-адрес вашего веб-сервера плюс / zabbix.

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

• http://200.200.200.200/zabbix

Будет представлен мастер установки Zabbix.

Zabbix Installation

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

Zabbix install Nginx requirements

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

Zabbix database connetion

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

Zabbix Agent Connection

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

Zabbis Installation Summary

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

Zabbix installation finished

На экране входа в Zabbix введите следующую информацию.

• Zabbix имя пользователя по умолчанию: Admin
• Zabbix пароль по умолчанию: zabbix

Zabbix Login

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

Zabbix Dashboard

Поздравляем, Zabbix установлен в вашей системе.

7. Контролировать Zabbix сервер

Сервер Zabbix должен иметь возможность контролировать себя.

На панели инструментов Zabbix войдите в меню «Конфигурация» и выберите опцию «Хост».

Zabbix menu

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

Zabbix Server Group

Найдите хост с именем Zabbix server и нажмите на слово DISABLED.

Это позволит Zabbix серверу контролировать себя.

Zabbix server agent disabled

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

Zabbix server agent enabled

Сервер Zabbix теперь контролирует себя.