Установка Zabbix (из исходных кодов) в Ubuntu 24.04

Оцените статью

И опять я героически где-то посеял заметку по установке и настройке zabbix-сервера, а она сейчас очень бы пригодилась. Придется написать ее еще один раз.

Первым дело естественно установим Postgresql сервер.

# apt-get install postgresql
# systemctl enable postgresql@16-main.service
# systemctl start postgresql@16-main.service

Создаем базу данных для нашего Zabbix-сервера.

# su postgres
$ psql
postgres=# CREATE USER zabbix_user WITH PASSWORD 'xxxPasswordxxx';
postgres=# CREATE DATABASE zabbix_db WITH OWNER zabbix_user

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

Текущий стабильный релиз можно тут посмотреть: https://github.com/zabbix/zabbix/tags

Соответственно скачиваем текущую стабильную 7.2.4, распаковываем и настраиваем окружение nginx и php-fpm. Я про это уже много раз писал и поэтому быстренько вспомним команды.

# wget https://github.com/zabbix/zabbix/archive/refs/tags/7.2.4.tar.gz
# apt-get install nginx
# systemctl start nginx
# systemctl enable nginx
# apt-get install php-fpm
# systemctl enable php8.3-fpm.service
# aptitude install php-gd php-bcmath php-mbstring php-xmlreader php-xmlwriter php-xml-util php-pgsql php-ldap php-curl
# systemctl restart php8.3-fpm.service

Так-как у меня на этом хосте будет только Zabbix, то и разместим его в стандартном каталоге /var/www/html (web-интерфейс в каталоге ui). Просто распакуем и сменим права доступа.

Конфигурационный файл для Nginx будет примерно таким. По хорошему надо еще ssl-сертификат прикрутить, но у нас этим будет заниматься фронтальный Nginx.

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;

        index index.html index.php;

        server_name _;

    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/php8.3-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index   index.php;

        fastcgi_param   DOCUMENT_ROOT   /var/www/html;
        fastcgi_param   SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
        fastcgi_param   PATH_TRANSLATED /var/www/html$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;
    }
}

Обязательно правим параметры:

  • post_max_size
  • max_execution_time
  • max_input_time

Остальные подходят по умолчанию.

Собираем проект.

# apt-get install build-essential automake postgresql-server-dev-16 libxml++2.6-dev
# apt-get install libxml++2.6-dev libsnmp-dev libopenipmi-dev libevent-dev
# apt-get install libcurl4-openssl-dev libpcre3-dev golang
# ./bootstrap.sh
# ./configure --enable-server --enable-agent --with-postgresql --enable-ipv6 --with-net-snmp --with-libcurl --with-openipmi --with-ares --enable-agent2
# make install

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

Создаем схему.

# make dbschema

Загружаем схему в базу данных.

# su postgres
$ cat ./database/postgresql/schema.sql | psql -U zabbix_user -h 127.0.0.1 zabbix_db
$ cat ./database/postgresql/images.sql | psql -U zabbix_user -h 127.0.0.1 zabbix_db
$ cat ./database/postgresql/data.sql | psql -U zabbix_user -h 127.0.0.1 zabbix_db

Настраиваем web-интерфейс, подключение к базе, администратор и т.п.

Создаем пользователя и группу.

# groupadd --system zabbix
# adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-
# mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
# chown zabbix:zabbix /var/lib/zabbix

Редактируем конфигурацию агента и сервера в файлах:

  • /usr/local/etc/zabbix_server.conf
  • /usr/local/etc/zabbix_agent2.conf

Проводим тестовый запуск сервера от имени пользователя zabbix.

# su zabbix -s /bin/bash
$ zabbix_server -f

И аналогично агента.

# su zabbix -s /bin/bash
$ zabbix_agent2 -f

Если все прошло по плану, то пишем SystemD-сервисы.

Сервер /etc/systemd/system/zabbix-server.service

[Unit]
Description=Zabbix Server Daemon
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=forking
ExecStart=/usr/local/sbin/zabbix_server
ExecReload=/usr/local/sbin/zabbix_server -R config_cache_reload
PIDFile=/tmp/zabbix_server.pid

User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target

Ну и понятно, что запускаем-активируем и конечно же радуемся очередному успеху.

# systemctl daemon-reload
# systemctl enable zabbix-server
# systemctl start zabbix-server
# systemctl status zabbix-server

Агент /etc/systemd/system/zabbix-agent2.service

[Unit]
Description=Zabbix Agent Daemon
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_agent2 -f
PIDFile=/tmp/zabbix_agent2.pid

User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target

Аналогично, запускаем проверяем, радуемся.

# systemctl daemon-reload
# systemctl enable zabbix-agent2
# systemctl start zabbix-agent2
# systemctl status zabbix-agent2

Проверяем, что метрики собираются и для верности сервер можно ребутнуть и убедиться, что все работает корректно.

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

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

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

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования