- Zabbix Documentation 5.2
- Sidebar
- Table of Contents
- 1 Настройка узла сети
- Обзор
- Настройка
- Создание группы узлов сети
- Zabbix: Убираем лишние сетевые интерфейсы
- Мониторим всё: расширение агентов Windows и Linux при помощи скриптов
- Немного матчасти
- Мониторинг SMART через UserParameter
- Мониторинг SMART через Flexible UserParameter
- Мониторинг SMART через Flexible UserParameter c Low-level Discovery
- Контроль за установкой новых программ на Windows
- В итоге
Zabbix Documentation 5.2
Sidebar
Table of Contents
1 Настройка узла сети
Обзор
Для настройки узла сети в веб-интерфейсе Zabbix, сделайте следующее:
Вы также можете использовать кнопки Клонировать и Полное клонирование в диалоге существующего узла для создания нового узла сети. Нажатие на Клонировать сохранит все параметры узла сети и все соединения с шаблонами (с сохранением всех объектов из этих шаблонов). Полное клонирование дополнительно сохранит все напрямую добавленные объекты (элементы данных, триггеры, графики и группы элементов данных).
Обратите внимание: При клонировании узла сети, он наследует все сущности из шаблонов, как они настроены изначально в шаблонах. Любые сделанные изменения в этих сущностях на уровне узла сети (такие как интервал опроса элементов данных, измененное регулярное выражение или добавленные прототипы к правилу низкоуровневого обнаружения) не будут скопированы в новый узел сети; они останутся так как есть в шаблоне.
Настройка
Вкладка Узел сети содержит общие атрибуты узла сети
Все обязательные поля ввода отмечены красной звёздочкой.
Параметр | Описание |
---|---|
Имя узла сети | Введите уникальное имя узла сети. Разрешены буквенно-цифровые символы, пробелы, точки, тире и подчеркивания. Обратите внимание: При работающем Zabbix агенте на настраиваемом вами узле сети, параметр Hostname из файла конфигурации агента должен иметь такое же значение, как и введенное здесь имя узла сети. Имя из этого параметра необходимо для обработки активных проверок. |
Видимое имя | Если вы укажите это имя, именно оно будет видимо в списках, картах и прочем. Этот атрибут имеет поддержку UTF-8. |
Группы | Выберите группы узлов сети к которым будет принадлежать узел сети. Узел сети должен принадлежать по крайней мере одной группе узлов сети. Новую группу можно создать и присоединить к узлу сети, добавив несуществующее имя группы. |
Интерфейсы | Для узлов сети поддерживаются несколько типов интерфейсов: агент, SNMP, JMX и IPMI. Чтобы добавить новый интерфейс, нажмите на Добавить в блоке Интерфейсы и введите информацию IP/DNS , Подключаться через и Порт. Обратите внимание: Интерфейсы, которые используются какими-нибудь элементами данных, не могут быть удалены и у них ссылка Удалить отображается серым. Опция Использовать массовые запросы у SNMP интерфейсов позволяет включать/отключать массовую обработку SNMP запросов по каждому интерфейсу отдельно. |
IP адрес | IP адрес узла сети (опционально). |
DNS имя | DNS имя узла сети (опционально). |
Подключаться через | Нажатие на соответствующую кнопку подскажет Zabbix серверу что использовать для получения данных от агентов: IP — Подключение к узлу сети, используя IP адресу (рекомендуется) DNS — Подключение к узлу сети, используя DNS имя |
Порт | Номер TCP/UDP порта. Значения по умолчанию: 10050 для Zabbix агента, 161 для SNMP агента, 12345 для JMX и 623 для IPMI. |
По умолчанию | Отметьте, чтобы интерфейс считался по умолчанию. |
Наблюдение через прокси | Узел сети может наблюдаться через Zabbix сервер или через один из Zabbix прокси: (без прокси) — узел сети наблюдается Zabbix сервером Имя прокси — узел сети наблюдается через Zabbix прокси “Имя прокси” |
Активировано | Отметьте, чтобы сделать узел сети активным, готовым к мониторингу. Если не отмечено, узел сети неактивен, таким образом не наблюдается. |
Вкладка Шаблоны позволяет вам присоединить шаблоны к узлу сети. Все объекты (элементы данных, триггеры, графики и группы элементов данных) будут унаследованы из шаблона.
Для присоединения нового шаблона, начните вводить имя шаблона в поле Соединить с новыми шаблонами до тех пор пока не появится список совпадающих шаблонов. Прокрутите список и выберете нужное. Когда все шаблоны будут выбраны, нажмите на Добавить.
Для отсоединения шаблона используйте одну из двух опций в блоке Присоединенные шаблоны:
Имена перечисленных шаблонов являются ссылками, которые ведут на диалог настройки шаблона.
Вкладка IPMI содержит атрибуты управления по IPMI.
Параметр | Описание |
---|---|
Метод аутентификации | Выбор алгоритма аутентификации. |
Уровень привилегий | Выбор уровня привилегий. |
Имя пользователей | Имя пользователя для аутентификации. |
Пароль | Пароль для аутентификации. |
Вкладка Макросы позволяет вам задать пользовательские макросы на уровне узла сети. Вы также здесь можете просмотреть макросы уровня шаблона и глобаьные макросы, если выберите опцию Макросы узла сети и унаследованные. Это то место, где отображаются все определенные пользовательские макросы для этого узла сети со своими раскрытыми значениями, а также информация о том откуда эти макросы.
Для удобства имеются ссылки на настройку соответствующих шаблонов и глобальных макросов. Также имеется возможность изменить макрос уровня шаблона/глобальный на уровне узла сети, фактически создав копию этого макроса на узле сети.
Вкладка Инвентарные данные узла сети позволяет вам вручную ввести информацию о инвентарных данных узла сети. Вы также можете выбрать Автоматически заполнение инвентарных данных, или деактивировать заполнение инвентарных данных для этого узла сети.
Вкладка Шифрование позволяет вам требовать шифрование соединений с узлом сети.
Параметр | Описание |
---|---|
Подключения к узлу сети | Каким образом Zabbix сервер или прокси подключаются к Zabbix агенту на хосте: без шифрования (по умолчанию), используя PSK (pre-shared key) или сертификат. |
Соединения с узла сети | Выберите какой тип подключений разрешен с узла сети (то есть с Zabbix агента и Zabbix sender). Можно выбрать несколько типов соединений одновременно (полезно при тестировании и переключении на другой тип соединения). По умолчанию — “Без шифрования”. |
Издатель | Разрешенный эмитент сертификата. Сертификат сначала подтверждается CA (центром сертификации). Если он действительный, подписан с помощью CA, тогда можно использовать поле Издатель для более строгого ограничения разрешенных CA. Это поле предназначено для использования, если ваша Zabbix инсталляция использует сертификаты от нескольких CA. Если поле не заполнено, тогда принимается любой CA. |
Тема | Разрешенная тема сертификата. Сертификат сначала подтверждается CA. Если он действительный, подписан с помощью CA, тогда можно использовать поле Тема, чтобы разрешить только одно значение строки Тема. Если поле пустое, тогда принимается любой сертификат, подписанный настроенным CA. |
Идентификатор PSK | Строка идентификации pre-shared key. |
PSK | Pre-shared key (строка в шестнадцатеричном формате). Максимальная длина: 512 шестнадцатеричных цифр (256-байт PSK), если Zabbix использует библиотеки GnuTLS или OpenSSL, 64 шестнадцатеричных цифр (32-байт PSK), если Zabbix использует библиотеку mbed TLS (PolarSSL). Пример: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952 |
Создание группы узлов сети
Для создания группы узлов сети в веб-интерфейсе Zabbix, выполните следующее:
Все обязательные поля ввода отмечены красной звёздочкой.
Параметр | Описание |
---|---|
Имя группы | Введите уникальное имя группы узлов сети. Чтобы создать вложенную группу узлов сети, используйте прямую косую черту ‘/’, например Европа/Латвия/Рига/Zabbix сервера .Вы можете создать эту группу, даже если ни одна из родительских группы узлов сети ( Европа/Латвия/Рига ) не существуют. В этом случае создание этих родительских групп узлов сети зависит от желания пользователя; они не будут созданы автоматически. Косые черты в начале и в конце строки, несколько косых черт подряд не поддерживаются. Экранирование символа ‘/’ не поддерживается. Вложенное представление групп узлов сети поддерживается начиная с Zabbix 3.2.0. |
Применить права доступа ко всем подгруппам | Эта опция доступна только Zabbix Супер Админ пользователям и только при редактировании существующей группы узлов сети. Выберите эту опцию и нажмите на Обновить, чтобы применить одинаковый уровень прав доступа ко всем вложенным группам узлов сети. Для групп пользователей, которые могли иметь разные права доступа, назначенные на вложенные группы узлов сети, будет применён уровень прав доступа родительской группы узлов сети ко всем вложенным группам. Это действие является одномоментной опцией, которая не хранится в базе данных. Опция поддерживается начиная с Zabbix 3.4.0. |
Права доступа к вложенным группам узлов сети
Zabbix: Убираем лишние сетевые интерфейсы
Последнее время достаточно плотно пришлось работать с «универсальной системой мониторинга Zabbix». В голове и evernote скопилось достаточно большое количество полезных решений (в том числе «костыльных»), которыми я постараюсь поделиться.
Структура постов по данной теме будет несколько хаотичной, связанная скорее с фактом столкновения с той или иной проблемой и её решением.
Начнем с удаления «лишних» сетевых интерфейсов из «Network interface discovery«.
Стандартные шаблоны «Template OS Linux» и «Template OS Windows» уже содержат «Discovery rules» для обнаружения и добавления сетевых интерфейсов — «Network interface discovery».
К сожалению, добавление избыточно. На скриншете ниже один «интересный» нам интерфейс, однако в графиках можно увидеть следующую картину:
Алгоритм добавления можно изменить, исправив регулярное выражение «Network interfaces for discovery».
Регулярное выражение правятся в секции «Administration» — > «General», в правом верхнем углу выбираем «Regular expressions».
На текущий момент список моих правил выглядит так:
UPD: 24.04.2017
1 » ^WAN Miniport [Результат ЛОЖЬ] 2 » ^Microsoft Loopback [Результат ЛОЖЬ] 3 » ^RAS Async Adapter [Результат ЛОЖЬ] 4 » ^MS TCP Loopback interface [Результат ЛОЖЬ] 5 » ^WAN Miniport (Network Monitor)-QoS [Результат ЛОЖЬ] 6 » ^WAN Miniport (Network Monitor)-Symantec [Результат ЛОЖЬ] 7 » ^lo$ [Результат ЛОЖЬ] 8 » ^Software Loopback Interface [Результат ЛОЖЬ] 9 » ^Teredo Tunneling [Результат ЛОЖЬ] 10 » ^Microsoft ISATAP [Результат ЛОЖЬ] 11 » ^vmxnet3 Ethernet Adapter-WFP [Результат ЛОЖЬ] 12 » LightWeight Filter [Результат ЛОЖЬ] 13 » QoS Packet Scheduler [Результат ЛОЖЬ] 14 » Symantec Endpoint Protection [Результат ЛОЖЬ] 15 » Microsoft Kernel Debug Network Adapter [Результат ЛОЖЬ]
UPD: 14.11.2018 Для windows
1 » RAS асинхронный адаптер [Результат ЛОЖЬ] 2 » Адаптер Microsoft ISATAP [Результат ЛОЖЬ] 3 » WFP LightWeight Filter [Результат ЛОЖЬ] 4 » RAS Async Adapter [Результат ЛОЖЬ] 5 » network traffic on WAN Miniport [Результат ЛОЖЬ] 6 » Сетевой адаптер с отладкой ядра [Результат ЛОЖЬ] 7 » Туннельный адаптер Microsoft Teredo [Результат ЛОЖЬ] 8 » Мини-порт глобальной сети [Результат ЛОЖЬ] 9 » Kaspersky Lab NDIS [Результат ЛОЖЬ] 10 » Microsoft Kernel Debug Network Adapter [Результат ЛОЖЬ] 11 » WFP 802.3 MAC Layer LightWeight Filter [Результат ЛОЖЬ] 12 » WFP Native MAC Layer LightWeight Filter [Результат ЛОЖЬ] 13 » QoS Packet Scheduler [Результат ЛОЖЬ] 14 » ^Software Loopback Interface [Результат ЛОЖЬ] 15 » ^lo$ [Результат ЛОЖЬ]
После изменения регулярного выражения, необходимо подождать время заданное в «Update interval (in sec)». Успешно примененное правило, удаляет «ненужные интерфейсы» через «Keep lost resources period (in days)».
При этом в «Host Items» можно увидеть следующую картину.
Мониторим всё: расширение агентов Windows и Linux при помощи скриптов
Если нам нужно мониторить состояние серверов и прочих компьютеризированных рабочих мест при помощи Zabbix, то это можно сделать двумя способами.
Первый способ — это при помощи SNMP-запросов, с отправкой которых Zabbix замечательно справляется. Так можно вытащить и загрузку сетевых интерфейсов, и загрузку процессора, памяти. Поверх этого, производители сервера могут выдать нам по SNMP еще много информации о состоянии железа.
Второй заключается в использовании Zabbix агента, который мы будем запускать на наблюдаемой системе. Список наблюдаемых параметров включает в себя как и такие простые вещи, как загрузка процессора, использование памяти, так и более хитрые, такие как чтение текстовых лог-файлов с поддержкой ротации или отслеживание факта изменения любого файла. Можно даже в качестве параметра использовать вывод любой произвольной команды на системе. Возможности Zabbix агента растут от версии к версии.
Что делать, если того, что мы хотим контролировать через Zabbix нет в списке возможностей Zabbix агента? Ждать пока это имплементируют разработчики в следующем релизе? Не обязательно.
Нам оставили несколько стандартных интерфейсов для того, чтобы расширить возможности Заббикса по мониторингу серверов настолько, насколько позволит нам наша фантазия и наличие свободного времени на написание скриптов. Интерфейсы эти UserParameter и zabbix_sender. О первом и пойдет речь, а в качестве примеров будет показано как можно собирать состояние S.M.A.R.T жестких дисков и контролировать, когда кто-то удаляет или устанавливает новые программы на своей Windows-машине.
Немного матчасти
Если вы уже хоть раз настраивали Zabbix агент на сервере, то начать использовать UserParameter не составит труда. Чтобы добавить новый параметр нужно сделать несколько вещей:
- Добавить в конце конфигурационного файла zabbix_agentd.conf строчку вида
где:
— уникальное имя, которое мы придумываем сами. Будем его использовать при настройке элемента данных в Zabbix.
— команда, которую нужно выполнить на наблюдаемом узле сети.
А вот сразу очень простой пример, который лежит в каждом стандартном конфиге для Linux:
Итак, ключ здесь system.test, а выполняем команду who | wc -l, которая возвращает нам количество открытых сессий в системе. Добавляем (или раскомментируем данную строчку если уже есть), идем дальше.
- В Веб-консоли Zabbix создать новый элемент данных с ключом, который мы использовали, если брать пример выше, то это system.test.
Для этого нажимаем «Создать элемент данных»
и затем выставляем ключ такой же, как указали в конфиг-файле, а тип Zabbix агент:
- Перезагрузить Zabbix агента, чтобы изменения в конфиг-файле вступили в силу
Наблюдаем результат в последних данных:
Мониторинг SMART через UserParameter
Пример выше имеет мало практического применения, учитывая, что уже итак существует стандартный ключ system.users.num, который делает ровно тоже самое.
Так что теперь рассмотрим пример, который уже больше будет походить на реалистичный.
Если нам интересно мониторить момент, когда пора планово менять жесткие диски, то есть два варианта:
- Если диски за аппаратным RAID-контроллером, то, как правило, сами диски операционная система «не видит». Поэтому ищем способы как вытащить информацию о состоянии жестких дисков через утилиты или SNMP-сабагента, которые нам любезно предоставил(или не предоставил) производитель RAID-контроллера. Для каждой отдельной серии контроллеров свой путь до этой информации.
- Если речь идет о просто рабочих станциях, серверах с софтовом RAID и т.д., то тогда к дискам есть доступ из операционной системы, и мы вольны использовать различные утилиты для чтения их статуса. В случае Zabbix нам подходит утилита smartctl, из пакета SMARTMONTOOLS.
В Debian установка SMARTMONTOOLS сводится к:
и утилита готова к использованию.
Для каждого диска, который есть в системе сначала проверим, что SMART включен:
если вдруг SMART поддерживается диском, но выключен, то активируем его:
Теперь мы можем проверять статус SMART командой:
Именно эту команду мы и запишем в наш zabbix_agentd.conf:
где uHDD.health — ключ.
Мониторинг SMART через Flexible UserParameter
Тут возникает резонный вопрос, как быть если дисков два. Легче всего решить эту проблему поможет способность UserParameter передавать параметры агенту, про которую мы еще не упоминали. Но делается все очень просто, сразу пример:
В веб-интерфейсе Zabbix в ключе мы будем подставлять параметры в квадратные скобки вместо *. Например, для одного элемента данных мы напишем sda, а для другого sdb. В команде этот параметр найдет отражение там, где стоит переменная $1.
Создадим для второго диска элемент данных:
И через некоторое время сможем наблюдать результат в последних данных:
Мониторинг SMART через Flexible UserParameter c Low-level Discovery
Все получилось. Но тут возникает резонный вопрос, как быть если дисков не два, а двадцать два. И тут нам пригодится замечательная возможность низкоуровнего обнаружения (LLD), про которую мы уже говорили.
Низкоуровневое обнаружение позволяет системе мониторинга обнаруживать какое количество однотипных элементов присутствует на узле сети и динамически по шаблону создавать необходимые элементы данных, триггеры и графики для этих элементов. «Из коробки» системе доступна возможность находить файловые системы, сетевые интерфейсы и SNMP OID’ы. Однако, и здесь разработчики оставили возможность дополнить стандартные возможности, нужно просто передать в систему информацию о том, какие элементы обнаружены в формате JSON. Этим и воспользуемся.
Создадим маленький скрипт на perl, smartctl-disks-discovery.pl. Он будет находить все диски в системе и выводить эту информацию в JSON, передавая также информацию, включен ли у диска SMART или нет, а также попытается сам включить SMART, если он выключен:
При запуске скрипт выдает:
Теперь, для того чтобы скрипт автоматически запускался Zabbix’ом, просто добавим еще один UserParameter в zabbix_agentd.conf:
Покончив с настройкой конфига, переходим в веб-интерфейс, где создаем новое правило обнаружения для smartctl:
Обратите внимание на ключ и на фильтр, (<#SMART_ENABLED>=1) благодаря последнему будут добавляться только те обнаруженные диски, которые поддерживают SMART. Теперь мы можем переписать два наших элемента данных для дисков sda и sdb в один прототип элементов данных, просто заменив имя диска на макрос <#DISKNAME>:
Последнее, перед тем, как Zabbix сможет запускать команды, которые мы прописали в zabbix_agentd.conf из-под root и мониторить SMART, нужно добавить разрешения для его пользователя запускать эту команду без ввода пароля, для этого добавим в /etc/sudoers строчку:
Готовый шаблон для мониторинга SMART с остальными элементами данных, триггерами прикладываю, так же как и настроенный под него конфиг.
Контроль за установкой новых программ на Windows
Zabbix агент, установленный на Windows, точно также может быть расширен через UserParameter, только команды будут уже другие. Хотя, например, smartctl — кроссплатформенная утилита, и точно также можно ее использовать для контроля за жесткими дисками в Windows.
Кратко рассмотрим еще другой пример. Задача получать уведомление каждый раз, когда пользователь самостоятельно удаляет или устанавливает программы.
Для этого будем использовать наш vbs-скрипт:
Для его интеграции с Zabbix добавим UserParameter в конфиг-файл:
Добавим элемент данных в шаблон для Windows:
Добавим триггер:
и действие, которое будет отправлять e-mail уведомление:
Весь процесс мониторинга выглядит так: каждый час запускается скрипт Zabbix агентом, который сравнивает два списка программ: текущий и предыдущий. Затем скрипт выписывает все изменения в отдельный файл. Если же изменений нет, то в файл пишется 0x0
Содержимое файла уходит на Zabbix сервер, где поднимается триггер в случае, если значение элемента данных uDiffProgramms отлично от 0x0. Затем отдельное действие отправляет по почте уведомление со списком того, что было установлено или удалено на данном компьютере:
В итоге
UserParameter — отличная и простая возможность расширить функционал системы самостоятельно. Стоит упомянуть и альтернативы: zabbix_sender, который, например, подойдет для тех случаев, когда нужно отправлять данные в Zabbix не по расписанию, (как это делает UserParameter), а по какому-то событию; и system.run[], который похож на UserParameter, но удобнее тем, что не нужно вносить изменения во все конфиги агентов, достаточно просто добавить этот элемент данных в шаблон. Более того, в следующем крупном релизе Zabbix 2.2 нас ожидает еще один новый способ расширить возможности агента- это подключаемые модули. Ждем с нетерпением!
Вот так, считайте, что если вы можете узнать что-то о системе скриптом или командой, значит, вы всегда можете передать это в Zabbix.