Настройка конфигурационного файла zabbix

Обновлено: 04.07.2024

Введение

Когда ИТ-инфраструктура организации достигает определенных масштабов, часто возникает необходимость постоянного наблюдения за работой наиболее важных узлов в сети предприятия. На сегодня существуют самые различные системы подобного класса от разных разработчиков. Об разворачивании одной из таких систем мониторинга и пойдет речь. Ниже представлена пошаговая инструкция по установке системы Zabbix на базе сервера под управлением ОС CentOS.

Далее, применительно к описываемой системе, по тексту подразумевается следующее:

имеется предварительно настроенный доступ к сети интернет
команды в консоли выполняются пользователем root
(если не указано обратное)

Приступим к делу.

Содержание

Установка репозитория EPEL и необходимых пакетов

Наиболее удобным и быстрым можно считать способ установки бинарных пакетов zabbix из репозитория EPEL, для чего достаточно установить релиз-пакет из CentOS Extras. Этим и займемся.

После установки системы и перед продолжением работы, рекомендуется обновить yum:

после чего установим релиз epel:

yum install epel-release

и наконец все пакеты, необходимые для работы сервера Zabbix:

yum install mysql-server zabbix22-server-mysql zabbix22-web-mysql zabbix22-agent

Здесь пока все, перейдем к серверу баз данных.

Настройка сервера баз данных — MySQL

service mysqld start

Позже вводите внимательно ваш новый пароль и не забывайте его!

По окончании процедуры настройки (подтверждаем умолчания отмеченные как [Y/n]), входим в консоль mysql с новым паролем для root:

mysql> create database zabbix character set utf8;

mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'password';

mysql> flush privileges;

После возврата в консоль оболочки (bash) делаем импорт начальной схемы и данных:

mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/schema.sql

mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/images.sql

mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/data.sql

Правка конфигурационных файлов служб Zabbix

Базовый файл конфигурации Zabbix

Выполним базовую настройку сервера Zabbix.
Откроем файл конфигурации в текстовом редакторе:

Убедитесь также, что указанные параметры соответствуют приведенным:

После этого сохраните файл (Esq, Shift+:, wq).

Файл настройки PHP

Откройте конфигурационный файл

Правила для сетевого экрана IPTABLES

Установим правило, разрешающее входящие соединения на порт нашего web-сервера:

iptables -I INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

сохраним новое правило для постоянного использования в iptables:

service iptables save

Параметры системы безопасности SeLinux

Для деактивации данной системы необходимо выполнить следующие действия.

исправьте параметр на значение указанное ниже:

Для временного отключения блокировок в текущем сеансе, можно выполнить еще одно действие:

echo 0 >/selinux/enforce

chown root:zabbixsrv /usr/sbin/fping

chmod 4710 /usr/sbin/fping

После этого приступим к проверке работы сервера.

Запуск и проверка сервера Zabbix

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

service zabbix-server start

Теперь откройте в адресной строке URL с главной страницей сервера:

Пройдите по шагам первичной настройки веб-интерфейса:

zabbix-1st-start-1

zabbix-1st-start-2

zabbix-1st-start-3

zabbix-1st-start-4

zabbix-1st-start-5

zabbix-1st-start-6

Теперь можно сделать свой первый вход в административную панель:

Пользователь: Admin
Пароль (по-умолчанию после установки): zabbix

Если все в порядке, то должно быть как на скриншотах ниже:

zabbix-login1

zabbix-login2

Если есть какие-то нестыковки, то проверяем еще раз все конфигурационные файлы и параметры в них.

Настройка автоматического запуска служб при старте системы

chkconfig zabbix-server on

chkconfig mysqld on

chkconfig zabbix-agent on

После этого завешающий аккорд:

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

Установка агента Zabbix на отслеживаемые узлы сети

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

Для примера рассмотрим пару простых случаев на базе ОС разных семейств.

Ubuntu 14.04.3 LTS

dpkg -i zabbix-release_2.2-1+trusty_all.deb

apt-get install zabbix-agent

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

sysv-rc-conf --level 2345 zabbix-agent on

Добавляем новый агент в базу мониторинга:

zabbix-agent-setup-linux

Windows XP

Для установки агента перейдем на страницу загрузки и скачаем нужный бинарный файл:

В моем случае это zabbix_agents_2.2.9.win.zip . Распаковываем его в C:\Program Files

Изменим пару параметров в файле конфигурации (для этой цели рекомендую Notepad++):

Запускаем командную строку Windows (cmd) и переходим в каталог с исполняемыми файлами и выполняем установку агента с нашим zabbix-agentd.win.conf
(от имени администратора):

cd C:\Program Files\zabbix_agents_2.2.9.win\bin\win32\
zabbix_agentd.exe –config "C:\ProgramFiles\zabbix_agents_2.2.9.win\conf\zabbix_agentd.win.conf" --install

cmd-win

Далее добавляем исполняемый файл агента в исключения брандмауэра Windows:

firewall-win3

Запускаем службу агента через соответствующую оснастку:

sevices-win

zabbix-agent-setup-windows-xp

host-template

Пример настройки элемента данных Простая проверка

data-element-add2

Данные числовые значения представляют из себя аргументы для упомянутой команды fping:

где: -C 1 = кол-во отправляемых пакетов; -p 1000 = интервал с миллисекундах; -b 56 = размер пакета в Байтах;
-t 500 = время таймаута ожидания ответа в миллисекундах.

Вы можете запустить один экземпляр Zabbix агента или несколько экземпляров агента на хосте Microsoft Windows. Одиночный экземпляр может использовать файл конфигурации C:\zabbix_agentd.conf по умолчанию или файл конфигурации, указанный в командной строке. В случае нескольких экземпляров каждый экземпляр агента должен иметь свой собственный файл конфигурации (один из экземпляров может использовать файл конфигурации по умолчанию).

Пример файла конфигурации доступ в архиве с исходными кодами Zabbix, в conf/zabbix_agentd.win.conf .

Смотрите опции файла конфигурации для получения подробных сведений по настройке Zabbix Windows агента.

Параметр Hostname

Для выполнения активных проверок на узле сети Zabbix агента требуется, чтобы было задано имя хоста. Кроме того, указанное значение имени хоста на стороне агента должно в точности совпадать с “именем узла сети” указанном для этого узла сети в веб-интерфейсе.

Значение имени хоста на стороне агента можно задать параметрами Hostname или HostnameItem в файле конфигурации агента - или будут использованы значения по умолчанию, если ни один из этих параметров не указан.

Значением по умолчанию для параметра HostnameItem является значение полученное ключем агента “system.hostname” и для Windows платформы оно вернет NetBIOS имя хоста.

Значением по умолчанию для параметра Hostname будет значение полученное параметром HostnameItem. Таким образом, по сути, если оба этих параметра не заданы, то фактически именем хоста будет NetBIOS имя хоста; Zabbix агент будет использовать NetBIOS имя хоста для получения списка активных проверок от Zabbix сервера и отправлять результаты по ним.

Ключ system.hostname всегда возвращает NetBIOS имя хоста ограниченное 15 символами и только в ВЕРХНЕМ РЕГИСТРЕ - вне зависимости от длины и символов нижнего/верхнего регистра реального имени хоста.

Начиная с Zabbix агента 1.8.6 под Windows ключ “system.hostname” поддерживает опциональный параметр - тип имени. Значением по умолчанию этого параметра является “netbios” (для обратной совместимости) и другое возможное значение “host”.

Ключ system.hostname[host] всегда возвращает полное, реальное (регистрозависимое) имя хоста Windows.

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

оставить параметры Hostname или HostnameItem не заданными и, тогда Zabbix агент будет использовать NetBIOS имя хоста как hostname; оставить параметр Hostname не заданным и задать HostnameItem таким образом:
HostnameItem=system.hostname[host]
и, тогда Zabbix агент будет использовать полное, реальное (регистрозависимое) имя хоста Windows как hostname.

Также при установке, запуске, остановке и удалении службы Windows имя хоста используется как часть имени службы Windows. Например, если в файле конфигурации Zabbix агента указано Hostname=Windows_db_server , тогда агент будет установлен как служба Windows “ Zabbix Agent [Windows_db_server] ”. Поэтому, чтобы у каждого экземпляра Zabbix агента имелись разные имена служб Windows, каждый экземпляр должен использовать отличное от другого экземпляра имя хоста.

Установка агента службой Windows

Для установки одиночного экземпляра Zabbix агента с файлом конфигурации c:\zabbix_agentd.conf по умолчанию:

На 64-битных системах требуется 64-битная версия Zabbix агента, чтобы все проверки связанные с запущенными 64-битными процессами корректно работали.

Если вы хотите использовать файл конфигурации, отличный от c:\zabbix_agentd.conf , вы должны использовать следующую команду для установки службы:

Необходимо указать полный путь к файлу конфигурации.

Можно установить несколько экземпляров Zabbix агента службами, примерно следующим образом:

Установленная служба теперь будет видна в Панеле Управления.

Запуск агента

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

Для запуска одиночного экземпляра Zabbix агента с файлом конфигурации по умолчанию:

Для запуска одиночного экземпляра Zabbix агента с отличным от умолчания файлом конфигурации:

Для запуска одного из нескольких экземпляров Zabbix агента:

Остановка агента

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

Для остановки одиночного экземпляра Zabbix агента, который запущен с файлом конфигурации по умолчанию:

Для остановки одиночного экземпляра Zabbix агента, который запущен с другим файлом конфигурации:

Для остановки одного из нескольких экземпляров Zabbix агента:

Удаление Windows службы агента

Для удаления одиночного экземпляра Zabbix агента, который использует файл конфигурации по умолчанию:

Для удаления одиночного экземпляра Zabbix агента, который не использует файлом конфигурации по умолчанию:

Zabbix сервер - центральный процесс программного обеспечения Zabbix.

Сервер выполняет опрос и отлов данных, вычисляет триггеры, отправляет оповещения пользователям. Он является центральным компонентом, которому Zabbix агенты и прокси сообщают данные о доступности и целостности систем. Сервер может самостоятельно удаленно проверять сетевые службы (такие как веб-сервера и почтовые сервера), используя простые проверки сервисов.

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

Функционал базового Zabbix сервера разделен на три отдельных компонента; это: Zabbix сервер, веб-интерфейс и хранилище в базе данных.

Процесс сервера

Если установлен из пакета

Zabbix сервер работает как демон. Для запуска сервера выполните:

Эта команда будет работать на большинстве GNU/Linux системах. На других системах вам, возможно, потребуется выполнить:

Аналогично, для остановки/перезапуска/просмотра состояния, используйте следующие команды:

Запуск вручную

Если выше приведенные команды не работают, вам необходимо запустить сервер вручную. Найдите путь к бинарному файлу zabbix_server и выполните:

Можно использовать следующие параметры командной строки с Zabbix сервером:

Выполнение административных функций не поддерживается в OpenBSD и NetBSD.

Примеры запуска Zabbix сервера с параметрами командой строки:

Управление работой

Опции управления работой:

ОпцияОписаниеЦель
config_cache_reloadПерезагрузка кэша конфигурации. Игнорируется, если кэш уже загружается в текущий момент времени.
housekeeper_executeЗапуск процедуры очистки базы данных. Игнорируется, если процедура очистки выполняется в данный момент.
log_level_increase[=<цель>]Увеличение уровня журналирования, действует на все процессы, если цель не указана.pid - Идентификатор процесса (1 до 65535)
тип процесса - Все процессы указанного типа (например, poller)
тип процесса,N - Тип процесса и номер (например, poller,3)
log_level_decrease[=<цель>]Уменьшение уровня журналирования, действует на все процессы, если цель не указана.

Допустимый диапазон PID изменения уровня журналирования одного процесса с 1 до 65535. На системах с большими значениями PID опция <тип процесса,N> может использоваться для изменения уровня журналирования отдельных процессов.

Пример использования административных функций для перезагрузки кэша конфигурации сервера:

Пример использования административных функций для вызова выполнения очистки базы данных:

Примеры использования административных функций по изменению уровня журналирования:

Пользователь процесса

Zabbix сервер спроектирован для запуска от непривилегированного пользователя (non-root). Он будет работать от любого непривилегированного пользователя от которого был запущен. Таким образом, вы можете запускать сервер от имени любого непривилегированного пользователя, без каких либо последствий.

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

Файл конфигурации

Смотрите опции файла конфигурации для получения подробной информации по настройке Zabbix сервера.

Скрипты запуска

Скрипты используются для автоматического запуска/остановки процессов Zabbix при включении/выключении системы. Скрипты находятся в директории misc/init.d.

Поддерживаемые платформы

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

date

07.05.2020

directory

CentOS, Linux, Ubuntu, Windows Server 2016

comments

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

Zabbix это open-source система мониторинга корпоративного уровня. На текущий момент Zabbix одна из самых популярных и функциональных бесплатных систем мониторинга. Благодаря простой установке и настройке Zabbix можно использовать для мониторинга крупных инфраструктур с сотнями серверов, так и для мелких конфигураций. В этой статье мы рассмотрим, как выполнить установку и базовую настройку сервера Zabbix 4.4 с веб-интерфейсом на базе Linux Ubuntu и CentOS, установить агенты Zabbix на сервере Windows и Linux, и добавить новые хосты в систему мониторинга.

Общий интерфейс Zabbix сервера представлен на скриншоте ниже.

веб интерфейс системы мониторинга zabbix

Из чего состоит Zabbix и что он может?

Zabbix простой установке и настройке, написан на C (сервер, прокси и агент) и PHP (фронтенд). Zabbix Server и Zabbix Proxy может работать только на Linux системах. Агент можно установить на большом количестве поддерживаемых ОС и платформах.

Инсталляция Zabbix сервера состоит из:

  • бинарника zabbix_server (обычно работает как сервис);
  • MySQL (MariaDB)/PostgreSQL базы данных;
  • Веб сервера Apache2/Nginx с обработчиком PHP;
  • Файлов самого frontend сайта (.php, .js, .css и т.д.).

Обычно схема работы выглядит так:

    Агент Zabbix посылает данные на сервер

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

Установка Zabbix Server в Linux (Ubuntu, CentOS)

В этой статье мы рассмотрим пример установки Zabbix Server 4.4 на Linux (на примере Ubuntu Server 18.4 и CentOS) через пакетный менеджер.

Например, для установки Zabbix на Ubuntu 18.04 нужно последовательно выбрать :

Zabbix Version (4.4) -> OS Distribution (Ubuntu) -> OS Version (18.04 Bionic) -> Database (MySQL) -> Веб сервер (Nginx или Apache).

инструкция по установке zabbix, получение репозиториев

Скачем и добавим репозиторий:

Теперь можно установить необходимые пакеты:

установка zabbix-server в linux ubuntu

Для установки Zabbix в CentOS 8/RHEL 8 нужно подключить репозиторий с актуальной версией Zabbix (можно установить Zabbix из ветки 4.0 LTS или последнюю версию Zabbix 4.4):

Предполагаем, что на сервере уже установлены: nginx, MySQL/MariaDB, php и php-fpm. Теперь через пакетный менеджер установим сам сервер Zabbix и агент:

Создайте базу данных и дайте права пользователю, из-под которого Zabbix будет обращаться к базе данных:

mysql -uroot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'ВашПароль';
mysql> quit;

Импортируйте базу данных Zabbix. Нужно будет ввести пароль, который вы указали при создании пользователя.

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p Zabbix

Измените конфигурационный файл /etc/zabbix/zabbix_server.conf, укажите пароль от вновь созданного пользователя.

Так как в моем случае веб сервером служит nginx, нужно изменить nginx.conf, раскомментировав следующие строчки

Выставим временную зону в PHP. В файле /etc/zabbix/php-fpm.conf раскомментируем строчку

Дополнительно можно выставить следующие параметры PHP в /etc/php.ini :

Добавьте службу zabbix-server в автозапуск и запустите ее:

Настройка веб-интерфейса Zabbix

Теперь нужно настроить frontend (веб-интерфейс) Zabbix. В браузере откройте указанный ранее URL адрес zabbix сервера. В моем случае это test.zabbix.local (или на домен, который вы указывали. Не забудьте прописать его у себя в hosts файле или на DNS сервере).

zabbix веб installer

Убедитесь, что во всех требования инсталлятора указано ОК.

zabbix check pre-requisites

Укажите данные для подключения к БД. Используйте пользователя и пароль, который создали ранее.

данные для подключения к базе данных zabbix

Укажите название Zabbix сервера. Порт рекомендую оставлять стандартный – TCP 10051.

  • TCP 10050 — порт пассивного агента, по нему zabbix сервер опрашивает клиентов;
  • TCP 10051 — порт, на котором zabbix сервер получает данные от клиентов (активный агент).

Не забудьте открыть данные порты. Например, на Zabbix сервере на базе CentOS можно открыть порты в firewalld с помощью firewall-cmd:

А на агенте достаточно открыть 10050:

Не забудьте перезагрузить firewalld:

имя и порты zabbix сервера

После этого жмите Next Step и Finish. После успешной установки вас попросит залогиниться. По-умолчанию логин Admin , пароль zabbix (замените его).

авторизация веб-интерфейсе в zabbix

zabbix dashboard

На этом установка сервера Zabbix Server завершена.

Установка Zabbix Agent в Windows

Выберите нужную версию агента под Windows. Я выберу формат msi (amd64) (без OpenSSL). Если вы планируете устанавливать zabbix agent на сервера/компьютеры домена через групповые политики или SCCM, то можете скачать zip архив с бинарными файлами и конфигурационными файлами.

Запустите инсталлятор, примите лицензионное соглашение, укажите запрошенные данные. Обратите внимание, что в поле “Server or Proxy for active checks” я указал IP адрес в формате IP:PORT. Поскольку порт я оставлял стандартный, я пишу IP:10051.

настройка параметров zabbix сервера при установке агента в windows

Далее еще пару раз нажмем Next и Install.

После этого убедимся, что наш агент установлен. В списке служб должен появиться сервис Zabbix Agent.

служба zabbix agent в windows

На клиенте Windows нужно разрещить входящие подключения с IP адреса сервера Zabbix в Брандмауэре Windows:

New-NetFirewallRule -DisplayName "ZabbixMonitoring" –RemoteAddress 192.168.1.100 -Direction Inbound -Protocol TCP –LocalPort 10050 -Action Allow

Добавление устройства на Zabbix-сервере

Чтобы убедиться в работоспособности агента, нужно добавить хост testnode2 на Zabbix сервер и назначить ему проверки (checks).

Заметка. В заббиксе есть 2 типа проверок:
  • Пассивные – Zabbix сервер запрашивает у агента какие-либо данные;
  • Активные – агент посылает на сервер данные;

При установке агента мы указывали сервер в формате IP:PORT как раз для активных проверок.

Добавление нового устройства для мониторинга в Zabbix выполняется через Web-интерфейс. Перейдите в раздел Configuration -> Hosts.

добавление хоста в мониторинг Zabbix

Нажмите Create host и заполните данные. Обратите внимание, что Host name хоста должен полностью совпадать с hostname машины или значением параметра Hostname в конфиге агента.

добавление windows устройства в Zabbix сервере

Во вкладке Templates добавить несколько встроенных Windows шаблонов. Шаблоны в Zabbix это наборы значений, триггеров, графов и правил обнаружения, которые могут быть назначены одному или нескольким хостам.

Эти интегрированные шаблоны имеют постфикс “active”, значит, будут использоваться активные проверки.

шаблоны zabbix для windows

Нажмите Add. Чтобы не ждать пока сервер и агент увидят друг друга (обычно занимает пару минут), перезагрузите службу Zabbix Agent на testnode2 и проверьте лог агента (C:\Program Files\Zabbix Agent\zabbix_agentd.txt).

перезапуск службы Zabbix agent

лог zabbix_agentd.txt

проверка получение данных от хоста в zabbix

данные об устройстве в веб интерфейсе zabbix

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

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

события в dashboard zabbix

На этом настройка Windows Agentа завершена.

Установка Zabbix Agent в Linux

Перед тем как мы запустим zabbix агент, нужно отредактировать конфигурационный файл /etc/zabbix/zabbix_agentd.conf. В нем нужно указать IP адрес сервера Zabbix для активных проверок.

После этого запустите сервис агента:

Убедитесь, что агент успешно запустился.

установка zabbix agent в linux ubuntu

Строка cannot parse list of active checks говорит о том, что на сервере нет активных проверок для этого хоста.

добавление ubuntu в мониторинг zabbix

23

Перезагрузите Zabbix агент и проверьте лог.

лог zabbix_agentd

Проверьте, что данные от агента появились на сервере Zabbix.

данные с linux сервера появились в веб интерфейсе zabbix

На этом настройка Zabbix-агента на Linux системе завершена. В следующей статье мы рассмотрим безагентный мониторинг доступности узлов в Zabbix через ICMP Ping.

Читайте также: