Введение
В данной небольшой заметке разберем установку Zabbix 6.4 в Debian 11 в связке с Nginx и Mysql
Установка Zabbix Server и нужный пакетов
1. Добавим официальный репозиторий Zabbix для Debian 11 (в данном случае будем ставить версию 6.4):
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
dpkg -i zabbix-release_6.4-1+debian11_all.deb
apt update && apt upgrade -y
2. Установим Zabbix Server, Nginx, Mysql и Zabbix agent:
apt install zabbix-server-mysql mariadb-server zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Настройка Mysql
1. Запускаем mysql secure installation скрипт:
mysql_secure_installation
Enter current password for root (enter for none):
OK, successfully used password, moving on... Жмем ENTER так как у нас пока не задан пароль
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] y
СОЗДАЕМ ПАРОЛЬ ДЛЯ ROOT в Mysql
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
2. Создаем базу данных, пользователя и пароль, даем все привилегии на базу пользователю zabbix:
mysql -uroot -p
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'ПАРОЛЬ';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
3. Импортируем начальную схему и данные (вводим недавно созданный пароль в Mysql для нашего пользователя zabbix):
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
4. Выключаем опцию log_bin_trust_function_creators после импорта схемы базы данных:
mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;
5. Настраиваем конфигурационный файл zabbix_server.conf :
nano /etc/zabbix/zabbix_server.conf
Проверяем DBName, DBUser, раскомментируем строку DBPassword и введем там пароль для пользователя zabbix, который мы сделали выше в mysql
(Для поиска по файлу в nano можно воспользоваться сочетанием Ctrl+W):
DBName=zabbix
DBUser=zabbix
DBPassword=ВАШ ПАРОЛЬ
Настройка PHP-FPM
Установим Timezone в /etc/zabbix/php-fpm.conf:
nano /etc/zabbix/php-fpm.conf
php_value[date.timezone] = Europe/Moscow
Настройка Nginx
Откроем файл конфигурации /etc/zabbix/nginx.conf
, раскомментируем и отредактируем директивы listen (можно указать любой порт) и server_name, в последнее вводим ваш домен или IP адрес сервера:
nano /etc/zabbix/nginx.conf
server {
listen 80;
server_name zabbix.domain.ru;
Перезапускаем наши службы и добавляем в автозагрузку:
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
Получаем SSL сертификат для домена с помощью Certbot: (пропускаем если производите установку без своего домена)
1. Установим Certbot и Nginx плагин в Debian 11:
apt install certbot python3-certbot-nginx
2. Выпускаем сертификат, вводим свою почту, принимаем пользовательские соглашения, соглашаемся или нет с рассылками, выбираем наш домен и жмем Enter:
certbot run --nginx
3. Перезагружаем Nginx:
service nginx restart
Генерируем самоподписанный SSL сертификат для Zabbix с помощью OpenSSL для локального пользования
Генерируем сертификат с помощью OpenSSL на один год (можете указать любое количество времени в ключе -days):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/zabbix.key -out /etc/ssl/certs/zabbix.crt
Данные можно указывать любые, кроме Common Name, там укажите свой ip или имя:
Далее приведем конфиг /etc/zabbix/nginx.conf к такому виду (можно просто заменить весь конфиг этим, не забудьте заменить директиву server_name на свой ip или имя):
nano /etc/zabbix/nginx.conf
server {
listen 80;
server_name zabbix.local; #ip или доменное имя
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name zabbix.local; #ip или доменное имя
root /usr/share/zabbix;
index index.php;
ssl_certificate /etc/ssl/certs/zabbix.crt; # путь к сертификату
ssl_certificate_key /etc/ssl/private/zabbix.key; # путь к приватному ключу
ssl_protocols TLSv1.2; # минимальный уровень протокола
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 /vendor {
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;
}
}
Готово, теперь наше соединение защищено протоколом https
Завершаем установку Zabbix Server
Переходим в браузер по http://вашip:порт или https://домену_который_вы_указали.ru:порт завершаем установку:
Дефолтный логин пароль от Zabbix сервера:
Admin
zabbix
Сразу изменим пароль администратора на более безопасный:
Users=>Users=>Выбираем пользователя Admin=>Жмем Change Password=>Жмем Update
Вывод
В данной заметке разобрали как за небольшое количество времени развернуть Zabbix Server 6.4 на Debian 11 в связке с Nginx и Mysql, выпустили бесплатный SSL сертификат для вашего домена и сгенерировали SSL сертификат для локального использования.
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)
Так же вы можете отблагодарить автора материально:
только уже на этапе установки невозможно скачать и поставить 2 компонента..
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
E: Unable to locate package zabbix-nginx-conf
E: Unable to locate package zabbix-sql-scripts
это уже давно, что то изза санкций больше не доступно в нашей стране.
Была похожая ситуация на Ubuntu, но там были проблемы c
/etc/apt/sources.list.d/zabbix.list
, были закомментированы репозитории ZabbixПроверьте, там должно быть 2 репозитория для Debian 11:
deb https://repo.zabbix.com/zabbix/6.4/debian bullseye main
deb-src https://repo.zabbix.com/zabbix/6.4/debian bullseye main
Для Ubuntu должны быть репозитории:
deb https://repo.zabbix.com/zabbix/6.4/ubuntu jammy main
deb-src https://repo.zabbix.com/zabbix/6.4/ubuntu jammy main
Ну и команды вначале немного другие для Ubuntu(22.04):
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo apt update && apt upgrade -y
А так, до того как написать заметку ставил по ней несколько раз на Debian 11, все отлично работает
Спасибо, отличная инструкция, устанавливая без домена стоить обратить внимание на конфиг nano /etc/zabbix/nginx.conf
Здесь я вводил параметры ip адреса
server {
listen 8780;
server_name 172.16.1.85;
Для тех кто без домена.
Рад что пригодилось)
Да, там можно указать как доменное имя так и ip адрес сервера где устанавливается Zabbix, порт можно использовать любой свободный