Сегодня поставим zabbix 4.2. Устанавливать будем на сервер Ubuntu. В качестве базы данных используем postgresql на том же сервере. Веб сервером послужит apache2.
Ссылки
Есть официальная документация:
https://www.zabbix.com/documentation/4.2/ru/manual/installation/install_from_packages/debian_ubuntu
Но здесь только mysql описывается. В более ранних версиях есть примеры установки postgresql, но они не всё описывают, приходится доходить своим умом и поиском в Интернете. Распишу как ставил я.
Репозиторий
Сначала добавим репозиторий заббикса. Если устанавливать заббикс из других репозиториев, то может чего-то не хватить. Так я сходу не смог накатить структура базы на postgresql, не хватило нужных файлов в пакете.
Выполняем скрипт под рутом.
Для Ubuntu 18.04 (Bionic Beaver) LTS:
wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+bionic_all.deb
dpkg -i zabbix-release_4.2-1+bionic_all.deb
apt update
Для Ubuntu 14.04 (Trusty Tahr) LTS:
wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+trusty_all.deb
dpkg -i zabbix-release_4.2-1+trusty_all.deb
apt update
Для Debian 9 (Stretch):
wget https://repo.zabbix.com/zabbix/4.2/debian/pool/main/z/zabbix-release/zabbix-release_4.2-1+stretch_all.deb
dpkg -i zabbix-release_4.2-1+stretch_all.deb
apt update
Для Debian 8 (Jessie):
wget https://repo.zabbix.com/zabbix/4.2/debian/pool/main/z/zabbix-release/zabbix-release_4.2-1+jessie_all.deb
dpkg -i zabbix-release_4.2-1+jessie_all.deb
apt update
У меня Ubuntu 16. Для Ubuntu 16.04 (Xenial Xerus) LTS выполняю:
wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+xenial_all.deb
dpkg -i zabbix-release_4.2-1+xenial_all.deb
apt update
После выполнение кода в /etc/apt/source.list.d появляется файл zabbix.list:
Репозиторий установлен. Можно заодно выполнить обновление:
apt upgrade
Установка zabbix server
Как я уже говорил, заббикс будет работать на postgresql. Фронтенд тоже будет находиться здесь же.
apt-get install zabbix-server-pgsql zabbix-frontend-php
Устанавливается zabbix-server, apache2, php7.0, postgresql-9.5 и другие пакеты.
Создание базы в postgresql
Теперь нам нужно создать базу в postgresql и пользователя с правами на неё.
sudo -i
sudo -i -u postgres
psql
CREATE DATABASE zabbix WITH ENCODING='UTF-8';
CREATE USER zabbix WITH PASSWORD 'тут_пароль';
GRANT ALL ON DATABASE zabbix TO zabbix;
\q
База и пользователь zabbix созданы.
Накатим структуру базы. Таблички там, индексы. Проверьте наличие файла /usr/share/doc/zabbix-server-pgsql/create.sql.gz. Если его нет, то пакет вы поставили из неродного репозитория, накатить структуру базы сходу не получится. Если репозиторий рабочий, файл есть, то выполняем:
zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | psql -h localhost zabbix zabbix
Настройка zabbix-server
Правим /etc/zabbix/zabbix-server.conf:
DBHost=
DBName=zabbix
DBUser=zabbix
DBPassword=тут_пароль
Потом выполняем:
systemctl enable zabbix-server
systemctl start zabbix-server
Настройка apache и php
Если зайти в браузер на IP адрес сервера zabbix - http://10.10.10.10/zabbix, то видим код php в виде текста. Не все пакеты нам поставили, добавляем:
apt-get install libapache2-mod-php
#не помню, нужно ли активировать модуль php, если он не активируется сам, то:
#a2enmod php7.0
Отключаем дефолтный сайт:
a2dissite 000-default.conf
Правим конфиг /etc/apache2/conf-enabled/zabbix.conf. Уберём заббикс из директории /zabbix и перенесём в корень:
# Define /zabbix alias, this is the default
#<IfModule mod_alias.c>
# Alias /zabbix /usr/share/zabbix
#</IfModule>
DocumentRoot /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Moscow
</IfModule>
<IfModule mod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Moscow
</IfModule>
</Directory>
<Directory "/usr/share/zabbix/conf">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
<Directory "/usr/share/zabbix/app">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
<Directory "/usr/share/zabbix/include">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
<Directory "/usr/share/zabbix/local">
Order deny,allow
Deny from all
<files *.php>
Order deny,allow
Deny from all
</files>
</Directory>
Перезагружаем апач:
service apache2 restart
Смотрим что получилось:
Вроде работает. Далее следуем инструкциям.
Примечание
Баги, найденные пользователями и отмеченные в комментариях.
В окне конфигурации БД отсутствует PostgreSQL.
Sergey Sidenko
Решение
Sergey Sidenko
Поставил php7.0-pgsql и в выпадашке PGSQL появилось и мастер дошел до упора.
Evgeny Samuilov
Та же история. Ubuntu server 18.04.2. Поставил дополнительно пакет php7.2-pgsql и всё появилось.
P.S.
Если что-то забыл в инструкции — напишите, исправим.