Мониторинг. · 20 min read · Oct 09, 2025

Как установить и настроить сервер и клиент Zabbix на Rocky Linux 9

Zabbix — это бесплатное и открытое решение для мониторинга ИТ-инфраструктуры, такой как сети, серверы, виртуальные машины и облачные сервисы. Его ядро написано на C и Java, а фронтенд — на PHP. Фронтенд предоставляет веб-интерфейс для отслеживания и мониторинга метрик, таких как использование сети, загрузка ЦП, дисковое пространство и т. д., и отправляет уведомления на основе настроенных триггеров.

Zabbix работает по модели клиент/сервер. Клиенты или агенты, доступные для различных операционных систем, связываются с сервером для отправки данных. Для систем без агента Zabbix предоставляет возможность использовать общие протоколы мониторинга, такие как Простой протокол управления сетью (SNMP) или Интерфейс управления интеллектуальной платформой (IPMI).

В этом руководстве вы узнаете, как установить сервер и клиент Zabbix на сервер Rocky Linux 9.

Предварительные требования

  • Два сервера с Rocky Linux 9. Один будет функционировать как сервер, а другой — как клиент, который мы будем мониторить с помощью сервера.
  • Непривилегированный пользователь с правами sudo.
  • Полное доменное имя (FQDN), например zabbix.example.com, указывающее на ваш сервер.
  • Учетная запись SMTP с почтовым сервисом, таким как Amazon SES или Mailgun.
  • Все обновлено. $ sudo dnf update
  • Для работы руководства и сервера Zabbix требуется несколько основных пакетов. Некоторые из них уже могут быть на вашем сервере. $ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -y

Шаг 1 - Настройка брандмауэра

Первый шаг — настроить брандмауэр. Rocky Linux использует брандмауэр Firewalld. Проверьте статус брандмауэра.

$ sudo firewall-cmd --state
running

Брандмауэр работает с различными зонами, и публичная зона является той, которую мы будем использовать по умолчанию. Перечислите все службы и порты, активные на брандмауэре.

$ sudo firewall-cmd --permanent --list-services

Он должен показать следующий вывод.

cockpit dhcpv6-client ssh

Открытые порты 10050 и 10051 необходимы серверу Zabbix для подключения к агенту.

$ sudo firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent

Разрешите порты HTTP и HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Проверьте статус брандмауэра еще раз.

$ sudo firewall-cmd --permanent --list-all

Вы должны увидеть аналогичный вывод.

public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client http https ssh
  ports: 10051/tcp 10050/tcp
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Перезагрузите брандмауэр, чтобы применить изменения.

$ sudo firewall-cmd --reload

Шаг 2 - Установите SELinux в режим разрешения

Настройте SELinux для работы в режиме разрешения. В этом режиме SELinux не будет блокировать никакие процессы, но будет записывать все в файл журнала аудита. Мы будем использовать это позже для настройки правил SELinux.

$ sudo setenforce 0 && sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Проверьте статус SELinux.

$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

Шаг 3 - Настройка Nginx и репозитория PHP

Пакет Zabbix автоматически установит PHP и Nginx. Но он захватит более старые версии из них. Поэтому нам нужно убедиться, что процесс установит последнюю доступную версию.

Создайте и откройте файл /etc/yum.repos.d/nginx.repo для редактирования.

$ sudo nano /etc/yum.repos.d/nginx.repo

Вставьте следующий код в него.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

После завершения сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Включите основной репозиторий Nginx.

$ sudo dnf config-manager --enable nginx-mainline

Далее нам нужно настроить репозиторий PHP.

Первый шаг — получить репозиторий Epel.

$ sudo dnf install epel-release -y

Далее установите репозиторий Remi.

$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

Проверьте доступные потоки PHP.

$ dnf module list php -y
Name    Stream              Profiles                                      Summary
php     8.1                 common [d], devel, minimal                    PHP scripting language

Remi's Modular repository for Enterprise Linux 9 - x86_64
Name    Stream              Profiles                                      Summary
php     remi-7.4            common [d], devel, minimal                    PHP scripting language
php     remi-8.0            common [d], devel, minimal                    PHP scripting language
php     remi-8.1            common [d], devel, minimal                    PHP scripting language
php     remi-8.2            common [d], devel, minimal                    PHP scripting language
php     remi-8.3            common [d], devel, minimal                    PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Версия по умолчанию — 8.1. На момент написания этого руководства Zabbix совместим с PHP 8.2. Поэтому включите репозиторий PHP 8.2 от Remi. Следующая версия Zabbix будет поддерживать PHP 8.3, поэтому вы можете включить ее, если ваша версия Zabbix 6.0.26 или выше.

$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2

Теперь мы можем перейти к установке Zabbix.

Шаг 4 - Установка сервера Zabbix

Пакеты Zabbix по умолчанию предоставляются в репозитории EPEL. Перед тем как продолжить установку, нам нужно отключить их. Откройте файл /etc/yum.repos.d/epel.repo для редактирования и добавьте следующую строку в секцию [epel].

[epel]
...
excludepkgs=zabbix*

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Последняя версия Zabbix — 6.4.x, но мы будем использовать LTS (долгосрочную поддержку), которая гораздо более стабильна для производственной среды.

Установите репозиторий Zabbix.

$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm

Удалите весь кэш RPM.

$ sudo dnf clean all

Установите сервер Zabbix, фронтенд и агент. Мы будем использовать сервер PostgreSQL для нашей цели, и поэтому нам нужен пакет zabbix-web-pgsql. Если вы используете сервер MySQL/MariaDB/Percona, то вам нужно будет установить пакет zabbix-web-mysql.

$ sudo dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

Шаг 5 - Установка и настройка PostgreSQL

Zabbix работает с PostgreSQL 13 и выше. Rocky Linux 9 поставляется с PostgreSQL 13 по умолчанию. Однако мы будем использовать PostgreSQL 16 для нашего руководства.

Установите RPM-файл репозитория PostgreSQL.

$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Отключите встроенный модуль PostgreSQL.

$ sudo dnf -qy module disable postgresql

Теперь вы можете установить PostgreSQL с помощью следующей команды.

$ sudo dnf install -y postgresql16-server postgresql16-contrib

Инициализируйте базу данных.

$ sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

Включите службу PostgreSQL.

$ sudo systemctl enable postgresql-16

Запустите службу PostgreSQL.

$ sudo systemctl start postgresql-16

Проверьте статус службы PostgreSQL.

$ sudo systemctl status postgresql-16
? postgresql-16.service - PostgreSQL 16 database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql-16.service; enabled; preset: disabled)
     Active: active (running) since Thu 2024-01-18 14:54:46 UTC; 10s ago
       Docs: https://www.postgresql.org/docs/16/static/
    Process: 3407 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
   Main PID: 3412 (postgres)
      Tasks: 7 (limit: 24694)
     Memory: 17.4M
        CPU: 117ms
     CGroup: /system.slice/postgresql-16.service
             ??3412 /usr/pgsql-16/bin/postgres -D /var/lib/pgsql/16/data/
             ??3413 "postgres: logger "
             ??3414 "postgres: checkpointer "
             ??3415 "postgres: background writer "
             ??3417 "postgres: walwriter "
             ??3418 "postgres: autovacuum launcher "
             ??3419 "postgres: logical replication launcher "

Создайте пользователя базы данных Zabbix.

$ sudo -u postgres createuser --pwprompt zabbix

Вам будет предложено ввести пароль.

Enter password for new role: 
Enter it again: 

Создайте базу данных Zabbix.

$ sudo -u postgres createdb -O zabbix zabbix

Импортируйте начальную схему и данные базы данных. Вам снова будет предложено ввести ваш пароль.

$ zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

Этот процесс может занять несколько минут.

Откройте файл /etc/zabbix/zabbix_server.conf для редактирования.

$ sudo nano /etc/zabbix/zabbix_server.conf

Найдите переменную DBPassword, раскомментируйте ее, удалив хэш (#) перед ней, и установите ее значение на пароль, выбранный на предыдущем шаге.

DBPassword=psqlpassword

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Запустите и включите службы сервера и агента Zabbix.

$ sudo systemctl enable zabbix-server zabbix-agent --now

Шаг 6 - Настройка PHP

Zabbix устанавливает файлы конфигурации PHP и Nginx, которые мы будем использовать. Однако нам нужно внести несколько изменений, прежде чем мы сможем их использовать.

Сначала откройте /etc/php-fpm.d/zabbix.conf для редактирования.

$ sudo nano /etc/php-fpm.d/zabbix.conf

Измените значения user = apache и group = apache на nginx, как показано ниже.

user = nginx
group = nginx

Это связано с тем, что, поскольку мы используем Nginx из его официального репозитория, он работает под пользователем nginx, а не apache, под которым работает дистрибутивная версия Nginx.

Вы также можете редактировать любые другие значения, связанные с PHP, или добавлять любые пользовательские определения здесь. После завершения сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Запустите и включите службу PHP-FPM.

$ sudo systemctl enable php-fpm --now

Шаг 7 - Установка SSL

Нам нужно установить Certbot для генерации SSL-сертификата. Мы будем использовать установщик пакетов Snapd для этого. Поскольку Rocky Linux не поставляется с ним, установите установщик Snapd. Он требует репозиторий EPEL (Дополнительные пакеты для корпоративного Linux), чтобы работать. Но поскольку мы уже установили его на шаге 3, мы можем сразу перейти к делу.

Установите Snapd.

$ sudo dnf install -y snapd

Включите и запустите службу Snap.

$ sudo systemctl enable snapd --now

Установите пакет Snap core и убедитесь, что ваша версия Snapd обновлена.

$ sudo snap install core && sudo snap refresh core

Создайте необходимые ссылки для работы Snapd.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Установите Certbot.

$ sudo snap install --classic certbot

Используйте следующую команду, чтобы убедиться, что команда Certbot может быть выполнена, создав символическую ссылку на директорию /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Проверьте, работает ли Certbot правильно.

$ certbot --version
certbot 2.8.0

Запустите следующую команду для генерации SSL-сертификата.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d zabbix.example.com

Вышеуказанная команда загрузит сертификат в директорию /etc/letsencrypt/live/zabbix.example.com на вашем сервере.

Сгенерируйте сертификат группы Диффи-Хеллмана.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Проверьте службу планировщика обновления Certbot.

$ sudo systemctl list-timers

Вы найдете snap.certbot.renew.service в числе запланированных для выполнения служб.

NEXT                        LEFT          LAST                        PASSED       UNIT                        ACTIVATES                 -------------------------------------------------------------------------------------------------------------------------------------    
Sat 2024-01-20 10:04:02 UTC 1min 32s left Sat 2024-01-20 08:52:11 UTC 1h 10min ago dnf-makecache.timer         dnf-makecache.service
Sun 2024-01-21 00:00:00 UTC 13h left      Sat 2024-01-20 00:00:10 UTC 10h ago      logrotate.timer             logrotate.service
Sat 2024-01-20 21:13:00 UTC 11h left      Sat 2024-01-20 08:19:11 UTC 1h 43min ago snap.certbot.renew.timer    snap.certbot.renew.service

Выполните пробный запуск процесса, чтобы проверить, работает ли обновление SSL.

$ sudo certbot renew --dry-run

Если вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.

Шаг 8 - Настройка Nginx

Zabbix устанавливает файл конфигурации Nginx по умолчанию. Нам нужно отредактировать его, чтобы добавить код для включения SSL-сертификатов. Нам также нужно изменить порт listen и добавить код для перенаправления HTTP-ссылок на HTTPS.

Откройте файл /etc/nginx/conf.d/zabbix.conf для редактирования.

$ sudo nano /etc/nginx/conf.d/zabbix.conf

Отредактируйте код так, чтобы файл выглядел следующим образом.

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;

    root /usr/share/zabbix;

    index index.php;

    access_log  /var/log/nginx/zabbix.access.log;
    error_log   /var/log/nginx/zabbix.error.log;

    ssl_certificate      /etc/letsencrypt/live/zabbix.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/zabbix.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/zabbix.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    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:/run/php-fpm/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;
    }
}

# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  zabbix.example.com;
    return 301   https://$host$request_uri;
}

После завершения сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Откройте файл /etc/nginx/nginx.conf для редактирования.

$ sudo nano /etc/nginx/nginx.conf

Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Проверьте вашу конфигурацию Nginx.

$ sudo nginx -t

Запустите и включите службу Nginx.

$ sudo systemctl enable nginx --now

Шаг 9 - Доступ к фронтенду Zabbix

Перед установкой фронтенда Zabbix установите разрешения на директорию /etc/zabbix/web, чтобы Nginx мог к ней получить доступ.

$ sudo chown -R nginx:nginx /etc/zabbix/web

Откройте URL https://zabbix.example.com в вашем браузере, и вы увидите следующий экран.

Zabbix Web Installer Home

Нажмите кнопку Next step, чтобы завершить установку Zabbix. На следующей странице проверяются системные требования, и если они все удовлетворены.

Zabbix System Requirements Check

Если проблем нет, нажмите кнопку Next step, чтобы продолжить. Далее вам будет предложено ввести учетные данные вашей базы данных. Снимите отметку с опции Database TLS encryption, так как мы ее не настраивали.

Zabbix Database details

Нажмите кнопку Next step, чтобы продолжить. Введите имя вашего сервера Zabbix. Это необязательно, но если настроено, оно будет отображаться в строке меню и заголовках страниц.

Zabbix Settings

Нажмите кнопку Next step, чтобы продолжить. Вам будет предложено подтвердить все настройки.

Zabbix Installation summary

Если все в порядке, нажмите кнопку Next step, чтобы продолжить. Вы должны увидеть сообщение, информирующее вас о том, что установка завершена успешно.

Zabbix Installation Complete

Нажмите кнопку Finish, чтобы завершить процесс. Вы будете перенаправлены на страницу входа.

Zabbix Login Page

Имя пользователя по умолчанию — Admin, а пароль — zabbix. Введите информацию для входа и нажмите кнопку Sign in, чтобы получить доступ к панели управления Zabbix.

Zabbix dashboard

Шаг 10 - Настройка SELinux

Разрешите HTTP-демону подключаться к Zabbix.

$ sudo setsebool -P httpd_can_connect_zabbix 1

Разрешите Zabbix подключаться ко всем TCP-портам.

$ sudo setsebool -P zabbix_can_network on

Включите daemons_enable_cluster_mode, чтобы избежать ошибок менеджера HA.

$ sudo setsebool -P daemons_enable_cluster_mode on

Создайте пакет пользовательской политики SELinux, используя журнал аудита.

$ sudo grep "denied.*zabbix" /var/log/audit/audit.log | audit2allow -M zabbix_policy
****************** ВАЖНО *********************  
Чтобы сделать этот пакет политики активным, выполните:

semodule -i zabbix_policy.pp

Установите созданный пакет пользовательской политики SELinux.

$ sudo semodule -i zabbix_policy.pp

Запустите команду, чтобы проверить наличие ошибок базы данных.

$ sudo sealert -a /var/log/audit/audit.log

Это предложит вам множество правил для применения.

Выполните следующие команды.

$ sudo ausearch -c 'php-fpm' --raw | audit2allow -M my-phpfpm
$ sudo semodule -X 300 -i my-phpfpm.pp
$ sudo ausearch -c 'zabbix_agentd' --raw | audit2allow -M my-zabbixagentd
$ sudo semodule -X 300 -i my-zabbixagentd.pp

Примените политику, чтобы разрешить Nginx предоставлять доступ к PostgreSQL.

$ sudo setsebool -P httpd_can_network_connect_db 1

Примените политику, чтобы разрешить подключения к внешним хостам.

$ sudo setsebool -P httpd_can_network_connect 1

Установите SELinux в режим принуждения.

$ sudo setenforce 1 && sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/g' /etc/selinux/config

Шаг 11 - Установка агента Zabbix на удаленной системе

Основная задача агента Zabbix — собирать информацию с системы и отправлять ее на центральный сервер Zabbix для анализа. Мы установим агента на систему Rocky Linux 9, но вы можете сделать это на любом дистрибутиве.

Шаг 11.1 - Настройка брандмауэра на удаленной системе

Откройте порт 10050, чтобы разрешить агенту Zabbix подключаться к серверу.

$ sudo firewall-cmd --add-port=10050/tcp --permanent --zone=public
$ sudo firewall-cmd --reload

Шаг 11.2 - Установка агента Zabbix

Вам нужно повторить шаг 4, кроме последнего оператора установки. Это означает, что нужно отредактировать файл /etc/yum.repos.d/epel.repo и добавить следующую строку в секцию [epel].

[epel]
...
excludepkgs=zabbix*

Затем установите репозиторий Zabbix и очистите кэш RPM.

$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
$ sudo dnf clean all

Установите агента Zabbix.

$ sudo dnf install zabbix-agent

Шаг 11.3 Настройка агента Zabbix

Zabbix поддерживает шифрование на основе сертификатов, но для простоты этого руководства мы будем использовать предустановленные ключи (PSK) для защиты соединения между сервером и агентом.

Сгенерируйте файл PSK.

$ sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

Покажите ключ для копирования.

$ cat /etc/zabbix/zabbix_agentd.psk
797c84746dfe86f71b0f207785906d2bb886be27149b296d86df6b1ec9de6bbe

Скопируйте этот ключ, так как он нам понадобится позже.

Агент Zabbix хранит свою конфигурацию в файле /etc/zabbix/zabbix-agentd.conf. Откройте его для редактирования.

$ sudo nano /etc/zabbix/zabbix_agentd.conf

Раскомментируйте следующие переменные и обновите их значения, как показано ниже.

Server=
ServerActive=
HostMetadata=ZabbixLinuxClient
Hostname=zabbixclient.example.com

Укажите IP-адрес вашего сервера Zabbix в качестве значения для переменных Server и ServerActive. Переменная HostMetadata может быть любой, что вы можете использовать для идентификации системы. Она также используется в процессе автоматической регистрации на фронтенде Zabbix, о котором мы поговорим позже. Элемент Hostname относится к имени системы узла агента Zabbix.

Вы можете узнать имя хоста, используя следующую команду.

$ cat /etc/hostname

Далее найдите раздел, который настраивает безопасное соединение между сервером и агентом. Найдите переменную TLSConnect и измените ее значение с unencrypted на psk, как показано ниже.

...
### Option: TLSConnect
#       Как агент должен подключаться к серверу или прокси. Используется для активных проверок.
#       Можно указать только одно значение:
#               unencrypted - подключаться без шифрования
#               psk         - подключаться с использованием TLS и предустановленного ключа
#               cert        - подключаться с использованием TLS и сертификата
#
# Обязательно: да, если параметры TLS-сертификата или PSK определены (даже для 'unencrypted' соединения)
# По умолчанию:
# TLSConnect=psk
...

Далее найдите раздел TLSAccept и измените его значение на psk, как показано ниже.

...
### Option: TLSAccept
#       Какие входящие соединения принимать.
#       Можно указать несколько значений, разделенных запятой:
#               unencrypted - принимать соединения без шифрования
#               psk         - принимать соединения, защищенные TLS и предустановленным ключом
#               cert        - принимать соединения, защищенные TLS и сертификатом
#
# Обязательно: да, если параметры TLS-сертификата или PSK определены (даже для 'unencrypted' соединения)
# По умолчанию:
# TLSAccept=psk
...

Далее найдите раздел TLSPSKIdentity и измените его значение на PSK 001, как показано.

...
### Option: TLSPSKIdentity
#       Уникальная строка с учетом регистра, используемая для идентификации предустановленного ключа.
#
# Обязательно: нет
# По умолчанию:
# TLSPSKIdentity=PSK 001
...

Это идентификатор PSK, который вы будете использовать для добавления хоста через веб-интерфейс Zabbix.

Наконец, найдите раздел TLSPSKFile и измените его значение на местоположение файла PSK, как показано.

...
### Option: TLSPSKFile
#       Полное имя файла, содержащего предустановленный ключ.
#
# Обязательно: нет
# По умолчанию:
# TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
...

После завершения сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Шаг 11.4 - Запустите агента Zabbix

Запустите и включите службу агента Zabbix.

$ sudo systemctl enable zabbix-agent --now

Шаг 12 - Добавление клиента Zabbix на фронтенд Zabbix для мониторинга

Мы можем добавить новый хост в существующие определенные группы хостов или создать новую группу хостов. Группы хостов позволяют вам классифицировать типы узлов, которые вы мониторите. Чтобы создать новую группу хостов, откройте опцию Host groups в меню Configuration.

Добавьте имя группы в поле и нажмите кнопку Apply, чтобы создать группу.

Чтобы создать новый хост, нажмите опцию Hosts в меню Configuration и нажмите кнопку Create host в правом верхнем углу.

Zabbix Create Hosts

Добавьте имя хоста узла Zabbix.

Введите Linux by Zabbix agent в разделе Templates и выберите шаблон из выпадающего списка.

Аналогично, введите Linux Servers в разделе Groups и выберите его.

Нажмите кнопку Add в разделе Interfaces и выберите Agent.

Затем добавьте IP-адрес узла клиента Zabbix. После завершения всплывающее окно New host должно выглядеть следующим образом.

Zabbix New Host Popup

Далее переключитесь на вкладку Encryption. Выберите PSK для обоих параметров Connections to host и Connections from host. Установите PSK Identity на PSK 001, которое является значением, установленным на шаге 11.3 для переменной TLSPSKIdentity ранее. Затем установите значение PSK как ключ, который вы сгенерировали на машине агента ранее.

Zabbix Agent Encryption

После завершения нажмите кнопку Add, чтобы завершить добавление хоста.

Вы должны увидеть новый хост в списке с зеленой меткой, указывающей на то, что агент подключен к серверу и работает как ожидалось.

Zabbix Hosts List

Шаг 13 - Настройка уведомлений по электронной почте

Zabbix поддерживает множество типов уведомлений, таких как электронная почта, Slack, Telegram, SMS и т. д. Для целей нашего руководства мы настроим уведомления по электронной почте. Перейдите на фронтенд Zabbix, нажмите Administration, а затем Media types в левом меню. Вы увидите два типа электронной почты, один для обычной электронной почты и другой для HTML-электронной почты.

Zabbix Media Types

Нажмите на опцию Email (HTML), и вы получите следующую страницу.

Zabbix Email Media type Configure

Введите данные вашего SMTP-сервера. Для нашего руководства мы используем сервис Amazon SES. Нажмите кнопку Update, когда закончите, чтобы сохранить данные. Вы будете возвращены на страницу Media types. Нажмите кнопку Test на странице, чтобы протестировать настройки электронной почты. Это создаст всплывающее окно. Заполните свой адрес электронной почты и нажмите кнопку Test, чтобы отправить тестовое письмо.

Zabbix Test Email Popup

Вы должны увидеть успешное сообщение во всплывающем окне, уведомляющее, что все прошло хорошо, и вы должны получить следующее письмо в своем почтовом ящике. Закройте всплывающее окно, нажав кнопку Cancel.

Zabbix Test Email

Шаг 14 - Создание нового пользователя

Пользователь Zabbix по умолчанию не настроен для получения каких-либо уведомлений. Хотя мы можем это сделать, пользователь по умолчанию также небезопасен для использования. Лучший вариант — создать нового пользователя, а затем отключить пользователя по умолчанию.

Перейдите в раздел Administration >> Users в меню и нажмите кнопку Create user в правом верхнем углу, чтобы открыть следующую страницу.

Zabbix New User page

Заполните данные пользователя. Выберите Zabbix administrators в качестве группы пользователей. После завершения нажмите вкладку Media. Нажмите кнопку Add и выберите Email (HTML) в качестве типа.

Zabbix User Media Tab

Введите свой адрес электронной почты в поле Send to и нажмите кнопку Add, чтобы добавить опцию электронной почты. Далее переключитесь на вкладку Permissions и нажмите кнопку Select, чтобы добавить Super admin role.

Zabbix User Permissions

Нажмите кнопку Add, чтобы завершить добавление пользователя. Далее вам нужно выйти из фронтенда, снова войти как новый пользователь и вернуться на страницу пользователей. Нажмите на пользователя Admin, выберите группу Disabled и обновите пользователя. Это отключит пользователя по умолчанию от использования.

Шаг 15 - Отправка тестового оповещения

По умолчанию Zabbix отслеживает количество свободного места на сервере. Он обнаруживает все монтирования дисков и регулярно выполняет проверки.

Первый шаг — включить триггер уведомления, который позволяет Zabbix отправлять уведомления всем администраторам. У Zabbix уже настроен триггер по умолчанию. Нам нужно включить его, чтобы он работал. Перейдите в Configuration >> Actions >> Trigger actions и нажмите статус Disabled, чтобы изменить его на Enabled, как показано.

Zabbix Trigger Actions

Далее войдите в узел Zabbix и создайте временный файл, достаточно большой, чтобы вызвать предупреждение о использовании диска.

Сначала определите свободное место на сервере.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           780M   51M  730M   7% /run
/dev/vda2        94G   12G   78G  13% /
/dev/vda1       260M  7.0M  253M   3% /boot/efi
tmpfs           390M  4.0K  390M   1% /run/user/1001

Это показывает, что у нас около 78 ГБ свободного места. Далее используйте команду fallocate, чтобы предварительно выделить более 80% дискового пространства. Это достаточно, чтобы вызвать предупреждение.

$ fallocate -l 74G /tmp/temp.img

Проверьте использование диска еще раз.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           780M   54M  726M   7% /run
/dev/vda2        94G   86G  3.9G  96% /
/dev/vda1       260M  7.0M  253M   3% /boot/efi
tmpfs           390M  4.0K  390M   1% /run/user/1001

Zabbix вызовет предупреждение о пространстве на диске и отправит уведомление по электронной почте по этому поводу. Письмо будет выглядеть следующим образом.

Zabbix Test Alert Email

Вы также можете проверить панель управления на наличие предупреждений, которые должны появиться в течение нескольких секунд.

Zabbix Disk Check Alert Monitoring Dashboard

Удалите временный файл, когда закончите.

$ rm -f /tmp/temp.img

Вы должны получить еще одно письмо, уведомляющее вас о том, что проблема была решена.

Zabbix Test Issue resolved email

Шаг 16 - Настройка автоматической регистрации для узлов Linux

Когда вам нужно добавить несколько узлов на сервер Zabbix, процесс может стать немного утомительным. К счастью, фронтенд Zabbix позволяет вам автоматизировать процесс с помощью автоматической регистрации.

Перейдите в Actions >> Autoregistration actions и нажмите кнопку Create action в правом верхнем углу.

Zabbix Autoregistrations Page

На новом экране дайте имя ( Автоматическая регистрация серверов Linux) действию.

Нажмите кнопку Add под Conditions, чтобы добавить условие, и выберите Host metadata в качестве типа, содержит в качестве оператора и Linux в качестве значения.

Zabbix Auto registration Conditions

Нажмите Add, чтобы продолжить, и страница создания действия должна выглядеть следующим образом.

Zabbix Autoregistration New Action Page

Нажмите на вкладку Operations, выберите Add to host group в качестве операции и выберите Linux servers в качестве Host groups. Нажмите кнопку Add, чтобы завершить.

Zabbix Autoregistration Operation Details

Если вы хотите использовать шифрование PSK, вы также можете настроить это. Перейдите в меню Administration >> General >> Autoregistration и включите оба параметра шифрования. Введите идентификатор PSK и ключ PSK, созданные на сервере Zabbix. Вы можете использовать этот идентификатор PSK и ключ на каждом узле, и они будут зашифрованы с использованием этих значений.

Zabbix Autoregistration Encryption

С этого момента каждый раз, когда вы устанавливаете и настраиваете агента Zabbix на сервере Linux, он будет автоматически добавляться на фронтенд Zabbix.

Заключение

Это завершает наше руководство по установке и настройке сервера Zabbix на системе Rocky Linux 9. Мы также установили агента Zabbix на удаленном сервере для подключения к серверу. Если у вас есть какие-либо вопросы, оставляйте их в комментариях ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.