Zabbix сервер на Ubuntu 22.04 (VPS)

Короткие заметки по установке Zabbix-сервера на простейшей VPS для личных нужд

Статья не претендует ни на что — просто заметки чтоб если понадобится, не вспоминать потом

В качестве подопытного VPS сервер у одного из российских хостеров, 1vCPU,1Gb RAM, 20 SSD, за смешные $2,5/месяц. Для моих пары десятков хостов под мониторинг — вполне хватает

  1. Заказываем VPS.
  2. Обновляем пакеты и ставим имя сервера какое нам больше нравитсяв
apt update
apt upgrade -y
mcedit /etc/hostname

3. Далее небольшая особенность одного из российских VPS-хостеров, нужно починить локаль, которая почему-то не просто не настроена в образе по умолчанию

apt install locales wget rsyslog -y
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
reboot

4. Далее ставим джентльменский набор доп утилит. mc, htop, fail2ban. И сразу же запускаем Fail2ban

apt install mc htop fail2ban -y
systemctl restart fail2ban
systemctl enable fail2ban
systemctl status fail2ban

Проверить статус блокировок по sshd можно командой

fail2ban-client status sshd

Далее ставим файрвол UFW и минимально настраиваем (закрываем входящий трафик, открываем исходящий, открываем порты для SSH и HTTP\HTTPS

apt install ufw -y
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Дальше начинаем ставить Zabbix. Качаем и подключаем репозиторий

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu22.04_all.deb
dpkg -i zabbix-release_latest+ubuntu22.04_all.deb
apt update

Ставим MySQL (нам ведь нужна БД для работы Zabbix). После установки проверяем статус.

apt install mysql-server -y
service mysql status

Ставим сам Zabbix со всеми нужными пакетами. В качестве веб-сервера будем использовать Nginx

apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent -y

Делаем необходимые настройки БД. Подключаемся к mySQL (пароля по умолчанию нет), создаем БД, создаем пользователя с паролем (внимательно! этот пароль потом понадобится), даем ему права, и временно выставляем переменную, после чего выходим

mysql -uroot -p

create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'zabpassword';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;

Далее запускаем скрипт наполнения БД. Здесь для подключения к БД от имени нового пользователя нам понадобится его пароль, созданный на прошлом шаге. Наполнение БД может идти долго (5-15 мин) особенно на маломощном VPS

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix #need to enter newly created password

После того как все закончилось, снова подключаемся к mySQL и возвращаем переменную к дефолтному значению

mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;

Далее правим настройки самого Zabbix. Находим строку с DBpassword и пишем пароль пользователя Zabbix, который мы создавали немного ранее

mcedit /etc/zabbix/zabbix_server.conf
DBPassword=password

Далее идем в настройки Nginx и слегка редактируем дефолтные значения

mcedit /etc/zabbix/nginx.conf
listen 8080;
server_name zab2.dcub.ru;

Перезапускаем службы Zabbix и выставляем им автостарт

systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm

После чего запускаем веб-интерфейс и проводим первоначальную настройку (ничего можно не менять, только пароль вбейте). Все, Zabbix готов к работе. Входим в веб-интерфейс (дефолтный админ: Admin/zabbix), меняем сразу же ему пароль и настраиваем хосты, шаблоны, мейнтенс периоды, медии и так далее

По настройкам самого Zabbix

В шаблонах Windows сервера в макросах добавить исключение для служб

Windows by Zabbix agent
Macros {$SERVICE.NAME.NOT_MATCHES}
add Google.+|UALSVC

Настройка SSL Сертификата и его автообновление от Let’s Encrypt. Ставим бота, получаем сертификат (если ранее не было аккаунта для домена — нужно будет подтвердить), смотрим наши правила фарвола и убираем то, которое связано с HTTP, оставляем только HTTPS

apt install certbot python3-certbot-nginx -y
nginx -t
certbot --nginx -d zab2.dcub.ru
a@dcub.ru

systemctl status certbot.timer

ufw status numbered
ufw delete XX #(tcp\80)

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

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

Post Navigation

 
Яндекс.Метрика