< meta name="referrer" content="origin">
Home » Zabbix » Установка и настройка zabbix прокси на CentOS 7

Установка и настройка zabbix прокси на CentOS 7

Для построения распределенной системы мониторинга zabbix рекомендует использовать proxy серверы. Это штатный функционал заббикса, который позволяет регулировать нагрузку и организовывать мониторинг распределенной сетевой инфраструктуры. Подробнее об установке и настройке zabbix proxy будет рассказано ниже.

Зачем нужен Zabbix proxy

Расскажу своими словами что такое zabbix proxy и зачем он нужен. Допустим у вас есть распределенная сеть, где отдельные сегменты никак не связаны друг с другом. То есть условно, у вас 5 разных сетей с адресацией 192.168.0.0/24. Вам нужно настроить мониторинг узлов в этих сетях. Сети ничего не знаю друг о друге, у них нет прямого IP, только доступ в интернет.

В таком случае вы устанавливаете zabbix сервер на внешний ip адрес, в каждом сегменте сети настраиваете прокси, который будет собирать данные с узлов в этом сегменте и отправлять их на основной сервер мониторинга. Все управление при этом происходит на основном сервере, достаточно только один раз подключить прокси к основному серверу. Схематично подобная схема изображена в документации с официального сайта:

Zabbix proxy

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

Вроде понятно и доступно объяснил. Приступим теперь к установке zabbix proxy. Устанавливать будем на сервер под управлением CentOS 7. Если у вас его еще нет, то читайте об установке centos 7 и его первоначальной настройке. Требования к железу зависят от нагрузки на прокси, но в общем случае они будут не высоки. Для мониторинга 20-30 узлов я использовал виртуальную машину с 512 мб оперативной памяти и 10 гб диском. Сама прокси почти ничего не хранит, отправялет данные на сервер.

В качестве основного сервера мониторинга у нас будет выступать Zabbix 3. Если вы его еще не настроили, то рекомендую мою подробную статью с видео по установке и настройке zabbix. Дальше я буду считать, что у вас уже настроен сервер мониторинга, к которму мы будем подключать proxy и добавлять новые узлы из подключенного сегмента сети.

Установка Zabbix proxy

Перед установкой добавлю еще пару слов о работе proxy. Прокси серверу нужна отдельная локальная база данных, которая никак не связана с базой основного сервера мониторинга. Я для простоты в качестве такой базы использую sqlite. Для proxy этого вполне достаточно. Так что наша установка будет разделена на этапы:

  1. Непосредственно установка zabbix proxy.
  2. Создание базы данных.
  3. Подключение к основному серверу мониторинга.
  4. Подключение zabbix agent через zabbix proxy.

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

# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

Устанавливаем прокси и агента. Агент, кстати, ставить не обязательно, но я обычно ставлю, чтобы мониторить сам сервер.

# yum install –y zabbix-agent zabbix-proxy-sqlite3

Распаковываем файл со схемой базы:

# gunzip /usr/share/doc/zabbix-proxy-sqlite3-3.0.4/schema.sql.gz
Обращаю внимание на выделенную часть пути. Когда вы будете устанавливать zabbix proxy, версия может быть уже другой, а соответственно и путь к папке. Не забудьте его изменить на актуальный.

Создаем папку для базы данных и саму базу:

# mkdir /var/lib/sqlite
# sqlite3 /var/lib/sqlite/zabbix.db < /usr/share/doc/zabbix-proxy-sqlite3-3.0.4/schema.sql

Устанавливаем владельцем базы заббикс:

# chown -R zabbix. /var/lib/sqlite

На этом установка заббикс прокси закончена. Мы все подготовили, теперь ее надо правильно настроить и подключить к серверу. Займемся этим.

Настройка  Zabbix proxy

Открываем файл конфигурации zabbix proxy для настройки:

# mcedit /etc/zabbix/zabbix_proxy.conf

Необходимо изменить несколько параметров, все остальное можно не трогать:

server=84.143.241.246
hostname=proxy01
DBName=/var/lib/sqlite/zabbix.db
server Адрес центрального сервера мониторинга
hostname Имя прокси сервера, которое мы будем использовать на основном сервере
DBName Путь к локальной базе данных

Добавляем proxy в автозагрузку и запускаем:

systemctl enable zabbix-proxy
systemctl start zabbix-proxy

Если сейчас посмотреть лог, то увидим там следующее:

# cat /var/log/zabbix/zabbix_proxy.log
2701:20160816:225839.865 cannot obtain configuration data from server at "84.143.241.246": proxy "proxy01" not found
2702:20160816:225839.865 cannot send heartbeat message to server at "84.143.241.246": proxy "proxy01" not found

В данном случае все в порядке, это не ошибка. Просто основной сервер еще ничего не знает о только что настроенном прокси. Нам нужно идти на сервер и добавлять свежеустановленный proxy. Заходим в web панель, идем в раздел Administration -> Proxies (Администрирование -> Прокси) и справа нажимаем на кнопку Create proxy (Создать прокси):

Добавление proxy на сервер

Заполняете необходимые поля. В данном случае обязательное только одно поле Proxy name.

Proxy name Имя прокси сервера, должно соответствовать параметру hostname в файле конфигурации прокси
Proxy mode Режим работы: active — прокси всегда сам обращается к основному серверу и отправляет данные, passive — команды на получение данных каждый раз инициирует основной сервер
Hosts Хосты, которые будут мониториться через этот прокси. Так как мы только добавляем прокси, вряд ли у нас есть хосты для него.
Description Произвольное описание сервера

После добавление proxy на основной сервер, можно перезапустить сам прокси сервер и посмотреть лог:

# systemctl restart zabbix-proxy
# cat /var/log/zabbix/zabbix_proxy.log
2871:20160816:231130.025 received configuration data from server at "84.143.241.246", datalen 2664

Все в порядке, прокси подключился к основному серверу и забрал от него данные. При этом на основном сервере изменился статус прокси:

Статус zabbix proxy

В качестве теста запустим на самом прокси сервере zabbix agent и подключим его к основному серверу мониторинга через proxy. Для этого открываем конфиг агента и устанавливаем следующие параметры:

# mcedit /etc/zabbix/zabbix_agentd.conf
Server=192.168.56.10
ServerActive=192.168.56.10
Hostname=proxy01

192.168.56.10 — локальный ip адрес прокси сервера.

Сохраняем файл, агента пока не запускаем. Идем в веб интерфейс и добавляем новый хост.

Добавление хоста через прокси

Имя указываем такое же, как Hostname у агента, ip адрес — локальный адрес агента, Monitored by proxy выбираем в выпадающем списке нужный proxy сервер. Когда добавите их несколько, они все будут в этом списке. Не забудьте назначить какой-нибудь шаблон. Если этого не сделать, то можно долго ждать поступления данных и недоумевать, почему ничего не поступает, хотя на вид все в порядке и ошибок в логах нет. Я много раз с подобным сталкивался в своей практике.

После того, как добавите новый хост на основном сервере, возвращаемся на proxy и перезапускаем его, чтобы сразу же получить настройки с основного сервера. Это делать не обязательно, через некоторое время (не знаю точно какое, любопытно было бы узнать) прокси сам заберет конфигурацию. Но мы форсируем процесс:

# systemctl restart zabbix-proxy

Теперь запускаем агент и добавляем его в автозагрузку:

# systemctl enable zabbix-agent
# systemctl start zabbix-agent

Проверяем лог агента:

# cat /var/log/zabbix/zabbix_agentd.log

Лог zabbix агента

Все в порядке, ошибок нет. Через некоторое время данные начнут поступать на основной сервер мониторинга с помощью посредника zabbix proxy.

Заключение

Когда я только начинал настраивать распределенный мониторинг, мне очень хотелось иметь возможность установить zabbix proxy на windows. Это бы очень упростило задачу разворачиания мониторинга на всяких мелких удаленных объектах. Но увы, это не возможно. Программа есть только под linux, на windows только агент. Можно без проблем развернуть на любой виртуалке — hyperv, или даже virtualbox.

Я планирую написать подробню статью на основе своего опыта построения распределенного мониторинга в очень разнородной среде. Но пока не сделал это, дам подсказку для тех, кто будет разворачивать много proxy серверов. Сделайте образ виртуальной машины и просто копируйте его на новых объектах. Достаточно будет изменить только сетевые настройки и hostname в конфигурации proxy.


Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по Zabbix

Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 3.2 на CentOS 7
  • Обновление 3.0 -> 3.2
  • Обновление 2.4 -> 3.0
  • Установка Zabbix Proxy
  • Работа на NGINX
Видео и подробное описание установки и настройки Zabbix 3.2, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание обновления системы мониторинга zabbix версии 3.0 до новой версии 3.2.
Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.
Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.
Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.
Мониторинг служб и сервисов
 
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology
Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.
Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.
Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.
Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)
Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.
Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.
Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.
Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов
Настройка мониторинга web сайта в zabbix. Параметры для наблюдения - доступность сайта, время отклика, скорость доступа к сайту.
Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.
Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.
Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.
Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

14 комментариев

  1. Спасибо, вот решил попробовать и столкнулся с такой проблемой —

    2718:20161117:141224.687 using configuration file: /etc/zabbix/zabbix_proxy.conf
    2718:20161117:141224.687 cannot open database file «/var/lib/sqlite/zabbix.db»: [13] Permission denied
    2718:20161117:141224.687 creating database …
    2718:20161117:141224.687 [Z3002] cannot create database ‘/var/lib/sqlite/zabbix.db’: [0] unable to open database file

    Не подскажите в чем проблема?

    • Так все написано в тексте ошибки. Процессу не хватает прав для работы с файлом базы данных /var/lib/sqlite/zabbix.db Либо на сам файл не выставлены соответствующие права, либо в сам каталог с файлом. Посмотри права на файл zabbix.db, возможно не отработала команда назначения прав, указанная в статье:
      chown -R zabbix. /var/lib/sqlite

  2. Спасибо, очень помогли твои статьи с настройками заббикса!
    Еще вопрос, но немного не в темы — нужно мониторить брандмауэр FortiGate по snmp, может и с этим подскажешь?

    • Впервые слышу о таком. Но если есть snmp то какие проблемы. Нужен только mib и все, дальше самому шаблон рисовать. У меня есть пример про мониторинг по snmp synology. Тут все то же самое. snmp универсальный протокол, все агенты с snmp заводятся одинаково.

    • Могу поделится шаблоном, если надо. пиши в почту proff.ust@gmail.com

  3. Спасибо, попробую.
    FortiGate — занимаются всем что связано с network security. У нас очень популярен в последние годы, цены ниже чем у других и отвечает на все требования.

  4. В статье snmp synology, там готовый шаблон.
    Я с snmp все никак не разберусь.

  5. в документации этого нет, но создавать руками БД для прокси при использовании sqlite необязательно. достаточно в конфиге указать путь к файлу, который расположен в папке, в которую есть доступ у пользователя zabbix, при первом запуске прокси схема создастся автоматически

  6. да и конфигурацию активного прокси правильнее рантайм командами переагружать.

  7. Владимир

    Спасибо за статью.
    Я сейчас тоже озадачен мониторингом распределенной сети.
    Настраиваю TL-WR842N-v3 с openwrt и zabbix_proxy.
    DB sqlite3 на USB-flash.
    Пока тестирую.

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

Ваш e-mail не будет опубликован.