Настройка конфигурационного файла zabbix
Введение
Когда ИТ-инфраструктура организации достигает определенных масштабов, часто возникает необходимость постоянного наблюдения за работой наиболее важных узлов в сети предприятия. На сегодня существуют самые различные системы подобного класса от разных разработчиков. Об разворачивании одной из таких систем мониторинга и пойдет речь. Ниже представлена пошаговая инструкция по установке системы 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 с главной страницей сервера:
Пройдите по шагам первичной настройки веб-интерфейса:
Теперь можно сделать свой первый вход в административную панель:
Пользователь: Admin
Пароль (по-умолчанию после установки): zabbix
Если все в порядке, то должно быть как на скриншотах ниже:
Если есть какие-то нестыковки, то проверяем еще раз все конфигурационные файлы и параметры в них.
Настройка автоматического запуска служб при старте системы
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
Добавляем новый агент в базу мониторинга:
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
Далее добавляем исполняемый файл агента в исключения брандмауэра Windows:
Запускаем службу агента через соответствующую оснастку:
Пример настройки элемента данных Простая проверка
Данные числовые значения представляют из себя аргументы для упомянутой команды 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 работает с ведущими на рынке версиями операционных систем.
Zabbix это open-source система мониторинга корпоративного уровня. На текущий момент Zabbix одна из самых популярных и функциональных бесплатных систем мониторинга. Благодаря простой установке и настройке Zabbix можно использовать для мониторинга крупных инфраструктур с сотнями серверов, так и для мелких конфигураций. В этой статье мы рассмотрим, как выполнить установку и базовую настройку сервера Zabbix 4.4 с веб-интерфейсом на базе Linux Ubuntu и CentOS, установить агенты Zabbix на сервере Windows и Linux, и добавить новые хосты в систему мониторинга.
Общий интерфейс 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).
Скачем и добавим репозиторий:
Теперь можно установить необходимые пакеты:
Предполагаем, что на сервере уже установлены: 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 сервера. Порт рекомендую оставлять стандартный – TCP 10051.
- TCP 10050 — порт пассивного агента, по нему zabbix сервер опрашивает клиентов;
- TCP 10051 — порт, на котором zabbix сервер получает данные от клиентов (активный агент).
Не забудьте открыть данные порты. Например, на Zabbix сервере на базе CentOS можно открыть порты в firewalld с помощью firewall-cmd:
А на агенте достаточно открыть 10050:
Не забудьте перезагрузить firewalld:
После этого жмите Next Step и Finish. После успешной установки вас попросит залогиниться. По-умолчанию логин Admin , пароль zabbix (замените его).
На этом установка сервера Zabbix Server завершена.
Установка Zabbix Agent в Windows
Выберите нужную версию агента под Windows. Я выберу формат msi (amd64) (без OpenSSL). Если вы планируете устанавливать zabbix agent на сервера/компьютеры домена через групповые политики или SCCM, то можете скачать zip архив с бинарными файлами и конфигурационными файлами.
Запустите инсталлятор, примите лицензионное соглашение, укажите запрошенные данные. Обратите внимание, что в поле “Server or Proxy for active checks” я указал IP адрес в формате IP:PORT. Поскольку порт я оставлял стандартный, я пишу IP:10051.
Далее еще пару раз нажмем Next и Install.
После этого убедимся, что наш агент установлен. В списке служб должен появиться сервис Zabbix Agent.
На клиенте 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.
Нажмите Create host и заполните данные. Обратите внимание, что Host name хоста должен полностью совпадать с hostname машины или значением параметра Hostname в конфиге агента.
Во вкладке Templates добавить несколько встроенных Windows шаблонов. Шаблоны в Zabbix это наборы значений, триггеров, графов и правил обнаружения, которые могут быть назначены одному или нескольким хостам.
Эти интегрированные шаблоны имеют постфикс “active”, значит, будут использоваться активные проверки.
Нажмите Add. Чтобы не ждать пока сервер и агент увидят друг друга (обычно занимает пару минут), перезагрузите службу Zabbix Agent на testnode2 и проверьте лог агента (C:\Program Files\Zabbix Agent\zabbix_agentd.txt).
В этом разделе отображаются последние данные, которые пришли на сервер по выбранным хостам или группам хостов.
Обратите внимание на то, что в дашборде Zabbix висит уведомление о том, что служба BITS не запущена. Это уведомление появилось потому что мы назначили стандартные шаблоны нашему хосту. В одном из шаблонов был мониторинг сервиса BITS и соответствующий триггер, который срабатывает если служба BITS находится не в статусе Running.
На этом настройка Windows Agentа завершена.
Установка Zabbix Agent в Linux
Перед тем как мы запустим zabbix агент, нужно отредактировать конфигурационный файл /etc/zabbix/zabbix_agentd.conf. В нем нужно указать IP адрес сервера Zabbix для активных проверок.
После этого запустите сервис агента:
Убедитесь, что агент успешно запустился.
Строка cannot parse list of active checks говорит о том, что на сервере нет активных проверок для этого хоста.
Перезагрузите Zabbix агент и проверьте лог.
Проверьте, что данные от агента появились на сервере Zabbix.
На этом настройка Zabbix-агента на Linux системе завершена. В следующей статье мы рассмотрим безагентный мониторинг доступности узлов в Zabbix через ICMP Ping.
Читайте также: