mirror of
https://git.reisber.space/Reisber/Personal
synced 2026-04-01 15:14:35 +00:00
115 lines
4.9 KiB
Markdown
115 lines
4.9 KiB
Markdown
# Установка Zabix на Debian 13 в связке с Nginx
|
||
|
||
## Установка Zabbix 7 Server и нужных пакетов
|
||
Добавим официальный репозиторий Zabbix для Debian 13 (в данном случае будем ставить версию 7.4 ):
|
||
```
|
||
wget https://repo.zabbix.com/zabbix/7.4/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.4+debian13_all.deb
|
||
dpkg -i zabbix-release_latest_7.4+debian13_all.deb
|
||
apt update
|
||
```
|
||
Установим Zabbix Server, Nginx, Mysql и Zabbix agent:
|
||
```
|
||
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
|
||
apt install mariadb-server -y
|
||
```
|
||
|
||
## Настройка MySQL
|
||
```
|
||
mysql -uroot -p
|
||
```
|
||
Создаем базу данных, пользователя и пароль, даем все привилегии на базу пользователю 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;
|
||
```
|
||
Импортируем начальную схему и данные (вводим недавно созданный пароль в Mysql для нашего пользователя zabbix):
|
||
```
|
||
zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
|
||
```
|
||
Выключаем опцию log_bin_trust_function_creators после импорта схемы базы данных:
|
||
```
|
||
mysql -uroot -p
|
||
```
|
||
```
|
||
set global log_bin_trust_function_creators = 0;
|
||
|
||
quit;
|
||
```
|
||
Настраиваем конфигурационный файл zabbix_server.conf :
|
||
```
|
||
nano /etc/zabbix/zabbix_server.conf
|
||
```
|
||
|
||
Проверяем DBName, DBUser, раскомментируем строку DBPassword и введем там пароль для пользователя zabbix, который мы сделали выше в mysql
|
||
```
|
||
DBName=zabbix
|
||
DBUser=zabbix
|
||
DBPassword=ВАШ ПАРОЛЬ
|
||
```
|
||
|
||
## Настройка Nginx
|
||
Идём в nano /etc/zabbix/nginx.conf
|
||
```
|
||
server {
|
||
listen 8080;
|
||
server_name zabbix.domain.ru;
|
||
}
|
||
```
|
||
|
||
Затем перезапускаем наши службы и добавляем их в автозагрузку
|
||
```
|
||
systemctl restart zabbix-server zabbix-agent nginx php8.4-fpm
|
||
systemctl enable zabbix-server zabbix-agent nginx php8.4-fpm
|
||
|
||
```
|
||
## Получаем SSL сертификат (если все делается без домена, то этот этап можно и нужно пропустить и ходить по HTTP или по самописному серту)
|
||
Установим Сертбот и плагин Nginx
|
||
```
|
||
apt install certbot python3-certbot-nginx
|
||
|
||
```
|
||
Активируем процесс получения сетрификата
|
||
```
|
||
certbot run --nginx
|
||
systemctl restart nginx
|
||
|
||
```
|
||
|
||
## После этого переходим в браузере на http/https:IP/domain_of_your_server
|
||
|
||
|
||
В целом мы подняли базовый Zabbix сервер. Но теперь нам нужно сделать так, что-бы он слал нам уведомления. Для этого:
|
||
Идём в: `Alerts > Media types`
|
||
Там ищем ТГ и включаем его(очевидно, что включаем мы его после того как добавили туда наш чатID и токен от BotFather)
|
||
Далее нужно назначить то, куда пользователь (админ) будет получать уведомления
|
||
`Users > users` (Выбираем нашего пользака)
|
||
`Media` и нажимаем Add
|
||
`Type`: Выбираем ТГ
|
||
`Send to`: Вводим ChatID
|
||
Нажимаем `add и Update`
|
||
|
||
Далее настроим `Trigger Actions`
|
||
`Alerts > Actions > Triger actions`
|
||
Create action
|
||
(задаём имя)
|
||
В `Operations` нажимаем `add`
|
||
`Send to users`: вводим кому будет падать увед
|
||
`Send only to`: выбираем ТГ
|
||
В целом, наш мониторинг уже будет работать, но для дополнительной кастомизации можно настроить уровни, при достижении которых будет срабатывать `Alert Rule`
|
||
`Data collection > Hosts`
|
||
Кликаем на имя хоста (e.g., "Zabbix server").
|
||
Идём во вкладку Macros.
|
||
Нажимаем на `Inherited and host macros` что-бы увидеть доступные опции
|
||
Ищем нужное нам макро, например:
|
||
CPU: Look for {$CPU.UTIL.CRIT}.
|
||
Disk: Look for {$VFS.FS.PUSED.MAX.WARN} (Warning) or {$VFS.FS.PUSED.MAX.CRIT} (Critical).
|
||
Нажимаем изменить и вводим новое значение макро, после чего сохраняем
|
||
И нажимаем Update
|
||
Вот и всё
|