Установка Zabbix Server на Ubuntu

Статьи

Полное руководство по установке и настройке Zabbix Server 7.4 на Ubuntu с PostgreSQL.

Требования

  • Ubuntu 20.04 или 22.04 LTS
  • Минимум 2 ГБ RAM
  • 10 ГБ свободного места на диске
  • Права администратора (sudo)

1. Подготовка системы

Обновляем систему и устанавливаем необходимые пакеты:

sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl lsb-release gnupg2

Определяем версию Ubuntu:

UBUNTU_VERSION=$(lsb_release -cs)
echo "Версия Ubuntu: $UBUNTU_VERSION"

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

Загружаем и устанавливаем официальный репозиторий:

# Для Ubuntu 22.04
wget https://repo.zabbix.com/zabbix/7.4/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.4+ubuntu22.04_all.deb

# Для Ubuntu 20.04 замените на:
# wget https://repo.zabbix.com/zabbix/7.4/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.4+ubuntu20.04_all.deb

sudo dpkg -i zabbix-release_latest_7.4+ubuntu*.deb
sudo apt update

3. Установка компонентов Zabbix

Устанавливаem Zabbix server, веб-интерфейс и базу данных:

sudo apt install -y zabbix-server-pgsql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2 postgresql postgresql-contrib

4. Настройка PostgreSQL

4.1. Запуск и включение PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql
4.2. Создание базы данных и пользователя
# Переключаемся на пользователя postgres
sudo -u postgres psql

В консоли PostgreSQL выполняем:

CREATE USER zabbix WITH PASSWORD 'your_strong_password_here';
CREATE DATABASE zabbix OWNER zabbix;
GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;
\q

⚠️ Важно: Замените your_strong_password_here на надежный пароль и запишите его!

4.3. Импорт схемы базы данных
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

5. Настройка Zabbix Server

Редактируем конфигурационный файл:

sudo nano /etc/zabbix/zabbix_server.conf

Находим и изменяем следующие параметры:

# Раскомментируйте и укажите параметры БД
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=your_strong_password_here

# Дополнительные настройки производительности
StartPingers=10
StartPollersUnreachable=5
StartTrappers=10
StartTimers=2
StartEscalators=2
CacheSize=32M

6. Настройка веб-сервера Nginx

6.1. Настройка Nginx для Zabbix
sudo nano /etc/zabbix/nginx.conf

Редактируем конфигурацию:

server {
    listen 80;
    server_name your-domain.com;  # Замените на ваш домен или IP
    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|vendor) {
        deny all;
        return 404;
    }

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

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}
6.2. Активация конфигурации
sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/sites-enabled/zabbix.conf
sudo nginx -t  # Проверка конфигурации
6.3. Настройка PHP

Определяем версию PHP:

php -v

Редактируем настройки PHP (замените 8.1 на вашу версию):

sudo nano /etc/php/8.1/fpm/conf.d/99-zabbix.ini

Добавляем необходимые настройки:

max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
max_input_vars = 10000
date.timezone = Europe/Moscow

7. Настройка firewall

Открываем необходимые порты:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10051/tcp  # Zabbix server port
sudo ufw allow 10050/tcp  # Zabbix agent port

8. Запуск сервисов

Определяем актуальную версию PHP-FPM:

PHP_VERSION=$(php -v | head -n1 | cut -d' ' -f2 | cut -d'.' -f1,2)
echo "Версия PHP: $PHP_VERSION"

Запускаем и включаем автозагрузку сервисов:

sudo systemctl restart zabbix-server zabbix-agent2 nginx php${PHP_VERSION}-fpm
sudo systemctl enable zabbix-server zabbix-agent2 nginx php${PHP_VERSION}-fpm

9. Проверка статуса сервисов

Проверяем, что все сервисы запущены успешно:

sudo systemctl status zabbix-server
sudo systemctl status zabbix-agent2
sudo systemctl status nginx
sudo systemctl status php${PHP_VERSION}-fpm

Проверяем логи в случае проблем:

sudo tail -f /var/log/zabbix/zabbix_server.log

10. Настройка веб-интерфейса

  1. Откройте в браузере: http://ваш_сервер/zabbix
  2. Следуйте инструкциям мастера установки
  3. На этапе настройки базы данных укажите:
    • Тип БД: PostgreSQL
    • Хост БД: localhost
    • Порт БД: 5432
    • Имя БД: zabbix
    • Пользователь: zabbix
    • Пароль: ваш_пароль

11. Первый вход в систему

После завершения установки войдите в систему с учетными данными по умолчанию:

Данные для входа:

  • Логин: Admin
  • Пароль: zabbix

🔒 Безопасность: Обязательно смените пароль администратора после первого входа!

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

12.1. Настройка SSL (рекомендуется)

Для продакшн-среды настройте SSL-сертификат:

# Установка Certbot для Let's Encrypt
sudo apt install -y certbot python3-certbot-nginx

# Получение SSL-сертификата
sudo certbot --nginx -d ваш-домен.com
12.2. Настройка резервного копирования

Создайте скрипт для резервного копирования базы данных:

sudo nano /usr/local/bin/zabbix-backup.sh
#!/bin/bash
BACKUP_DIR="/var/backups/zabbix"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p $BACKUP_DIR

# Резервная копия базы данных
pg_dump -U zabbix -h localhost zabbix | gzip > $BACKUP_DIR/zabbix_db_$DATE.sql.gz

# Резервная копия конфигурации
tar -czf $BACKUP_DIR/zabbix_config_$DATE.tar.gz /etc/zabbix/

# Удаление старых копий (старше 7 дней)
find $BACKUP_DIR -name "*.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/zabbix-backup.sh

Устранение неполадок

Проблема: Zabbix server не запускается
# Проверить логи
sudo journalctl -u zabbix-server -f

# Проверить конфигурацию
sudo zabbix_server -c /etc/zabbix/zabbix_server.conf -t
Проблема: Веб-интерфейс недоступен
# Проверить статус nginx
sudo systemctl status nginx

# Проверить конфигурацию nginx
sudo nginx -t

# Проверить права доступа
sudo chown -R www-data:www-data /usr/share/zabbix/
Проблема: Ошибки подключения к базе данных
# Проверить подключение к PostgreSQL
sudo -u zabbix psql -h localhost -d zabbix -c "SELECT version();"

# Проверить настройки в файле конфигурации
sudo grep -E "^DB" /etc/zabbix/zabbix_server.conf

Поздравляем! Zabbix Server успешно установлен и настроен. Теперь вы можете приступить к мониторингу вашей инфраструктуры.

Другие услуги