Запуск сервера Zabbix 6.4 в Gentoo

Пошаговое руководство по установке и быстрому запуску системы мониторинга Zabbix 6.4 в связке со стеком nginx, PHP 8.1 и PostgreSQL 15.2 на ОС Gentoo GNU/Linux

Начнём с установки СУБД PostgreSQL версии 15.2.

Здесь всё просто

# emerge --ask dev-db/postgresql
# emerge --config dev-db/postgresql

Запускаем службу postgresql-15 и добавляем её в автозагрузку

# rc-service postgresql-15 start
# rc-update add postgresql-15 default

Переходим к веб-серверу nginx.

Открываем файл /etc/portage/package.use/zz-autounmask

# nano /etc/portage/package.use/zz-autounmask

пропишем туда такую строчку:

>=app-misc/mime-types-2.1.53 nginx

и запускаем установку

# emerge --ask nginx

Запускаем службу nginx и добавляем её в автозагрузку

# rc-service nginx start
# rc-update add nginx default

После этого установим PHP с расширениями

# USE="fpm postgres pdo zip bzip2 mbstring unicode cgi intl curl gd pear json ssl ldap imap memcache imagemagick session spell xmlrpc tidy xsl xslt flatfile fileinfo opcache webp exif sodium bcmath sockets gdbm xmlwriter xmlreader odbc" emerge --ask php

По окончанию не забываем запустить службу php-fpm и добавить её в автозагрузку

# rc-service php-fpm start
# rc-update add php-fpm default

Теперь переходим к установке Zabbix.

Для этого сначала открываем файл /etc/portage/package.use/zz-autounmask

# nano /etc/portage/package.use/zz-autounmask

и допишем туда такие строчки:

>=net-analyzer/fping-5.1 suid
>=dev-lang/php-8.1.16 xmlreader bcmath sysvipc sockets gd xmlwriter truetype

Затем запускаем установку

# USE="server agent openssl postgres curl frontend java ldap libxml2 odbc snmp ssh fpm" emerge --ask zabbix

Данный процесс займёт некоторое время, поэтому терпеливо дождёмся окончания.

Переходим к настройке PHP. Для этого сделаем копию файла php.ini

# cp /etc/php/fpm-php8.1/php.ini /etc/php/fpm-php8.1/php.ini.bak

открываем его

# nano /etc/php/fpm-php8.1/php.ini

и внесём такие изменения:

post_max_size = 16M
max_execution_time = 300
max_input_time = 300

Также нам понадобится открыть файл /etc/php/fpm-php8.1/fpm.d/www.conf

# nano /etc/php/fpm-php8.1/fpm.d/www.conf

и в самом конце дописать такие срочки:

listen = /run/php-fpm.socket
listen.owner = nginx

После этого необходимо перезапустить службу php-fpm

# rc-service php-fpm restart

Далее сделаем копию файла настроек nginx

# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

открываем его

# nano /etc/nginx/nginx.conf

перед разделом server исправим параметр индексного файла:

index index.php;

а сам раздел server приведём к следующему виду:

server {
	listen 192.168.100.5;

	root /usr/share/webapps/zabbix/6.4.0-r1/htdocs;
	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|vendor) {
		deny all;
		return 404;
	}

	location ~ [^/]\.php(/|$) {
		fastcgi_pass unix:/run/php-fpm.socket;
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_index index.php;

		fastcgi_param DOCUMENT_ROOT /usr/share/webapps/zabbix/6.4.0-r1/htdocs;
		fastcgi_param SCRIPT_FILENAME /usr/share/webapps/zabbix/6.4.0-r1/htdocs$fastcgi_script_name;
		fastcgi_param PATH_TRANSLATED /usr/share/webapps/zabbix/6.4.0-r1/htdocs$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;
	}

}

Здесь важно обратить внимание на следующие параметры:

  • listen 192.168.100.5 — это IP-адрес сервера, на котором располагается веб-интерфейс заббикса;
  • /usr/share/webapps/zabbix/6.4.0-r1/htdocs — путь к веб-интерфейсу

После этого перезапускаем службу nginx

# rc-service nginx restart

Далее переходим к СУБД.

Сменим пользователя на postgres

# su postgres

и создадим базу данных zabbix с пользователем zabbix

# createuser --pwprompt zabbix
# createdb -O zabbix zabbix

Готово. Теперь выходим из пользователя postgres и возвращаемся к root

# exit

Затем переходим в каталог с sql-скриптами для Заббикса

# cd /usr/share/zabbix/database/postgresql/

здесь будут такие скрипты: schema.sql, data.sql, history_pk_prepare.sql, images.sql, timescaledb.sql, double.sql

и выполним запросы для пополнения базы данных первоначальными данными из этих скриптов

# psql -U zabbix -d zabbix -h 127.0.0.1 -p 5432 -f schema.sql -W
# psql -U zabbix -d zabbix -h 127.0.0.1 -p 5432 -f double.sql -W
# psql -U zabbix -d zabbix -h 127.0.0.1 -p 5432 -f images.sql -W
# psql -U zabbix -d zabbix -h 127.0.0.1 -p 5432 -f history_pk_prepare.sql -W
# psql -U zabbix -d zabbix -h 127.0.0.1 -p 5432 -f data.sql -W
# psql -U zabbix -d zabbix -h 127.0.0.1 -p 5432 -f timescaledb.sql -W

Теперь переходим к настройке конфигурации Заббикса через веб-интерфейс.

Для этого на другой машине в сети в адресной строке браузера вводим http://192.168.100.5/setup.php и увидим мастера установки:

Выбираем русский язык, жмём Далее и попадём на проверку условий сервера для работы Заббикса

Всё должно быть хорошо. Жмём Далее.

Настраиваем подключение к базе данных:

Всякие остальные настройки:

Проверяем, нигде ли мы не ошиблись:

А вот на этом этапе нам необходимо скачать и сохранить файл zabbix.conf.php и отправить его в /usr/share/webapps/zabbix/6.4.0-r1/htdocs/conf/

Жмём Финиш и система должна нас поздравить:

После этого возвращаемся на сервер и проверяем файлы настроек /etc/zabbix/zabbix_server.conf и /etc/zabbix/zabbix_agentd.conf. При необходимости корректируем их.

Затем запускаем службы zabbix-server и zabbix-agentd и включаем их в автозагрузку

# rc-service zabbix-server start
# rc-update add zabbix-server default
# rc-service zabbix-agentd start
# rc-update add zabbix-agentd default

Возвращаемся на машину с мастером установки и вводим логин Admin и пароль zabbix:

Жмём Войти и попадаем в дашборд Заббикса

Теперь можно проверить, всё ли у нас хорошо с сервером — переходим в меню Отчёты и пункт Информация о системе:

Если покажет, что всё хорошо, значит сервер готов к дальнейшей настройке.

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

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