В нашем примере мы установим агент для Zabbix на Windows в качестве службы, а также сделаем минимальную настройку для отправки данных на сервер.
- Загрузка агента
- Установка агента
- Установка из MSI-пакета
- Установка из архива
- Настройка брандмауэра
- Проверка работы
- Знакомство с утилитой.
- Генерации конфига
- Создание конфига
- Добавление в конфиг пользовательских параметров
- Пример.
- LLD
- Создадим «Прототипы элементов данных»
- Поддержка черных и белых списков для метрик на стороне агента
- Проблемы безопасности данных
- AllowKey/DenyKey
- Последовательность правил
- Паттерны
- Правила заполнения параметров.
- Заметки
- Утилиты командной строки
- Разрешать или запрещать
- Вопросы и ответы
- Установка Zabbix-агента на ОС Windows
- Установка Zabbix-агента на ОС Linux (Ubuntu, Debian)
- Добавление хостов на Zabbix-сервер
- Обзор
- Основные возможности
- Стандартные функции системы
- Проверки
- Проверка через пользовательский параметр
- Триггеры
- Некоторые функции триггеров
- Прогнозирование
- Действие
- Параметры действий
- Операции
- Параметры операций
- Низкоуровневое обнаружение
- Что можно обнаружить
- Дополнительные типы
- Прокси
- Особенности веб-интерфейса
- Версия 4
- Основные нововведения в Zabbix 4
- Заключение
Загрузка агента
Переходим на страницу загрузки агента Zabbix и выбираем платформу операционной системы (x32 или x64) и версию агента, например:

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

Ждем окончания загрузки и переходим к установке.
Установка агента
В зависимости от загрузки типа пакета (MSI или архив) будут разные методы установки. Рассмотрим оба.
Установка из MSI-пакета
Это удобный вариант, который позволит установить агента с помощью мастера. Чтобы начать, кликаем дважды по скачанному пакету и в окне приветствия нажимаем Next:

Принимаем лицензионное соглашение, установив галочку I accept the terms in the License Agreement и нажимаем Next:


* в данном примере имя нашего компьютера Windows PC, а сервера — zabbix-server.dmosk.local.
Выбираем компоненты, которые хотим установить — можно просто оставить все по умолчанию и нажимаем Next:

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

Ждем завершения процесса — агент установлен.
Установка из архива
Данный метод требует дополнительных манипуляций, но с его помощью можно автоматизировать процесс. Мы рассмотрим только установку.
Распаковываем содержимое скачанного архива в каталог, где будут находиться файлы программы, например в C:Program FilesZabbix Agent. В итоге, у нас получится:

Открываем WordPad от администратора и в нем открываем конфигурационный файл conf/zabbix_agentd.conf и правим опцию для сервера zabbix — находим строку:
* где zabbix-server.dmosk.local — имя сервера Zabbix.
Теперь открываем командную строку от администратора и выполняем команду для установки агента:
«C:Program FilesZabbix Agentinzabbix_agentd.exe» —config «C:Program FilesZabbix Agentconfzabbix_agentd.conf» —install
* где C:Program FilesZabbix Agent — папка, куда мы распаковали архив.
Мы должны увидеть что-то на подобие:
Теперь открываем службы Windows и находим «Zabbix Agent» — кликаем по ней правой кнопкой мыши и выбираем Запустить:

Настройка брандмауэра
Если в нашей системе работает брандмауэр Windows, необходимо разрешить порт 10050 или приложение zabbix agent.
Для этого переходим в Панель управления — Система и безопасность — Брандмауэр Windows (или вводим команду control /name Microsoft.WindowsFirewall). Кликаем по ссылке Разрешение взаимодействия с приложением или компонентов в брандмауэре Windows — добавляем наше приложение zabbix_agentd в исключение.
Это же действие можно выполнить в powershell — запускаем ее от администратора и вводим команду:
New-NetFirewallRule -DisplayName «Разрешить приложение Zabbix Agent» -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Program «C:Program FilesZabbix Agentinzabbix_agentd.exe»
Или мы можем добавить в исключение порт. Это можно сделать также из командной строки poweshell:
New-NetFirewallRule -DisplayName «Разрешить порт 10050 для Zabbix» -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 10050
Проверка работы
Чтобы убедиться в работоспособности агента, мы можем зайти на сервер zabbix и выполнить подключение по telnet, например, командой:
telnet 192.168.1.15 10050
.. и через небольшой интервал времени:
Connection closed by foreign host.
Но если агент не запущен или не работает, мы увидим ошибку:
В панели сервера в узлах сети при корректной установке и настройке, мы также должны увидеть доступность компьютера по агенту:

Другие инструкции по Zabbix:
1. Установка и настройка Zabbix-агента на CentOS
2. Установка и начальная настройка сервера мониторинга Zabbix на Ubuntu Server
3. Настройка сервера Zabbix 5 на CentOS 8

Join the Chocolatey Team on our regular monthly stream where we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You’ll have a chance to have your questions answered in a live Ask Me Anything format.

We recently released our largest update to Chocolatey Central Management so far. Join Gary and Steph to find out more about Chocolatey Central Management and the new features and fixes we’ve added to this release.

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We’ll talk about some cool new features, long term asks from Customers and Community and how you can get involved!



Join Josh as he adds the ability to manage Chocolatey GUI config and features with the Chocolatey Ansible Collection.

Join Gary, Paul, and Maurice as they introduce and demonstrate how to use Chocolatey! Questions will be answered live in an Ask Me Anything format.
Будем считать, что сервер Zabbix 3.0.4 у нас установлен. Для скриптов установки агента будем использовать, по хардкору, только родную командную строку Windows, без питонов, перлов и т.п., т.е. без дополнительных инсталляций в систему агента. Шифрование настроим с помощью PSK.
Внешний IP Zabbix сервера пусть будет — 30.0.1.1
Локальный IP Zabbix сервера – 10.3.10.1
Адрес тестового узла – 30.0.1.3
По форвардинг портов тут говориться не будет. Узел в примере будет слушать 10050, сервер – 10051.
Распаковываем. Нам понадобится только каталог bin. Дефолтный конфиг нам не понадобится.
Создаём каталог zabbix и копируем в него каталог bin из распакованного агента. Далее создаём в каталоге zabbix подкаталоги conf, disks, logs, psk, scripts, smartmontools. Сразу примем решение что размещать папку zabbix мы будем в корне тома C:

Сразу подготовим PSK ключи и файл данных. Создаём на сервере файл pskgen4ik:
Сохраняем, делаем исполняемым (chmod +x ), запускаем, и копируем результат в файл данных, я приведу пример Excel для наглядности. Можно использовать и базу данных. Что-то типа этого:

Поле Host name мы заполним после создания конфига агента (если конечно же нет уже составленного списка). Придумываем и дописываем уникальные идентификаторы PSK ID. Сохраняем файл данных, делаем бэкап, строго ограничиваем к нему доступ и удаляем файл «agent_psk». Всё у нас есть файл данных с ключами и идентификаторами, которые будем использовать.
Для получения информации о дисках и их S.M.A.R.T используем утилиту Smartmontools. Я беру последнюю версию 6.5. В этой версии нормально определяются паспорта USB, и новые манифесты для 10ки. Обо всех исправлениях в релизе.
Скачиваем и кидаем в папку zabbixsmartmontools
Знакомство с утилитой.
Смотрим список подключенных дисков:

Ключ –d указывает на тип диска.
Заинтересуемся диском /dev/sda. Пока он мало о чём говорит кроме того, что он ATA-типа и скорей всего загрузочный.
Смотрим информацию о нём:

Уже интересней. Как видно СМАРТ отключён. Включаем его:
Смотрим таблицу атрибутов S.M.A.R.T.

Таблицу смарт у RAID посмотреть не получится, но статус health получить сможем.
Смотрим SMART Health:

Теперь то же самое нужно сделать для остальных 1000 дисков ) Создавать для каждого шаблоны уже не может быть и речи, более того мне, например, ещё нужно получать модель и серийник каждого диска в отчёте. На помощь приходит Zabbix LLD.
Поскольку Zabbix имеет возможность обработки данных по протоколу JSON, предоставленной его API, мы будем генерить нужную информацию из smartmontools в JSON формат и пассивно передавать на сервер.
Начинаем создавать сценарии. Для начала придумаем макросы обнаружения и определимся с данными:
Создаём в каталоге zabbixscripts файл DiskInfoGenerationJSON.cmd следующего содержания:
При запуске файла DiskInfoGenerationJSON.cmd. В итоге мы должны получить файл c:zabbixdisksdisks.cmd со следующим содержимым:

Создаём в каталоге zabbixscripts файл GetSmartAllDisk.cmd следующего содерания:
rem включаем СМАРТ у всех дисков которые это позволят:
for /F «tokens=1» %%a in (‘C:»Program Files»smartmontoolsinsmartctl.exe —scan’) ^
do «C:Program Filessmartmontoolsinsmartctl.exe» —smart=on —offlineauto=on —saveauto=on %%a
Генерации конфига
Генерация будет разбита на две части: настройки подключения и пользовательские параметры.
Создание конфига
Анализируем будущий конфигурационный файл агента:
В каталоге zabbixscripts создаём файл AgentConfigGeneration.cmd:
Всё просто. При запуске вводим название организации, например, Organization1 и получаем Hostname в конфиге в виде «Organization1.Имя_хоста». В пределах сети одной организации как правило исключается использование одинаковых имён узлов, поэтому мы будем иметь уникальные имена. Далее вводим PSK ID из ранее составленного файла данных и ключ. Но пока мы ничего не запускаем.
Добавление в конфиг пользовательских параметров
Нам ещё нужно открыть порт на узле, если брандмауэр включён. Создаём файл OpenLocalPort.cmd
Итак, сценарии мы написали. Вот что у нас получается:

Теперь нужно определиться в очерёдности запусков этого добра:
1) Ввод переменных
2) Установка smartmontools в тихом режиме
3) Установка службы Zabbix Agent
4) Генерация конфига с пользовательскими параметрами — AgentConfigGeneration.cmd
5) Генерация списка дисков — DiskInfoGenerationJSON.cmd
6) Включение S.M.A.R.T. — GetSmartAllDisk.cmd.cmd
7) Открыть порт — OpenLocalPort.cmd
8) Запуск службы Zabbix Agent
Создаём в корне каталога zabbix файл INSTALL_AGENT.cmd и объединяем в нём все шаги наших сценариев:
Упаковываем каталог zabbix в SFX-архив и шифруем паролем при необходимости
Пример.
Имеем сервер в организации «Организация 1». Помещаем zabbix.exe на сервер и распаковываем в корень тома C:
Запускаем INSTALL_AGENT.cmd от имени Администратора. Вводим без пробелов название Организации, копируем из файла данных идентификатор PSK и ключ:


Проверяем файл логов C:zabbixlogslogs.log:

Копируем Hostname “Organization1.SUNSET” в файл данных:

И так далее с каждым хостом. После заполнения файла заходим в кабинет Zabbix — 10.3.10.1/zabbix — и добавляем из него группы, узлы. В настройках шифрования узла отмечаем PSK и ждём онлайна.


Ждём несколько секунд:

О шифровании и об ограничениях
LLD
Русифицирую кабинет для разнообразия )
Создаём Шаблон S.M.A.R.T. и группы элементов данных. Для примера я создал следующие группы по атрибутам смарта:

Выбираем «Правила обнаружения» и создаём правило:

А во вкладке «Фильтры» пишем наши макросы из созданного файла c:zabbixdisksdisks.cmd и жмём «Добавить»


Создадим «Прототипы элементов данных»
Кстати, можем проверить ключ с сервера, c помощью zabbix_get

И также для Threshold:

Итак, создаём наш прототип данных для VALUE и используем пассивную проверку:

Аналогично создаём прототип для Threshold. В итоге имеем:

Создаём «Прототип триггера». Даём имя, например, для наглядности:
В «Поле выражение» пишем условие:
Смысл в том, что если Value меньше Threshold — нужно выдать проблему. Last() – показывает последнее полученное значение (подробней о функициях). В поле «Описание» пишем, например:
Важность ставим «Чрезвычайная»

Будем считать, что оповещение у нас настроено по EMAIL. Если нет, то сюда.
Переходим на вкладку «Условия» и заполняем как показано ниже:

Я указал только «Чрезвычайные» проблемы для примера. Условия можно задавать какие душе угодно.
Переходим во вкладку «Операции» и добавляем либо группу нашего пользователя, либо указываем только себя. Тут в принципе комментировать нечего.

Теперь я сымитирую сбой. У меня например вcе атрибуты впорядке, поэтому я изменю значение в триггере и поставлю «больше нуля»
Арифметику думаю объяснять не нужно.
Ждём некоторое время и получаем проблему:

И спустя пару секунд приходит сообщение на почту:

После восстановления получим следующее сообщение:

Если есть ошибки, или что-то можно делать проще, пожалуйста сообщите! Писал тему пару часов со скринами, вроде дважды проверил на удачно.
Время на прочтение

Поддержка черных и белых списков для метрик на стороне агента
Тихон Усков, Инженер интеграции, Zabbix
Проблемы безопасности данных
В Zabbix 5.0 появилась новая функция, которая позволяет улучшить безопасность в системах с использованием Zabbix Agent и заменяет старый параметр EnableRemoteCommands.
Усовершенствование безопасности систем с использованием агента обусловлено тем фактом, что агент может выполнять большое количество потенциально опасных действий.
Например, с помощью утилиты zabbix_get можно получить доступ к списку пользователей, их домашним каталогам, файлам с паролями и т. д.

Доступ к данным с помощью утилиты zabbix_get
ПРИМЕЧАНИЕ. Данные могут быть получены, только если агент имеет права на чтение соответствующего файла. Но, например, файл /etc/passwd/ доступен для чтения всем пользователям.

Использование параметра EnableRemoteCommand в ранних версиях Zabbix
AllowKey/DenyKey
Zabbix 5.0 помогает защититься от такого несанкционированного доступа благодаря белым и черным спискам для разрешения и запрета метрик на стороне агента.
AllowKey= — разрешенные проверки;
DenyKey= — запрещенные проверки;
где — паттерн имени ключа с параметрами, в котором используются метасимволы (*).
Ключи AllowKey и DenyKey позволяют разрешить или запретить отдельные метрики по определенному шаблону. В отличие от других параметров конфигурации количество параметров AllowKey/DenyKey не ограничено. Это позволяет четко определить, что именно агент может делать в системе благодаря созданию дерева проверок — выполняемых ключей, где очень важную роль играет порядок их написания.
Последовательность правил
Правила проверяются в том порядке, в котором они внесены в конфигурационный файл. Проверка ключа по правилам происходит до первого совпадения, и как только ключ элемента данных совпадает с паттерном, он разрешается или запрещается. После этого проверка правил останавливается, и остальные ключи игнорируются.
Поэтому если элемент соответствует и разрешающему, и запрещающему правилу, результат будет зависеть от того, какое правило будет первым в конфигурационном файле.

Порядок использования ключей AllowKey/DenyKey:
- точные правила,
- общие правила,
- запрещающее правило.
Например, если вам необходим доступ к файлам в определенной папке, необходимо сначала разрешить доступ к ним, после чего запретить все остальное, что не попадает под установленные разрешения. Если в первую очередь будет использовано запрещающее правило, доступ к папке будет запрещен.


Паттерны
Паттерн — выражение с подстановочными знаками (wildcard). Метасимвол (*) соответствует любому количеству любых символов в определенной позиции. Метасимволы могут использоваться как в имени ключа, так и в параметрах. Например, можно жестко определить текстом первый параметр, а последующий указать как wildcard.
Примеры использования wildcard.
- В имени ключа и в параметре. В данном случае ключ не соответствует аналогичному ключу, который не содержит параметр, поскольку в паттерне мы указали, что хотим получить некое окончание имени ключа и некий набор параметров.
- Если в паттерне не использованы квадратные скобки, паттерн разрешает все ключи, которые не содержат параметры и запрещает все ключи с указанным параметром.
- Если ключ записан полностью, а параметры указаны как wildcard, он будет соответствовать любому аналогичному ключу с любыми параметрами и не будет соответствовать ключу без квадратных скобок, т. е. будет разрешен или запрещен.

Правила заполнения параметров.

Особенности написания ключей с параметрами

Правила заполнения параметров
Заметки
ПРИМЕЧАНИЕ. Если администратор запрещает какой-либо ключ, при запросе Zabbix не выдает информации о том, по какой причине метрика или ключ попадают в категорию ‘NOTSUPPORTED’. В log-файлах агента информация о запретах на выполнение удаленных команд также не отображается. Это сделано из соображений безопасности, но может осложнить отладку, если метрики попадают в неподдерживаемую категорию по каким-либо причинам.
Утилиты командной строки
После настройки правил необходимо удостовериться, что все настроено верно.
Можно воспользоваться одним из трех вариантов:
- Добавить метрику в Zabbix.
- Протестировать с помощью zabbix_agentd. Zabbix agent c опцией -print (-p) показывает все ключи (которые разрешены по умолчанию), кроме тех, которые не разрешены конфигурацией. А с опцией -test (-t) для запрещенного ключа вернет ‘Unsupported item key’.
- Протестировать с помощью zabbix_get. Утилита zabbix_get с опцией -k вернет ‘ZBX_NOTSUPPORTED: Unknown metric’.
Разрешать или запрещать
Вы можете запретить доступ к файлу и удостовериться, например, с помощью утилиты zabbix_get, что доступ к файлу запрещен.

ПРИМЕЧАНИЕ. Кавычки в параметре игнорируются.
При этом доступ к такому файлу может быть разрешен по другому пути. Например, если на него ведет симлинк.

Рекомендуется проверять различные варианты применения задаваемых правил, а также учитывать возможности обойти запреты.
Вопросы и ответы
Вопрос. Почему для описания правил, разрешений и запретов выбрана такая сложная схема паттерна со своим языком? Почему не было возможности воспользоваться, например, регулярными выражениями, которые использует Zabbix?
Ответ. Это вопрос производительности regex, поскольку агент, как правило, один, и он проверяет огромное количество метрик. Regex — достаточно тяжелая операция, и мы не можем проверять тысячи метрик таким образом. Wildcards — универсальное, шороко применяемое и простое решение.
Вопрос. Разве файлы Include подключаются не в алфавитном порядке?
Ответ. Насколько мне известно, предсказать последовательность применения правил, если вы разносите правила по разным файлам, фактически невозможно. Я рекомендую собрать все правила AllowKey/DenyKey в одном файле Include, потому что они взаимодействуют друг с другом, и подключать этот файл.
Вопрос. В Zabbix 5.0 опция ‘EnableRemoteCommands=’ в конфигурационном файле отсутствует, и доступны только AllowKey/DenyKey?
Ответ. Да, все верно.
Спасибо за внимание!
- Установка Zabbix-агента на ОС Windows Установка Zabbix-агента на ОС Linux (Ubuntu, Debian) Добавление хостов на Zabbix-сервер
- Установка Zabbix-агента на ОС Linux (Ubuntu, Debian) Добавление хостов на Zabbix-сервер
- Установка Zabbix-агента на ОС Linux (Ubuntu, Debian)
- Добавление хостов на Zabbix-сервер
Рассмотрим как установить и настроить Zabbix-агенты для наблюдения за системами ОС Windows и Linux. По данной статье у меня развернут Zabbix-сервер 3.2.5, соответственно все агенты будут устанавливаться версии 3.2.
Установка Zabbix-агента на ОС Windows
Скачиваем с оф. сайта Zabbix-агента для Windows систем.

Распаковываем скачанный архив и запускаем Командную строку от администратора. Переходим в каталог с установочными файлами агента (для корректной работы агента, учитываем разрядности системы):
Для установки одиночного экземпляра Zabbix-агента с файлом конфигурации c:zabbix_agentd.conf по-умолчанию, выполняем:

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

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

Если была выполнена обычная установка, то копируем шаблон zabbix_agentd.win.conf в корень диска C: и переименовываем файл в zabbix_agentd.conf.
Если была выполнена установка с указанием пути к файлу конфигурации, то копируем шаблон zabbix_agentd.win.conf в папку которую указывали при установке Zabbix-агента и переименовываем файл в zabbix_agentd.conf.
Выполняем настройку файла конфигурации. Приводим следующие параметры в файле к виду:
Запуск службы Zabbix-агента
Запускаем службу Zabbix-агента. Пуск — Панель управления — Администрирование — Службы. Находим службу Zabbix Agent и нажимаем Запустить.

Запустить службу можно так же из командной строки. Для запуска одиночного экземпляра Zabbix-агента с файлом конфигурации по умолчанию:
Для запуска одиночного экземпляра Zabbix-агента с отличным от умолчания файлом конфигурации:
Для запуска одного из нескольких экземпляров Zabbix-агента:
Остановка службы Zabbix-агента
Остановка службы Zabbix-агента. Пуск — Панель управления — Администрирование — Службы. Находим службу Zabbix Agent и нажимаем Остановить
Остановка Zabbix-агента, который запущен с файлом конфигурации по умолчанию:
Остановка Zabbix-агента, который запущен с другим файлом конфигурации:
Остановка одного из нескольких экземпляров Zabbix-агента:
Удаление службы Zabbix-агента
Удаления Zabbix-агента, который использует файл конфигурации по-умолчанию:
УдаленияZabbix-агента, который не использует файлом конфигурации по-умолчанию:
Удаления нескольких экземпляров Zabbix-агента из служб Windows:
Если удалить службу выше перечисленными способами не удается, то можно удалить службу средствами Windows, предварительно остановив работу службы и выполнив в командной строке с правами администратора:
На этом установка Zabbix-агента на ОС Windows завершена, теперь рассмотрим как установить агента на ОС Linux.
Установка Zabbix-агента на ОС Linux (Ubuntu, Debian)
Установку Zabbix-агента буду рассматривать на Ubuntu Server 14.04.
Скачиваем необходимый пакет и устанавливаем его:
wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+trusty_all.deb
sudo dpkg -i zabbix-release_3.2-1+trusty_all.deb
Обновляем данные репозиториев и устанавливаем самого агента:
sudo apt-get update
sudo apt-get install zabbix-agent
Выполняем настройку Zabbix-агента, файл конфигурации располагается в /etc/zabbix/zabbix_agentd.conf. Отредактируем его:
sudo nano /etc/zabbix/zabbix_agentd.conf
И вносим следующие изменения:
Сохраняем изменения в файле и перезапускаем службу Zabbix-агента:
sudo service zabbix-agent restart
На этом установка и настройка Zabbix-агента выполнена. Теперь рассмотрим как заводить хосты на самом Zabbix-сервере.
Добавление хостов на Zabbix-сервер
Заходим на Zabbix-сервер, посредством Web-интерфейса. Переходим Настройка (Configuration)- Узлы сети (Hosts) и нажимаем Создать узел сети (Create host)


Переходим во вкладку Шаблоны (Templates). В пункте Соединить с новыми шаблонами (Link new templates):
- для Windows выбираем Template OS Windows
- для Linux выбираем Template OS Linux

Нажимаем Добавить (Add), чтобы закрепить выбранный шаблон к данному узлу сети.

Видим что в графе Присоединенные шаблоны (Linked templates), появился выбранный шаблон. Нажимаем Добавить (Update).

Узел сети успешно добавился и Zabbix-сервер его опознал и установил связь с установленным агентом на узле сети, о чем свидетельствует зеленый индикатор ZBX в графе Доступность.

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

Вот по такому принципу добавляются узлы сети в Zabbix-сервер. Хочу обратить внимание что представленный пример является базовым методом добавления и использования входящих в состав Zabbix шаблона. На самом деле Zabbix является конструктором, в котором можно реализовать сложный системы мониторинга узлов сети, дальше только ваш полет фантазии.
Понравилась или оказалась полезной статья, поблагодари автора
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
3 февраля 2020
Время чтения ≈ 13 минут

Zabbix — это универсальный инструмент мониторинга, способный отслеживать динамику работы серверов и сетевого оборудования, быстро реагировать на внештатные ситуации и предупреждать возможные проблемы с нагрузкой. Система мониторинга Zabbix может собирать статистику в указанной рабочей среде и действовать в определенных случаях заданным образом.
В этой обзорной статье расскажем об основных принципах и ключевых инструментах, на которых построена универсальная система мониторинга Zabbix.
Обзор
Систему создал Алексей Владышев на языке Perl. Впоследствии проект подвергся серьезным изменением, которые затронули и архитектуру. Zabbix переписали на C и PHP. Открытый исходный код появился в 2001 г., а уже через три года выпустили первую стабильную версию.
Веб-интерфейс Zabbix написан на PHP. Для хранения данных используются MySQL, Oracle, PostgreSQL, SQLite или IBM DB2.

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

У Zabbix есть 4 основных инструмента, с помощью которых можно мониторить определенную рабочую среду и собирать о ней полный пакет данных для оптимизации работы.
- Сервер — ядро, хранящее в себе все данные системы, включая статистические, оперативные и конфигурацию. Дистанционно управляет сетевыми сервисами, оповещает администратора о существующих проблемах с оборудованием, находящимся под наблюдением.
- Прокси — сервис, собирающий данные о доступности и производительности устройств, который работает от имени сервера. Все собранные данные сохраняются в буфер и загружаются на сервер. Нужен для распределения нагрузки на сервер. Благодаря этому процессу можно уменьшить нагрузку на процессор и жесткий диск. Для работы прокси Zabbix отдельно нужна база данных.
- Агент — программа (демон), которая активно мониторит и собирает статистику работы локальных ресурсов (накопители, оперативная память, процессор и др.) и приложений.
- Веб-интерфейс — является частью сервера системы и требует для работы веб-сервер. Часто запускается на том же физическом узле, что и Zabbix.
Основные возможности
Функционал включает в себя общие проверки для наиболее распространенных сервисов, в том числе СУБД, SSH, Telnet, VMware, NTP, POP, SMTP, FTP и т.д. Если стандартных настроек системы недостаточно, их можно изменить самостоятельно или же пользоваться дополнением через API.

Стандартные функции системы
- Контроль нагрузки на процессор, касается и отдельных процессов.
- Сбор данных об объеме свободной оперативной и физической памяти.
- Мониторинг активности жесткого диска.
- Мониторинг сетевой активности.
- Пинг для проверки доступности узлов в сети.
Проверки
Для описания системы мониторинга Zabbix существует два ключевых понятия:
- Узлы сети — рабочие устройства и их группы (серверы, рабочие станции, коммутаторы), которые необходимо проверять. С создания и настойки узлов сети обычно начинается практическая работа с Zabbix.
- Элементы данных — набор самостоятельных метрик, по которым происходит сбор данных с узлов сети. Настройка элементов данных производится на вкладке «Элемент данных» или в автоматическом режиме — через подключение шаблона.
Сам Zabbix-агент способен отражать текущее состояние физического сервера, собирая совокупность данных. У него достаточно много метрик. С их помощью можно проверить загруженность ядра (Processor load), время ожидания ресурсов (CPU iowait time), объем системы подкачки (Total swap space) и многое другое.

В Zabbix существует целых 17 способов, дающих возможность собирать информацию. Указанные ниже, входят в число наиболее часто применяемых.
- Zabbix agent (Zabbix-агент) — сервер собирает информацию у агента самостоятельно, подключаясь по определенному интервалу.
- Simple check (Простые проверки) — простые операции, в том числе пинг.
- Zabbix trapper (Zabbix-траппер) — сбор информации с трапперов, представляющих собой мосты между используемыми сервисами и самой системой.
- Zabbix aggregate (Zabbix-комплекс) — процесс, предусматривающий сбор совокупной информации из базы данных.
- SSH agent (SSH-агент) — система подключается по SSH, использует указанные команды.
- Calculate (Вычисление) — проверки, которые система производит, сопоставляя имеющиеся данные, в том числе после предыдущих сборов.
У проверок есть заданные шаблоны (Templates), которые упрощают создание новых. Кроме обычных операций существует возможность регулярно проверять доступность веб-сервера с помощью имитации запросов браузера.
Проверка через пользовательский параметр
Помимо самой команды, приведенный синтаксис содержит уникальный (в пределах узла сети) ключ элемента данных, который надо придумать самостоятельно и сохранить. В дальнейшем, ключ можно использовать для ссылки на команду, внесенную в пользовательский параметр, при создании элемента данных.
С помощью данной команды можно настроить агент на постоянное возвращение значения «» для элемента данных с ключем «».
Триггеры
Это логические выражения со значениями , и , которые используются для обработки данных. Их можно создать вручную. Перед использованием триггеры возможно протестировать на произвольных значениях.

У каждого триггера существует уровень серьезности угрозы, который маркируется цветом и передается звуковым оповещением в веб-интерфейсе.
- Не классифицировано (Not classified) — серый.
- Информация (Information) — светло-синий.
- Предупреждение (Warning) — жёлтый.
- Средняя (Average) — оранжевый.
- Высокая (High) — светло-красный.
- Чрезвычайная (Disaster) — красный.
Некоторые функции триггеров
- abschange — абсолютная разница между последним и предпоследним значением (0 — значения равны, 1 — не равны).
- avg — среднее значение за определенный интервал в секундах или количество отсчетов.
- delta — разность между максимумом и минимумом с определенным интервалом или количеством отсчетов.
- change — разница между последним и предпоследним значением.
- count — количество отсчетов, удовлетворяющих критерию.
- date — дата.
- dayofweek — день недели от 1 до 7.
- diff — у параметра есть значения, где 0 — последнее и предпоследнее значения равны, 1 — различаются.
- last — любое (с конца) значение элемента данных.
- maxmin — максимум и минимум значений за указанные интервалы или отсчеты.
- now — время в формате UNIX.
- prev — предпоследнее значение.
- sum — сумма значений за указанный интервал или количество отсчетов.
- time — текущее время в формате HHMMSS.
Прогнозирование
Триггеры обладают еще одной важной функцией для мониторинга — прогнозированием. Она предугадывает возможные значения и время их возникновения. Прогноз составляется на основе ранее собранных данных.
Анализируя их, триггер выявляет будущие проблемы, предупреждает администратора о возникшей вероятности. Это дает возможность предотвратить пики нагрузки на оборудование или заканчивающееся место на жестком диске.
Функционал прогнозирования добавили с обновлением системы 3.0, вышедшим в феврале 2016 года.
Действие
Действие (Action) представляет собой заданную реакцию на событие (Event). Действие может устанавливаться автоматически или вручную как для одного из событий, так и для целой группы.

Параметры действий
- Name — имя действия.
- Event source — источник события. Источниками событий служат обнаружение (Discovery Events), авторегистрация (Auto registration Events) или заданный триггер (Trigger Events).
- Enable escalations — разрешение на эскалацию событий.
- Period — период времени для шага эскалации, указывается в секундах.
- Default subject — указывается, кто извещается по умолчанию.
- Default message — стандартный текст сообщения.
- Recovery message — текст уведомления после решения проблемы.
- Recovery subject — субъект, которого извещают после операции.
- Status — статус действия, может быть «активно» и «запрещено».
Для событий, вызванных триггером или обнаружением, есть свои типы условий. Например, «Application» с операторами «», «» и «» значит, что триггер является частью указанного приложения. Или «Service type» с операторами «», «»и «» предусматривает, что обнаруженный сервис совпадает с указанным.
Операции
Пользователь может указать для событий операцию или группу операций.

Параметры операций
- Step — при эскалации событий.
- Operation type — действия на определенном шаге, например, «Send message» или «Execute command».
- Event Source — источник событий.
- Default message — текст по умолчанию.
- Subject — кого оповещает система.
- Message — текст сообщения.
- Remote command — команда для удаленного управления.
Низкоуровневое обнаружение

Что можно обнаружить
- Распространённые OID, используемые SNMP.
- Сетевые интерфейсы.
- Процессоры, их ядра.
- Файловые системы.
- Службы Windows.
- ODBC.
Дополнительные типы
Задать собственные типы низкоуровневого обнаружения возможно с применением формата JSON. Типы проверок, для которых можно указать список портов и интервал для них:
- SSH;
- LDAP;
- SMTP;
- FTP;
- HTTP;
- POP;
- NNTP;
- IMAP;
- TCP.
Если хост пропадает или обнаруживается, для события можно привязать любое действие — условия и операцию для них.
Прокси
Функция буферизации через прокси используется в том случае, когда существующая инфраструктура достаточно большая, а выделенный сервер не способен нести такую нагрузку. Прокси выступает промежуточным звеном, которое собирает информацию с агентов в буфер, а после отправляет данные на сервер.
Прокси используется еще в нескольких случаях — если агенты находятся далеко друг от друга или ограничены локальной сетью. Это сказывается на доступности агентов и величине пингов.
Zabbix прокси функционирует как демон. Для его использования обязательно наличие отдельной базы данных.
Особенности веб-интерфейса
Система мониторинга Zabbix располагает удобным веб-интерфейсом, в котором сгруппированы элементы управления. Консоль предусматривает просмотр собранных данных, их настройку. Для безопасности входа и работы осуществляется автоматическое отсоединение через 30 минут пользовательского бездействия.
На главном экране всегда представлена информация о состоянии узлов сети и триггеров.


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

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

Основные нововведения в Zabbix 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-дисках обеспечит системе максимальное быстродействие и возможность мониторить множество узлов в сети.

