Содержание

Установка Zabbix Proxy

Обзор

Zabbix прокси - процесс, который собирает данные о производительности и доступности с одного или более наблюдаемых устройств и затем отправляет данные Zabbix серверу. Это один из тех процессов, которые добавляют заббиксу приставку «распределенный мониторинг». Прокси устанавливают как для наблюдения за удаленными сегментами сети (внутри этих сетей), так и для распределения нагрузки между центральным сервером Zabbix и прокси-серверами.

Установка

Из репозиториев

Установка из пакетов на Ubuntu с поддержкой sqlite3 (на примере версии 5.2)

wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1+ubuntu20.04_all.deb
dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb
apt update
apt install zabbix-proxy-sqlite3 zabbix-agent2

Не смотря на то, что в инструкции написано, что при установке прокси с поддержкой sqlite3 база создаётся автоматически если её нет, на деле ничего не создалось… Поэтому:

sudo mkdir /var/lib/sqlite3
sudo zcat /usr/share/doc/zabbix-proxy-sqlite3/schema.sql.gz | sudo sqlite3 /var/lib/sqlite3/zabbix.db
sudo chown -R zabbix /var/lib/sqlite3

Внимание

При обновлении (мажорном) Zabbix Proxy столкнулся с тем, что при использовании SQLite установщик не умеет обновлять саму базу, точнее в процедуре обновления это даже не предусмотрено. Поэтому:

  1. Удаляем старую базу
  2. Копируем схему как показано выше

Изменяем конфигурацию прокси, указав в переменной, что работаем с базой sqlite3

DBName=/var/lib/sqlite3/zabbix.db

Из исходных кодов

Сам процесс установки Zabbix прокси, мало чем отличается от уже описанного ранее процесса установки сервера. Поэтому ниже, я просто оставлю дополнительные комментарии по установке именно прокси:

  1. Во-первых, уже нет необходимости ставить Apache, PHP и PhpMyAdmin (это всё можно поставить, если планируете работать с базой посредством web-интерфейса… на мой взгляд – лишнее.).
  2. Так как наш прокси не умеет самостоятельно отправлять оповещения и мы не ставим PHP, то из пункта 3.4 исключаем некоторые пакеты:
    jabber 
    jabber-dev  
    libiksemel-dev 
    libiksemel-utils
  3. Для прокси необходимо импортировать в MySQL только database/schema.sql (пункт 3.5):
    cat schema.sql | mysql -u root -p zabbix
  4. Пример компиляции из исходных кодов будет выглядеть примерно так (пункт 3.6):
    ./configure --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl --enable-ipv6 --with-ssh2 --with-openipmi --with-libxml2
  5. Правим файл конфигурации прокси, добавляя в него адрес Zabbix-сервера и данные для подключения к базе1):
    nano /usr/local/etc/zabbix_proxy.conf
  6. Вот и всё. Подключайте прокси к основному Zabbix серверу Администрирование → PM2) и настраивайте, какие узлы будут мониторится через него.

P.S. Дополнение

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

В папке /etc/init.d/ создаём файл zabbix-proxy следующего содержания:

zabbix-proxy
#!/bin/sh
#
# Zabbix daemon start/stop script.
#
# Copyright (C) 2000-2012 Zabbix SIA
 
NAME=zabbix_proxy
DAEMON=/usr/local/sbin/${NAME}
DESC="Zabbix proxy daemon"
PID=/tmp/$NAME.pid
 
### BEGIN INIT INFO
# Provides:             zabbix_proxy
# Required-Start:       $local_fs $remote_fs $network $syslog
# Required-Stop:        $local_fs $remote_fs $network $syslog
# Should-Start:         $all
# Should-Stop:          $all
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    start/stop Zabbix proxy daemon
# Description:          start/stop Zabbix proxy daemon
### END INIT INFO
 
test -f $DAEMON || exit 0
 
case "$1" in
  start)
        echo "Starting $DESC: $NAME"
        start-stop-daemon --start --oknodo --pidfile $PID --exec $DAEMON
        ;;
  stop)
        echo "Stopping $DESC: $NAME"
        start-stop-daemon --stop --quiet --pidfile $PID --retry=TERM/10/KILL/5 && return 0
        start-stop-daemon --stop --oknodo --exec $DAEMON --name $NAME --retry=TERM/10/KILL/5
        ;;
  restart|force-reload)
        $0 stop
        $0 start
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac
 
exit 0

Далее, для автоматического запуска, выполняем в консоли:

sudo chmod 755 /etc/init.d/zabbix-proxy
sudo update-rc.d zabbix-proxy defaults
sudo chmod 755 /etc/init.d/zabbix-agent
sudo update-rc.d zabbix-agent defaults

Всё. Теперь можем с комфортом управлять из консоли статусом прокси: service zabbix-proxy start|stop|restart или /etc/init.d/zabbix-proxy start|stop|restart.

Информация

Кстати! Учтите, когда начнёте тестировать работу прокси, он забирает конфигурацию узлов каждые 3600 сек., т.е. если вы добавили какой-то элемент мониторинга, он появиться не сразу. Эту опцию можно изменить в конфигурации:

ConfigFrequency=3600

1)
Здесь всё практически аналогично настройке сервера
2)
Не смущайтесь, что при добавлении у вас не просят никаких IP и прочего, помните, прокси сам настраивается на конкретный адрес сервера, Zabbix просто проверяет соответствие hostname