Skip to main content
Install Zabbix on Ubuntu 16 with Nginx and php-fpm

Установка Zabbix на Ubuntu 16, NGINX + PHP-FPM

С релизом новой версии Ubuntu, часть пользователей столкнулась с проблемой установки Zabbix сервера. Дело в том, что новая версия Ubuntu включает в себя Nginx и PHP 7, а не Apache + php 5.*. В этом и проявляется сложность установки и настройки, так как предыдущие руководства, написанные для более ранних версий уже не работают. Однако на самом деле все намного проще и сегодня мы разберем как настроить Zabbix и Nginx + PHP-FPM.

NGINX + PHP-FPM

Выполняем команды от суперпользователя(sudo):

apt-get update
apt-get upgrade
apt-get install nginx php-fpm -y

Выполним на всякий случай, чтобы ничего не пропустить. После выполнения этих команд, система готова к установке Zabbix сервера. Для этого нам потребуется скачать с официального репозитория пакет. А именно:
wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix/zabbix-server-mysql_3.0.4-1+xenial_amd64.deb

Поставим пакет командой:

dpkg -i zabbix-server-mysql_3.0.4-1+xenial_amd64.deb

Если во время установки вас просят поставить еще какие-то пакеты, выполняем команду apt-get -f install.

Примечание: На момент написания статьи, это была актуальная версия программы, однако вам следует проверить наличие новой версии на сайте.

Сам сервер мы установили, теперь нужно установить фронтенд. Вот тут загвоздочка получается, так как при стандартной установке, которую я описывал в статье, пакет будет просить установить php 5. Выходом является, скачать архив сервера со всей начинкой и забрать от туда нужное нам. Приступаем:

wget -O zabbix-3.0.4.tar.gz https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.4/zabbix-3.0.4.tar.gz/download
tar zvxf zabbix-3.0.4.tar.gz
cd ./zabbix-3.0.4/frontends
cp -R * /var/www/zabbix

Скачали, разархивировали, скопировали туда, куда нам нужно, все просто.

Половина пути пройдено, осталось настроить NGINX и создать базу данных. Редактируем конфиг сайта nano /etc/nginx/sites-enabled/default и приводим его к следующему виду:

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;


        root /var/www/zabbix;

        index index.php index.html index.htm

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                # With php7.0-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                # With php7.0-fpm:
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}


# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
#       listen 80;
#       listen [::]:80;
#
#       server_name example.com;
#
#       root /var/www/example.com;
#       index index.html;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
#}

Можете просто копипастнуть этот код в новый файл изменив только root на директорию, где лежит ваш фронт. Перезагружаемся — service nginx restart и готово. Пытаемся зайти по адресу нашего сервера, к примеру http://192.168.0.105/ и если увидели приветствие, поздравляю, почти установили)
Zabbix 3 install window

Нажимаем «Next Step» и тут нам установщик поругается на неверную конфигурацию php. Редактируем файл /etc/php/7.0/fpm/php.ini, устанавливая рекомендуемые параметры. Не забываем указать параметр date.timezone. Если просит расширение bcmath, устанавливаем командой apt-get install php7.0-bcmath. Когда все сделали, обновляем страницу и переходим к следующему шагу — База Данных.

Сейчас нужно создать пользователя и таблицы для работы zabbix.

Заходим в командную строку mysql сервера и выполняем команды:

mysql -u root -p
CREATE DATABASE zabbix;
GRANT ALL PRIVILEGES ON zabbix.* TO [email protected] IDENTIFIED BY 'zabbix' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Пользователь есть, теперь нужно наполнить базу. Делаем:

cd /usr/share/doc/zabbix-server-mysql
gzip -d create.sql.gz
mysql -u zabbix -p zabbix < create.sql

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

Последним штрихом редактируем файл /etc/zabbix/zabbix_server.conf, раскомментировав и указав значения:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

Для уверенности перезапустим все и порадуемся работе zabbix’a на современном софте 🙂

service nginx restart
service php7.0-fpm restart
service zabbix-server start

Надеюсь мне удалось кратко описать весь процесс установки сего чуда немного нестандартным способом.
Спасибо за внимание, хорошего дня и меньше ошибок при настройке 🙂

66 thoughts to “Установка Zabbix на Ubuntu 16, NGINX + PHP-FPM”

      1. Я бы добавил в эту строку ( 3 строка руководства) установку mysql сервера : mysql-server . Не у всех он стоит по умолчанию .

  1. «После выполнения этих команд, система готова к установке Zabbix сервера. Для этого нам потребуется скачать с официального репозитория пакет. А именно:
    wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix/zabbix-frontend-php_3.0.4-1+xenial_all.deb
    Сам сервер мы установили..»

    после команд система готова к установке Zabbix… потом скачиваем файл, с которым непонятно что делать, то ли устанавливать, то ли он нам всё таки не нужен. и тут получилось, что сам сервер мы то уже установили.
    буду весьма признателен, если или чуть чуть поподробнее опишите, или вставите ссылочку в какой момент куда и что ставить.

  2. ======
    Пользователь есть, теперь нужно наполнить базу. Делаем:
    cd /usr/share/doc/zabbix-server-mysql
    ======

    А там ( /usr/share/doc) такой папки-то и нету.

    1. Установка сервера точно прошла успешно?
      Если да, можно поискать файлы в архиве с которого забирали файлы для фронтэнда.

  3. Благодарю за статью,
    Но как то не понятно что делать после
    » wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix/zabbix-server-mysql_3.0.4-1+xenial_amd64.deb» скачал пакет и всё? не надо его устанавливать? Если нет, то я видимо не смогу «зайти в коммандную строку mysql». А если надо устанавливать — так он не желает, требует ещё кучу дополнительных пакетов.

    1. Для установки выполните dpkg -i zabbix-server-mysql_3.0.4-1+xenial_amd64.deb. Если будет просить наличия других пакетов, выполняйте apt-get -f install.
      Спасибо, статью дополнил)

  4. Прошу немного помочь.
    После наполнения базы «mysql -u zabbix -p zabbix < create.sql" перехожу в веб-интерфейс и нажать "далее" не могу — у меня ещё много ошибок (по всей видимости и с базой данных):
    — At least one of MySQL, PostgreSQL, Oracle, SQLite3 or IBM DB2 should be supported.
    — PHP mbstring extension missing (PHP configuration parameter —enable-mbstring).
    — PHP gd extension missing (PHP configuration parameter —with-gd).
    — PHP gd PNG image support missing.
    — PHP gd JPEG image support missing.
    — PHP gd FreeType support missing.
    — PHP xmlwriter extension missing.
    — PHP xmlreader extension missing.

    1. mbstring:
      apt-get install php7.0-mbstring
      gd extension:
      apt-get install php7.0-gd
      xmlwriter extension:
      apt-get install php7.0-xmlwriter
      xmlreaderextension:
      apt-get install php7.0-xmlreader

      Установку делали точно так как описано в статье?
      Если не поможет, можно попробовать снести php7 и заново поставить.

      1. Благодарю, помогло, осталась только
        — At least one of MySQL, PostgreSQL, Oracle, SQLite3 or IBM DB2 should be supported.
        остальное всё нормально. Да установку производил точно по статье.
        Меня вот только теперь смущает: после выполнения «mysql -u root -p» он меня спрашивал пароль. Какой именно пароль он хотел я так и не понял, по этому вводи все, что знаю. Несколько раз он ругался на неверный пароль но потом пустил. Что это за пароль и от какого пользователя?

        1. Что то я точно напутал с паролями:
          Теперь у меня
          Database error
          Error connecting to database: Access denied for user ‘zabbix’@’localhost’ (using password: NO)
          Какой пароль он у меня просит? где его узнать\назначить, и в каких конфигах прописать?
          Вы уж простите за возможно глупые вопросы, но сделать очень надо а я Linux очень слаб )))

          1. Опять сам решил: добавил в файл /var/www/zabbix/conf/zabbix.conf.php пароль в соответствующую строку.
            Огромное спасибо за статью!!! Очень помогла

      2. Лушче всего Вам в руководстве сразу задать данные строки ,чтобы не искать в комментах , поскольку при установке PHP7 по умолчанию данные библиотеки не включены
        mbstring:
        apt-get install php7.0-mbstring
        gd extension:
        apt-get install php7.0-gd
        xmlwriter extension:
        apt-get install php7.0-xmlwriter
        xmlreaderextension:
        apt-get install php7.0-xmlreader

        А лучше всего для начинающих пользователей написать команду apt-get install php7.0-*

  5. Добрый день! У меня после запуска nginx, захожу по адресу сервера, выходит forbidden 403 nginx и т.д., может я что то с правами перемудрил? Все делал по инструкции

    1. Возможно неправильно указан файл главной страницы, проверьте параметр index, он должен иметь вид index index.php index.html index.htm. Второй причиной могут быть права для файлов. Попробуйте добавить права на исполнение.
      Ну и на крайний случай, возможно заблокирован доступ к самому сайту по ip 🙂

      PS: Смотрите в логи, там должен быть ответ)

  6. Помогите пожалуйста,не могу разобраться с авторизацией в sql ошибка ERROR 1045 (28000): Access denied for user ‘zabbix’@’localhost’ (using password: YES). В директории /etc/zabbix/zabbix_server.conf пароли и пользователи указаны.

  7. Доброго дня.
    Установил всё успешно, возник вопрос — можно ли теперь с nginx перебраться на apache+php7?
    Дело в том, что на сервере отказаться от использования апача нельзя (требуемый программный продукт работает только с ним; на другой порт я апач, конечно, перевесил, но site.ru:8080 в адресной строке выглядит непрофессионально).
    Возможно ли это или пишу полную глупость? Подскажите, как быть, пожалуйста.

    1. можно не перевешивать на другой порт, а использовать доменное имя. Для этого нужно просто указать в виртуальном хосте параметр ServerName example-host.com. Если я вас правильно понял)

  8. Можете просто копипастнуть этот код в новый файл изменив только root на директорию, где лежит ваш фронт. Перезагружаемся — service nginx restart и готово…….

    У меня вылазиет вот такая ошибка, хотя все дала по этому мануалу. Помогите разобраться
    [email protected]:/home/q/zabbix-3.0.4/frontends# service nginx restart
    Job for nginx.service failed because the control process exited with error code. See «systemctl status nginx.service» and «journalctl -xe» for details.

  9. Добрый день!
    Сделал все по инструкции. Но у меня на последнем шаге в web-интерфейсе появляется сообщение:
    (см скриншот) http://prntscr.com/czi4zy и дальше не идет.
    Если сохранить этот файл где он просит, то появляется следующее:
    http://prntscr.com/czi5fy

    1. Вероятней всего проблема с правами на запись в веб каталоге.
      Или после сохранения файла дайте ему права chown www-data:www-data zabbix.conf.php

  10. После запуска Zabbix выдается ошибка –strtotime(): Invalid date.timezone value ‘Evrope/Moscow’, we selected the timezone ‘UTC’ for now. [zabbix.php:21 → require_once() → ZBase->run() → ZBase->authenticateUser() → CWebUser::checkAuthentication() → CWebUser::setSessionCookie() → strtotime() in include/classes/user/CWebUser.php:135]

    В PHP.INI date.timezone = Evrope/Moskow
    Сервер показывает правильную дату и время.

  11. Тоже прошу помощи. Делал по инструкции, все шло хорошо до момента командной строки MySQL : mysql -u root -p . Выдало ошибку «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock'» Подскажите пожалуйста куда искать.

  12. Здравствуйте.
    После ввода команды mysql -u root -p, выходит сообщение:
    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

  13. запускаю zabbix и снизу надпись zabbix server is not running the information may not be current. подскажите как исправить??

  14. После ввода команды mysql -u root -p, выходит сообщение:
    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

    Для тех кто столкнулся с данной проблемой решение установить: MySQL Tuner
    sudo apt-get install mysqltuner
    После установки запустите ее:
    mysqltuner

    она попросит завести новый пароль, так заведенный пароль нужно вводить при выполнении команды: mysql -u root -p
    Так же как писали выше на всякий случай в файле:/var/www/zabbix/conf/zabbix.conf.php Указать пользователя root и пароль такой же что и при установке MySQL Tuner

    1. Хорошо, что это вам помогло)
      Но причина такого поведения может быть в том, что:

      • Файл сокета отсутствует
      • Занят другим процессом
      • Пользователь не может получить к нему доступ

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

  15. Александр, спасибо за мануал. А можно хотя бы в нескольких словах или ссылку, если вы об этом уже писали? А дальше то что делать? 🙂 Сервер есть, веб-интерфейс работает: а как теперь мониторинг с разных серверов подключать?

    1. Мануалы в дальнейшем будут о мониторинге как windows / linux хостов, так и отдельных частей системы (запросы к базе, днс запросы и т.д.), сейчас занимаюсь подготовкой. На данный момент есть мануал по снятию метрик с коммутатора D-Link DGS-3420-28SC . Плюс небольшой мануал по Zabbix Agent.

  16. Не совсем понял этот момент «Можете просто копипастнуть этот код в новый файл изменив только root на директорию, где лежит ваш фронт. Перезагружаемся — service nginx restart и готово. Пытаемся зайти по адресу нашего сервера, к примеру http://192.168.0.105/»
    возможно именно из-за него не запускается веб интерфейс. я просто открыл файл default и поменял его внутренность но указанную, потом перегрузил Nginx и все . дальше переходил по адерсу http://192.168.0.105/ и пишет Unable to connect

    1. Все манипуляции я производил на виртуальном сервере, который имел адрес http://192.168.0.105/. Если вы настраиваете все на локальном компьютере или на виртуальном сервере, узнайте ip адрес сервера и заходите по нему.

  17. Смотрите проблема такая уже в веб морде на 3 странице где подключение к бд выдает ошибку.
    Configure DB connection
    Cannot connect to the database.
    Details

    The frontend does not match Zabbix database. Current database version (mandatory/optional): 3020000/3020000. Required mandatory version: 3000000. Contact your system administrator.

    Скачал последний zabbix сделал все по инструкции в чем трабл?

    1. Посмотрите в логи сервера заббикс, может он не запущен, если запущен — очистите базу данных и наполняйте их заново всеми таблицами.

  18. В вебинтерфейсе выдает ошибку «Cannot create the configuration file. Unable to create the configuration file.»
    Файл /var/www/zabbix/conf/zabbix.conf.php пустой. В чем проблема?

    1. Нет прав на создание файла. Если не ошибаюсь, вам веб-интерфейс предлагает скачать файл. Просто скачайте и положите в директорию ручками.

      1. Команда gzip -d create.sql.gz не выполняется, ошибка: «No such file or directory»
        Как создать?

  19. Добрый день!
    При выполнении данной команды mysql -u zabbix -p zabbix < create.sql выходит ошибка:
    ERROR 1366 (HY000) at line 3390: Incorrect string value: '\xD0\xA1' for column 'units' at row 1

    Как можно решить данную проблему?

    1. Возможно разные базы данных или их версии. Не сталкивался с таким. Попробую воспроизвести ошибку.
      Еще желательно проверить кодировки таблиц в базе.

    2. Дропните базу, при повторном создании выполните

      ALTER DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_general_ci;

  20. Добрый день!
    Подскажите в чём может быть проблема, после того как сохраняю отредактированный файл php.ini, нажимаю снова next step, те параметры которые были изменены — остались с ошибкой.

      1. Со всеми решил проблему, и понял в чём моя заключалась, после сохранения редактирования, нужно просто перезагрузиться. и временная зона, начальный вид:
        ;date.timezone =
        а надо
        date.timezone = date.timezone = «Europe/Moscow»
        как заметили, надо убрать точку с запятой перед командой и она тогда становиться активной.

  21. Еще вопрос по поводу файлика который в /etc/nginx/sites-enabled/default
    на что заменить строку root /var/www/zabbix; точнее root
    совсем не могу понять: Можете просто копипастнуть этот код в новый файл изменив только root на директорию, где лежит ваш фронт.
    Фронт — я так понимаю это файлик ~/zabbix-3.0.4/frontends

    Спасибо.

  22. Такая проблема, не могу зайти в забикс под именем zabbix и паролем zabbix
    захожу только как гость zabbix

  23. Добрый день после ввода команды cp -R * /var/www/zabbix
    убунта пишет нет указаная цель не является каталогом

  24. Всё установилось, но при попытке входа получаю
    «Access denied

    You are logged in as «guest». You have no permissions to access this page.
    If you think this message is wrong, please consult your administrators about getting the necessary permissions.»

    Окно ввода логина не появляется даже

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *