Найти в Дзене

Zabbix 5.0 — установка на Ubuntu, база Postgresql

Ubuntu 18.04 (Bionic), PostgreSQL 10, Nginx
Оглавление

Пришла задачка установить Zabbix, устанавливаю и параллельно пишу эту статью. Устанавливать будем на сервер Ubuntu 18.04 (Bionic). База данных PostgreSQL 10. Веб сервер Nginx.

Инструкция есть на официальном сайте, моя будет более подробная.

https://www.zabbix.com/ru/download?zabbix=5.0&os_distribution=ubuntu&os_version=18.04_bionic&db=postgresql&ws=nginx

-2

Я подготовил виртуальную машину с 4 CPU, 4 Гб ОЗУ и отдельным диском на 100 Гб. Установил Ubuntu 18.04.

Установка Ubuntu Server 18.04.2 LTS на виртуальную машину VMware

Работаем под рутом.

Устанавка репозитория Zabbix

Сначала добавим репозиторий заббикса. Если устанавливать заббикс из других репозиториев, то может чего-то не хватить.

cd /tmp
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb
dpkg -i zabbix-release_5.0-1+bionic_all.deb
apt update

После выполнение кода в /etc/apt/source.list.d появляется файл zabbix.list.

-3

Репозиторий установлен.

Устанавка Zabbix сервера, веб-интерфейса и агента

apt install zabbix-server-pgsql zabbix-frontend-php php7.2-pgsql zabbix-nginx-conf zabbix-agent

Установка PostgreSQL 10

В официальной инструкции этого не сказано, но нужно установить PostgreSQL. Я уже раньше писал инструкции:

Установка Postgresql 10 на Ubuntu 18.04 LTS

Не забываем при установке перенести всё на отдельный диск в /opt.

Создание базы данных Zabbix

Выполняем:

sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

При этом нас попросят указать пароль от пользователя zabbix, придумываем и запоминаем. Укажем пароль в конфигурационном файле /etc/zabbix/zabbix_server.conf:

DBPassword=password

где вместо "password" пишем пароль.

Импортируем схему БД.

zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

Настроим Nginx

Редактируем файл /etc/zabbix/nginx.conf, раскомментируем и настроим директивы 'listen' и 'server_name'.

listen 80;
server_name example.com;

Редактируем файл /etc/zabbix/php-fpm.conf, раскомментируем строку и укажем свой часовой пояс:

; php_value[date.timezone] = Europe/Riga

меняю на:

php_value[date.timezone] = Europe/Moscow

Первый запуск

Запустим процессы Zabbix сервера и агента, настроим их запуск при загрузке ОС.

systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.2-fpm

Дальнейшие настройки делаем через веб интерфейс http://server_ip_or_name.

-4

Добро пожаловать в Zabbix 5.0. Next step.

-5

Убеждаемся, что всё OK. Next step.

-6

Указываем настройки для базы данных и пароль. Next step.

-7

Настраиваю сервер. Next step.

-8

Убеждаемся, что всё указали верно. Next step.

-9

Фронтенд настроили. Finish.

-10

При первом входе используем логин "Admin", пароль "zabbix".

-11

Интерфейс заработал, база подцепилась.

Дополнительные настройки

Cannot adopt OID

Ошибки в логах zabbix-сервера на Ubuntu:

Cannot adopt OID in NET-SNMP-AGENT-MIB: nsCacheEntry ::= { nsCacheTable 1 }

Лечим:

sudo apt-get install snmp-mibs-downloader

Zabbix — Cannot adopt OID...

SSL

По умолчанию nginx для Zabbix 5.0 настроен на работу по протоколу HTTP. Настроим HTTPS. Нам понадобятся SSL сертификаты SSL сертификат можно купить, можно сделать самоподписанные сертификаты. Я же буду делать SSL сертификаты, подписанные корпоративным центром сертификации. Генерирую CSR и KEY для SSL сертификатов с помощью подсистемы Linux. Извините, работаю на винде.

Windows 10 — генерация CSR и KEY для SSL сертификатов с помощью подсистемы Linux

В процессе работы мне понадобилось сконвертировать цепочку P7B в PEM.

Windows — конвертация P7B в PEM с помощью подсистемы Linux

-12

Создаём папку /etc/zabbix/ssl для хранения ключей, в ней размещаем файлы ключа и приватного сертификата:

mkdir /etc/zabbix/ssl
cd /etc/zabbix/ssl
touch zabbix-cert.pem
touch zabbix-key.pem

Содержимое сертификата zabbix.pem и ключа zabbix.key копируем в созданные файлы zabbix-cert.pem и zabbix-key.pem.

Поскольку центр сертификации корпоративный, понадобится добавить корневые сертификаты на Zabbix сервер:

Добавление корневых сертификатов в Ubuntu 18.04

Правим конфигурационный файл /etc/zabbix/nginx.conf:

server {
listen 80;
listen 443 ssl;
server_name example.com;

charset utf-8;

ssl_certificate /etc/zabbix/ssl/zabbix-cert.pem;
ssl_certificate_key /etc/zabbix/ssl/zabbix-key.pem;

if ($scheme != "https") {
return 301 https://$host$request_uri;
}

root /usr/share/zabbix;

index index.php;

location = /favicon.ico {
log_not_found off;
}

location / {
try_files $uri $uri/ =404;
}

location /assets {
access_log off;
expires 10d;
}

location ~ /\.ht {
deny all;
}

location ~ /(api\/|conf[^\.]|include|locale) {
deny all;
return 404;
}

location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/var/run/php/zabbix.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;

fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}

Теперь при входе на HTTP версию сайта будет происходить редирект на HTTPS версию.

Перезапускаем сервисы:

systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm
-13

Zabbix сервер работает по HTTPS.

Источник:
https://internet-lab.ru/zabbix_5_0_install_ubuntu_postgresql

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.