Philip Wiki

Персональный wiki-сайт

Инструменты пользователя

Инструменты сайта


docs:zabbix:install_proxy

Установка 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

Обсуждение

Яр, 29.09.2013 12:59

Статья сэкономила уйму времени! Есть pdf версия c немного другим кодом в которой есть ссылка на этот ресурс. Она не особо покатила. А здесь прям супер. Спасибо огромное!!!

Philip, 29.09.2013 13:04

Пожалуйста. Рад, что кому-то пригодилась вики и её материалы.

А что за pdf со ссылками на этот ресурс?

Джонни, 18.06.2014 16:13

У вас ошибка.

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.

Копипаст детектед.

Philip, 18.06.2014 16:54

Ну что же вы, право слово… Это статья, продолжение статьи про установку Zabbix сервера, в заголовке которой есть ссылка на оригинал(ы). Что-то взято оттуда, что-то из других (рабочих/домашних) инструкций и скомпилировано в одну. Найдите вторую такую статью, прежде чем в чём-то обвинять или напишите свою, которая будет лучше.

Джонни, 18.06.2014 17:08

Статья отличная, спасибо.

Но ошибку лучше поправить.

Philip, 18.06.2014 17:10

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

Сергей, 11.11.2014 09:13

Столкнулся с проблемой что zabbix-proxy данные собирает но не отправляет на zabbix-server при этом на последнем образуется большая очередь данных которые небыли обновлены по расписанию, как с этим бороться уже ума не прилоложу, есть у кого какие идеи ? zabbix 2.4

Philip, 11.11.2014 17:24

А что в логах? В конфигурации прокси прописали адрес сервера? Судя по всему, у Вас банально они не связаны.

Алексей, 17.04.2015 12:40

Такая же проблема, как и у Сергея.

Создал тему на форуме

После того, как добавил процесс, не пишутся логи.

Проверяю так: ls /var/log/ | grep zab

Philip, 17.04.2015 13:02

Ну судя по описанию того, что у Вас происходит, проблема совсем не такая. Как я понял, у Вас некорректно завершился процесс установки и, как результат, отсутствие конфигурации в папке /usr/local/etc. При установке из исходников нужно внимательно читать результаты выполнения каждого шага. :-) На этапе компиляции и сборки нет никаких ошибок?

И вообще, зачем связались с исходниками? Быстрее и проще ставить из пакетов https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

тестер, 21.05.2015 16:36

А где самое главное? Агент за прокси как настроить? Где в его конфиге указать прокси а где реально сервер?

Philip, 21.05.2015 16:41

Его это кого? В конфиге агента? Там указывается только адрес прокси, который для агента будет «за сервер». А в настройках прокси нужно указать IP сервера и определить в каком режиме он будет работать (пассивном или активном). Подробнее обо всём этом можно прочитать в документации Zabbix.

Только авторизованные участники могут оставлять комментарии.
docs/zabbix/install_proxy.txt · Последнее изменение: 30.11.2020 19:43 — philip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki