Zabbix mac os настройка

Обновлено: 06.07.2024

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

Идея создания статьи обусловлена анализом обращений клиентов. Хостинг предоставляет гарантированные ресурсы виртуального или физического сервера, но его бесперебойное функционирование на уровне операционной системы опирается на плечи его администратора.

Zabbiх не требователен к ресурсам, но он позволяет не только оперативно проинформировать о возникшей проблеме, но и предотвратить её. Что немаловажно для функционирования сервисов в режиме 24\7\364.

Технические требования следующие:

  • 1 ядро CPU / 1ГБ памяти — до 20 наблюдаемых узлов сети
  • 2 ядра CPU / 2ГБ памяти — до 500 наблюдаемых узлов сети
  • 4 ядра CPU / 8ГБ памяти — более 1000 наблюдаемых узлов сети
  • 8 ядер CPU / 16ГБ памяти — более 10000 наблюдаемых узлов сети

Zabbix протестирован на следующих платформах: Linux, IBM AIX, FreeBSD, NetBS, OpenBSD, HP-UX, Mac X, Solaris, Windows: все версии для настольных компьютеров и серверов начиная с XP (только Zabbix агент)

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

Оглавление

Установка сервера Zabbix

Подключаем репозиторий свежей версии Zabbix:

Приступаем к установке:

Проверим версию mariadb

. и выполним конфигурацию базы данных

На данном шаге вам будет предложено внести изменения в настройки безопасности вашей MySQL

Enter current password for root (enter for none):

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

Подключимся к mysql:

. и продолжим конфигурацию. Первой командой мы создаем базу данных zabbixdb и настраиваем локали. Второй — назначаем полные привилегии пользователю zabbix на базу данных zabbixdb и назначаем пароль. Вместо StrongPassword придумайте свой сложный пароль, который будет иметь не менее 12 символов, состоять из латинских символов верхнего и нижнего регистров, а так же цифр. Затем

На следующем этапе выполним импорт данных

Вводим пароль, который мы придумали вместо StrongPassword, указанного в примере и ждем импорта. Процесс выполняется в фоновом режиме около минуты, успешным окончанием можно считать вновь пустую строку терминала для ввода команд root@dedicated:

Теперь приступим к настройке frontend. Реализовать это можно через нативный Apache, или Nginx. Принципиальной разницы нет, в нашем примере мы будем использовать Nginx+php-fpm.

Запустим Nginx и добавим его в автозагрузку:

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

Затем приступим к его правке:

Во избежания конфликта, переименуем ешё один дефолтный конфиг. Иначе вы получите ошибку «nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored.»

Финальная правка. При установке Zabbix, все каталоги создаются под пользователем www-data, и вы гарантированно в логах получите ошибку 502 Bad Gateway, а логи будут пестрить:

Правим в главном конфиге Nginx параметр user:

Проверим, правильно ли мы настроили Nginx

Ошибки отсутствуют. Перезапустим его:

Установите на сервере так же zabbix-agent

Для корректной работы, на сервере должны прослушиваться порты 10050 (zabbix-server) и 10051 (zabbix-agent). Проверьте это командой

проверка работы портов на сервере

Подключимся к серверу мониторинга Zabbix по web-интерфейсу.

Подключение к серверу мониторинга

Проверка статуса OK

Проверяем, чтобы везде был статус ОК. Если по какой-то причине это не так, возвращаемся и вносим правки, пока не будет достигнут желаемый результат. С большой долей вероятности, ошибки могут быть вызваны неправильными параметрами в /etc/nginx/conf.d/zabbix.conf. Данное руководство справедливо для свежей версии Zabbix 4.4 на Debian 10. Next step

Настройка подключения к базе данных

Вносим свои данные, host, имя пользователя и название базы данных, которые мы создавали ранее, а так же пароль StrongPassword. Next step

Детали подключения к серверу бд

Можете оставить параметры по умолчанию или указать свои. Next step. Следующим шагом будет вывод указанных ранее параметров. Подтвердите их нажатием «Next step», и вы получите уведомление:

«Congratulations! You have successfully installed Zabbix frontend.

Configuration file "/usr/share/zabbix/conf/zabbix.conf.php" created.»

Нажмите Finish и перед вами появится окно аутентификации. Стандартные данные для аутентификации следующие:

Общий вид админпанели Zabbix

Добавление учетной записи администратора

Первым делом, следует настроить своего пользователя с правами суперпользователя, а стандартного удалить. Для этого переходим во вкладку «Administration»- «Users» и в правом верхнем углу нажимаем «Create User». Укажите его login, добавьте в группу администраторов. Так же обязательно зайдите во вкладку Permissions и измените роль с «Zaabix User» на «Zabbix Super Admin». После чего удалите лишних пользователей

Добавление пользователя в административную панель Zabbix

Удаление пользователей из админпанели Zabbix

Настройте e-mail оповещения. Для начала настроим ОТ КОГО будет отправляться оповещения. Перейдите во вкладку «Administration»- «Media types» и выберите Email. Сюда следует внести SMTP настройки вашего почтового ящика. Так же следует обратить внимание, что для корректной доставки почты следует для домена прописать PTR, DMARC и SPF записи, иначе отправленные уведомления могут быть отклонены сервером получателя.

Настройка e-mail оповещений

Выполнив конфигурацию отправителя, перейдем к настройке получателя. Перейдите во вкладку «Administration»- «Users», выберите пользователя freehost и перейдите во вкладку «Media». Добавьте один или несколько адресов, на которые будут отправлены оповещения об инцидентах.

Настройка получателя уведомлений

Включите отправку оповещений в событиях. Перейдите в «Configiraton» «Fctions», выберите все собыстя («Any») и активируйте нажатием enable.

Включение отправки оповещений

Сброс пароля пользователя Zabbix для Web-интерфейса

В прошлом разделе мы рассмотрели, как создавать новых пользователей. Если вам требуется изменить забытый пароль, делается это следующим образом. Подключаемся к MySQL

Отобразим список созданных БД

Подключаемся к нужной базе данных. В нашем случае это zabbixdb

Отобразим список доступных пользователей:

Назначаем новый пароль администратора

Изменение пароля пользователя для доступа к базе данных

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

Найдите директиву DBPassword и задайте новый пароль:

Измените настройки так же здесь:

Подключаемся к MySQL

Обратите внимание. В разделе «5. Сброс пароля пользователя Zabbix в MySQL» мы изменили пароль доступа по web-интерфейсу. Здесь мы меняем пароль доступа mysql-пользователя zabbix. Если Вы разворачиваете Zabbix из шаблона, который мы предоставляем для наших клиентов, это следует сделать обязательно.

Установка zabbix-agent

Прежде, чем мы перейдем к настройке оповещений, возьмем ещё один VPS и установим на него zabbix-agent

Отредактируем три параметра конфигурационного файла:

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

Перезагрузите агент и добавьте его в автозагрузку:

Настройка мониторинга

Добавим узел сети. Перейдите во вкладку «Configiraton» - «Hosts». В правом верхнем углу нажмите на «Create host» и заполните поля вкладок Host и Template

Добавления узла сети

Добавление узла сети в Zabbix

Готовых шаблонов (Template) великое множество. Ознакомитесь с ними, и выберите те, которые отвечают вашим требованиям. В качестве примера добавлено буквально пару шаблонов для демонстрации работы. Руководство будет не полным, если мы что-нибудь специально не поломаем, и не посмотрим результат. Давайте остановим наш VPS

Остановка VPS

Запуск VPS

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

Графики в Zabbix

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

Заключение

Zabbix очень гибок. Это книга рецептов, и она у каждого своя. На каждом узле сети мы можем настроить мониторинг чего угодно. Будь то программный сервис или аппаратная часть сервера. Вы можете настроить уведомление о дисковом пространстве, которое заканчивается, или увеличении потребления потреблении оперативной памяти сервера в целом, или отдельных приложений. Осуществлять мониторинг аппаратных и программных raid-массивов, состояние дисков на наличие ошибок. Он довольно хорошо документирован и успешно используется в крупных компаниях, в том числе и у нас. Изучение Zabbix требует определенной доли усидчивости и понимания функционирования сервера, но даже его базовое понимание позволит предотвратить аварийные ситуации. Но главное, он не требователен к ресурсам. У нас вы можете заказать облачный VPS c предустановленной системой Zabbix, а наша служба технической поддержки поможет с его базовой настройкой.

Logo

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

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

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

Основная логическая единица — Узлы сети (host), сервера, находящиеся под наблюдением. Каждому серверу присваивается описание и адрес (dns или ip, можно оба, причем с возможностью выбирать, что использовать для соединения).


Узлы объеднияются в группы, например веб-сервера или сервера баз данных. Группы служат для вывода только определенных серверов при наблюдении.


Каждый узел имеет несколько Элементов данных (items) — параметров, за которыми ведется мониторинг. К примеру, на всех серверах у меня есть параметр ping, (он получается с помощью встроенной проверки), который равняется 1, если ответ на последний ping-запрос был получен, иначе 0. А на одном из серверов у меня есть параметр «количество пользователей онлайн», который собирается самописным скриптом из базы данных сайта. Для каждого элемента данных можно указать свой период обновления, способ хранения(сам параметр или скорость его изменения), множитель, временной интервал сбора (например только в рабочее время).


Создавать элементы данных для каждого из множества серверов — сложно, поэтому можно создать узлы-шаблоны. Эти узлы тоже содержат элементы данных, но они не мониторятся напрямую. Вместо этого реальный хост связывается с одним или несколькими шаблонами, и все параметры шаблона автоматически наследуются хостом. Так, элемент ping у меня хранится именно в шаблоне, и я просто связываю все хосты с шаблоном template_ping.


Человек — не робот, и следить за тысячами параметров и думать, не выходит ли это значение за допустимые границы, просто нереально. Но и тут Zabbix предоставляет гибкие возможности по настройке условий-триггеров, которые включаются при авариях и неполадках, и система начинает моргать лампочками (на самом деле красными квадратиками) и изо всех сил пытается показать администратору, что что-то случилось. Между прочим, при включении триггера веб-интерфейс даже начинает попискивать на манер будильника, наверное, чтобы разбудить заснувших на клавиатуре наблюдателей. :) Так что колонки здесь, наверное не помешают. А в упомянутом выше моем шаблоне template_ping есть и триггер, который реагирует на отсутствие пинга больше, чем на две минуты.



Скучно сидеть и вглядываться в квадратики и бесконечно бегающие цифры? По данным любого параметра система сможет построить график изменения, причем не за предопределенные и жестко заданные временные интервалы (вспомните mrtg/rrdtool: daily, weekly, monthly, yearly), а за любой промежуток времени с максимальным разрешением. Хотите посмотреть в деталях, как изменялась нагрузка на сервер во время хабраэффекта месяц назад? Пожалуйста, график с разрешением в 30 секунд(именно таков интервал опроса по умолчанию) к вашим услугам. Хотите общую картину? Выберите интервал в месяц и посмотрите на среднюю величину, и разброс колебаний до максимума и минимума. Сравнить? Можно создавать сложные графики, отображающие на одном поле несколько параметров, и вы сразу увидите, что пиковые значения Load Average соответствуют пикам трафика.


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


Кроме того, для более удобного обзора есть комплексные отчеты, которые позволяют на одном экране просматривать сразу несколько сущностей — графики, данные, триггеры…


В ближайшем будущем — о том, как использовать Zabbix вместо Nagios и MRTG и рекомендации по миграции на Zabbix с этих двух систем и сравнение преимуществ и недостатков; о написании собственных скриптов оповещения и сбора данных, о моём личном опыте использования Zabbix в продакшне, и о чем-нибудь еще, что я узнаю в процессе дальнейшего изучения этой замечательной системы.

Система Zabbix

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

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

Обзор

Систему создал Алексей Владышев на языке Perl. Впоследствии проект подвергся серьезным изменением, которые затронули и архитектуру. Zabbix переписали на C и PHP. Открытый исходный код появился в 2001 г., а уже через три года выпустили первую стабильную версию.

Веб-интерфейс Zabbix написан на PHP. Для хранения данных используются MySQL, Oracle, PostgreSQL, SQLite или IBM DB2.

Сайт Забикс

Далее рассмотрим, из чего состоит и как работает технология Zabbix в доступном формате «для чайников».

Архитектура Zabbix

Архитектура Zabbix

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

  1. Сервер — ядро, хранящее в себе все данные системы, включая статистические, оперативные и конфигурацию. Дистанционно управляет сетевыми сервисами, оповещает администратора о существующих проблемах с оборудованием, находящимся под наблюдением.
  2. Прокси — сервис, собирающий данные о доступности и производительности устройств, который работает от имени сервера. Все собранные данные сохраняются в буфер и загружаются на сервер. Нужен для распределения нагрузки на сервер. Благодаря этому процессу можно уменьшить нагрузку на процессор и жесткий диск. Для работы прокси Zabbix отдельно нужна база данных.
  3. Агент — программа (демон), которая активно мониторит и собирает статистику работы локальных ресурсов (накопители, оперативная память, процессор и др.) и приложений.
  4. Веб-интерфейс — является частью сервера системы и требует для работы веб-сервер. Часто запускается на том же физическом узле, что и Zabbix.

Основные возможности

Функционал включает в себя общие проверки для наиболее распространенных сервисов, в том числе СУБД, SSH, Telnet, VMware, NTP, POP, SMTP, FTP и т.д. Если стандартных настроек системы недостаточно, их можно изменить самостоятельно или же пользоваться дополнением через API.

Что можно мониторить Zabbix

Стандартные функции системы

  • Контроль нагрузки на процессор, касается и отдельных процессов.
  • Сбор данных об объеме свободной оперативной и физической памяти.
  • Мониторинг активности жесткого диска.
  • Мониторинг сетевой активности.
  • Пинг для проверки доступности узлов в сети.

Проверки

Для описания системы мониторинга Zabbix существует два ключевых понятия:

  • Узлы сети — рабочие устройства и их группы (серверы, рабочие станции, коммутаторы), которые необходимо проверять. С создания и настойки узлов сети обычно начинается практическая работа с Zabbix.
  • Элементы данных — набор самостоятельных метрик, по которым происходит сбор данных с узлов сети. Настройка элементов данных производится на вкладке «Элемент данных» или в автоматическом режиме — через подключение шаблона.

Сам Zabbix-агент способен отражать текущее состояние физического сервера, собирая совокупность данных. У него достаточно много метрик. С их помощью можно проверить загруженность ядра (Processor load), время ожидания ресурсов (CPU iowait time), объем системы подкачки (Total swap space) и многое другое.

Проверки Zabbix

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

  • Zabbix agent (Zabbix-агент) — сервер собирает информацию у агента самостоятельно, подключаясь по определенному интервалу.
  • Simple check (Простые проверки) — простые операции, в том числе пинг.
  • Zabbix trapper (Zabbix-траппер) — сбор информации с трапперов, представляющих собой мосты между используемыми сервисами и самой системой.
  • Zabbix aggregate (Zabbix-комплекс) — процесс, предусматривающий сбор совокупной информации из базы данных.
  • SSH agent (SSH-агент) — система подключается по SSH, использует указанные команды.
  • Calculate (Вычисление) — проверки, которые система производит, сопоставляя имеющиеся данные, в том числе после предыдущих сборов.

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

Проверка через пользовательский параметр

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

Помимо самой команды, приведенный синтаксис содержит уникальный (в пределах узла сети) ключ элемента данных, который надо придумать самостоятельно и сохранить. В дальнейшем, ключ можно использовать для ссылки на команду, внесенную в пользовательский параметр, при создании элемента данных.

Пример

С помощью данной команды можно настроить агент на постоянное возвращение значения « 1 » для элемента данных с ключем « ping ».

Триггеры

Это логические выражения со значениями FALSE , TRUE и UNKNOWN , которые используются для обработки данных. Их можно создать вручную. Перед использованием триггеры возможно протестировать на произвольных значениях.

Тригеры Zabbix

У каждого триггера существует уровень серьезности угрозы, который маркируется цветом и передается звуковым оповещением в веб-интерфейсе.

  • Не классифицировано (Not classified) — серый.
  • Информация (Information) — светло-синий.
  • Предупреждение (Warning) — жёлтый.
  • Средняя (Average) — оранжевый.
  • Высокая (High) — светло-красный.
  • Чрезвычайная (Disaster) — красный.

Некоторые функции триггеров

  • abschange — абсолютная разница между последним и предпоследним значением (0 — значения равны, 1 — не равны).
  • avg — среднее значение за определенный интервал в секундах или количество отсчетов.
  • delta — разность между максимумом и минимумом с определенным интервалом или количеством отсчетов.
  • change — разница между последним и предпоследним значением.
  • count — количество отсчетов, удовлетворяющих критерию.
  • date — дата.
  • dayofweek — день недели от 1 до 7.
  • diff — у параметра есть значения, где 0 — последнее и предпоследнее значения равны, 1 — различаются.
  • last — любое (с конца) значение элемента данных.
  • max\min — максимум и минимум значений за указанные интервалы или отсчеты.
  • now — время в формате UNIX.
  • prev — предпоследнее значение.
  • sum — сумма значений за указанный интервал или количество отсчетов.
  • time — текущее время в формате HHMMSS.

Прогнозирование

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

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

Функционал прогнозирования добавили с обновлением системы 3.0, вышедшим в феврале 2016 года.

Действие

Действие (Action) представляет собой заданную реакцию на событие (Event). Действие может устанавливаться автоматически или вручную как для одного из событий, так и для целой группы.

Журнал действий Zabbix

Параметры действий

Для событий, вызванных триггером или обнаружением, есть свои типы условий. Например, «Application» с операторами « = », « like » и « not like » значит, что триггер является частью указанного приложения. Или «Service type» с операторами « = », « < »и « > » предусматривает, что обнаруженный сервис совпадает с указанным.

Операции

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

Операции Zabbix

Параметры операций

Низкоуровневое обнаружение

Функция Низкоуровневого обнаружения (LLD) автоматически создает элементы и триггеры, которые позволяют отслеживать системы сервера, находящимся под наблюдением. Включение функции происходит через настройку атрибутов, которую можно сделать, пройдя по пути: «Настройка» → «Шаблоны» → «Обнаружение» (вкладка в строке с шаблоном) → вкладки «Правила обнаружения»/«Фильтры».

Что можно обнаружить

  • Распространённые OID, используемые SNMP.
  • Сетевые интерфейсы.
  • Процессоры, их ядра.
  • Файловые системы.
  • Службы Windows.
  • ODBC.

Дополнительные типы

Задать собственные типы низкоуровневого обнаружения возможно с применением формата JSON. Типы проверок, для которых можно указать список портов и интервал для них:

Если хост пропадает или обнаруживается, для события можно привязать любое действие — условия и операцию для них.

Прокси

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

Прокси используется еще в нескольких случаях — если агенты находятся далеко друг от друга или ограничены локальной сетью. Это сказывается на доступности агентов и величине пингов.

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

Особенности веб-интерфейса

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

На главном экране всегда представлена информация о состоянии узлов сети и триггеров.

Zabbix веб-интерфейс

Пользователю доступны пять функциональных разделов, включая Monitoring («Мониторинг»), Inventory («Инвентарные данные»), Reports («Отчеты»), Configuration («Конфигурация») и Administration («Администрирование»).

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

Zabbix веб-интерфейс - группы хостов

Управлять шаблонами, доступными администратору, можно в соответствующем подразделе — Templates («Шаблоны»).

Zabbix веб-интерфейс - шаблоны

Версия 4.4

Узнать версию установленного Zabbix сервера можно во время запуске в файле-протоколе.

Zabbix 4.4

Основные нововведения в Zabbix 4.4

  • Новый Zabbix Agent (zabbix_agent2) создан на языке Go.
  • Опции вывода графиков данных.
  • Внешние уведомления, система отслеживания ошибок.
  • Официальная поддержка TimescaleDB.
  • База знаний для триггеров и элементов данных.
  • Группировка данных и гистограммы.
  • Официальная поддержка платформ, теперь Zabbix работает с SUSE Linux Enterprise Server 15, Debian 10, Raspbian 10, Mac OS/X, RHEL 8, MSI for Windows Agent и др.

Заключение

Zabbix по праву считается одним из самых продвинутых инструментов для удалённого мониторинга аппаратных и программных ресурсов. Система с успехом позволяет решать задачи по отслеживанию сетевой активности и работоспособности серверов, а также предупреждать о потенциально опасных ситуациях. Благодаря встроенным механизмам анализа и прогнозирования, Zabbix может стать основой для создания полноценной стратегии эффективного использования IT-инфрастуктуры в компаниях любого масштаба.

Способности Zabbix ограничены только имеющимися в распоряжении ресурсами. VDS от Eternalhost на SSD-дисках обеспечит системе максимальное быстродействие и возможность мониторить множество узлов в сети.

Zabbix

Zabbix – это система мониторинга для сетей и приложений. Она позволяет в реальном времени отслеживать тысячи данных, собранных с серверов, виртуальных машин и других типов сетевых устройств. А значит, вы будете знать все, что происходит в вашем IT-окружении, и сможете отслеживать ошибки и проблемы с программным обеспечением даже раньше, чем с ними столкнутся клиенты. Информация содержится в базе данных, и вы можете работать с ней: анализировать данные, а затем, к примеру, делать модернизацию и улучшать качество предоставляемых услуг.

Zabbix использует архитектуру «клиент-сервер» – для сбора и передачи данных на сервер Zabbix используется специальный агент. 3 версия Zabbix поддерживает зашифрованную передачу данных между клиентом и сервером, поэтому ваши данные будут защищены от несанкционированного доступа третьих лиц.

Zabbix сервер располагает свои данные в реляционной базе данных, для работы с которой можно использовать MySQL, PostgreSQL или Oracle.

В этой статье я хочу рассказать о настройке двух машин – одной в качестве сервера, а другой в качестве клиента, которого вы будете отслеживать. Для записи данных будет использоваться MySQL, а Apache – для веб-интерфейса.

Требования

  • 2 сервера с установленным CentOS 7 и пользователями с sudo-правами;
  • на одном из серверов должно быть установлено следующее ПО: Apache, MySQL (либо MariaDB) и PHP.

Шаг 1

Установка сервера

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

После этого вы увидите на экране:

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

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

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

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

Шаг 2

Настройка СУБД MySQL

На этом этапе нужно создать новую базу MySQL и внести в нее базовую информацию для того, чтобы она подходила для использования Zabbix. Второе важное действие – создание для этой базы данных специального пользователя (чтобы не использовать root-аккаунт).

Создайте базу данных Zabbix с поддержкой UTF-8:

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

Примените новые правила:

Затем выйдите из консоли базы данных.

Теперь перейдем к импортированию необходимой схемы и данных. После установки Zabbix у нас уже есть необходимый файл, который просто необходимо импортировать. Сначала перейдите в нужную директорию:

Затем выполните следующую команду. Благодаря ей все необходимые данные будут импортированы в базу данных Zabbix.

Введите пароль для пользователя Zabbiх.

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

То убедитесь, что вы ввели правильный пароль (не от root-пользователя, а именно от пользователя zabbix).

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

Обратите внимание на следующую часть файла:

Комментарии в файле дадут понять, как именно подсоединиться к базе данных. Вам нужно установить в качестве DBPassword пароль для пользователя базы данных. Вам нужно добавить следующую строку:

На этом месте мы заканчиваем с настройкой сервера Zabbix, но нам еще нужно сделать несколько изменений в установке PHP для того, чтобы веб-интерфейс Zabbix работал корректно.

Шаг 3

Настройка PHP

В этом файле лежат настройки PHP, которые задают требования для веб-интерфейса Zabbix. Единственное, что необходимо изменить – это временную зону, которая по умолчанию закомментирована.

Раскомментируйте строку с временной зоной и поменяйте на свою временную зону (если требуется). Установка московского времени - Europe/Moscow. Список всех временных зон смотрите вот тут. Затем сохраните и закройте файл.

Теперь перезапустите Apache, чтобы изменения вступили в силу.

Запустите сервер Zabbix:

И проверьте, корректно ли он работает:

Вы увидите следующий статус:

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

Теперь сервер настроен и подключен к базе данных. Перейдем к фронтэнду.

Шаг 4

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

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

Все значения должны иметь значения ОК – прокрутите список до конца и убедитесь, что это так. Для продолжения нажмите Next step (Следующий шаг).

На следующем экране вам нужно будет ввести информацию о базе данных. Сервер Zabbix уже содержит эти значения, однако их необходимо задать и для веб-интерфейса, чтобы в веб-интерфейсе был доступ в базу данных для работы с хостами, чтения данных и последующего отображения их пользователям. Вам нужно ввести те же данные, которые вы уже задавали на втором шаге этой статьи. После чего снова нажмите Next step.

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

Мы уже близки к цели, ведь следующий экран отображает предустановочную сводку всех настроек – вам вновь нужно убедиться, что все корректно. Нажмите Next step для того, чтобы перейти к последнему экрану.

Установка веб-интерфейса завершена! У вас появится конфигурационный файл /etc/zabbix/web/zabbix.conf.php – на всякий случай сделайте его бэкап для того, чтобы использовать в будущем. Нажмите Finish для перехода к экрану авторизации. По умолчанию пользователь (user) admin, а пароль (password) - zabbix.

Перед тем, как авторизоваться, давайте настроим агент Zabbix на наших других серверах.

Шаг 5

Установка и настройка агента Zabbix

Теперь нужно перейти к настройке агента, который будет отсылать собранные данные на сервер Zabbix.

Подключитесь ко второму серверу, который в данной статье будет носить название «контролируемый сервер» (то есть сервер, за которым мы наблюдаем).

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

Вывод, который вы увидите, будет примерно таким:

Затем введите команду для установки агента Zabbix:

Не забудьте подтвердить, чтобы вы хотите импортировать ключ GPG.

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

Поэтому первым делом генерируем PSK:

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

Ключ будет выглядеть примерно вот так:

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

В нем нужно отредактировать некоторые настройки. Во-первых, IP-адрес сервера Zabbix. Найдите вот такую часть:

IP-адрес, установленный по умолчанию, нужно изменить на IP-адрес вашего сервера Zabbix:

Теперь найдите часть, которая отвечает за защищенное соединение с сервером Zabbix, и в которой можно включить поддержку ключей PSK. Это TSLConnect часть, она выглядит примерно так:

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

Следующая часть, которую нужно найти, – это TLSAccept:

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

Наконец, найдите часть TLSPSKIdentity:

Тут нужно выбрать уникальное имя для того, чтобы идентифицировать ключ:

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

Наконец, нужно задать настройку, которая будет указывать на созданный ранее ключ PSK. Найдите часть TLSPSKFile:

И добавьте туда вот такую строчку:

Указывать нужно доступ к созданному файлу с данными PSK.

Сохраните и закройте файл. Теперь вы можете запустить агент Zabbix, а также задать его автозапуск при включении системы:

Обязательно проверьте, что агент работает корректно:

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

Теперь агент готов к тому, чтобы отсылать данные на сервер Zabbix. Однако перед этим нам нужно задать еще некоторые настройки в веб-консоли сервера.

Шаг 6

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

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

Заполните графы Host name (Имя хоста) и IP ADDRESS (IP-адрес) согласно данным соответствующей машины. Затем добавьте хост в определенную группу, выбрав одну из них из списка, либо создайте новую группу. При этом один хост может находиться в нескольких группах. Группу Linux Servers хорошо использовать в качестве группы по умолчанию.

После добавления группы нажмите на раздел Templates (Шаблоны). Введите Template OS Linux в строку Search (Поиск) и потом нажмите Add (Добавить) для того, чтобы добавить этот шаблон к хосту.

Переходим к разделу Encryption (шифрование). Выберите PSK для обоих соединений (от/from и к/to хосту). В графе PSK identity задайте PSK 001 (это соответствует той настройке, которую мы внесли в TLSPSIdentity ранее, когда настраивали агент Zabbix). Значение PSK – это ключ, который был сгенерирован для агента Zabbix. Тот самый, который хранится в файле /etc/zabbix/zabbix_agentd.psk.

В конце нажмите на кнопку Add (Добавить) внизу формы для того, чтобы создать новый хост.

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

Подождав некоторое время, идите в Monitoring (Мониторинг), а затем в Latest data (Последние данные) для того, чтобы увидеть информацию, полученную от вашего агента.

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

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

Заключение

В этой статье я рассказал о том, как можно удобно следить за одним или несколькими серверами. 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.

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