This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
zabbix._мониторинг_it_инфраструктуры_предприятия [2022/06/02 15:41] val [Лабораторные работы: Настройка уведомлений о событиях] |
zabbix._мониторинг_it_инфраструктуры_предприятия [2024/12/22 09:32] (current) val [Лабораторные работы: Развертывание объектов мониторинга] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Zabbix. Мониторинг IT инфраструктуры предприятия ====== | ====== Zabbix. Мониторинг IT инфраструктуры предприятия ====== | ||
- | ===== Ссылка на вебинар ===== | + | ===== Цель обновления ===== |
+ | - Оптимизировать программу | ||
+ | - Мониторинг Linux/Windows рабочих станций | ||
+ | ===== Ссылка на вебинар ===== | ||
===== Программа курса ===== | ===== Программа курса ===== | ||
Line 9: | Line 12: | ||
* Узнать свой номер стенда | * Узнать свой номер стенда | ||
- | * Удалить виртуалки (сделано) | + | |
- | * Удалить профили putty (сделано) | + | |
- | * Отключить не используемые адаптеры (сделано) | + | |
- | * Настроить VirtualBox Host-Only Ethernet Adapter на адрес 192.168.X.5/255.255.255.0 (будет сделано) | + | |
- | * Записать логин пароль и IP (сообщить преподавателю) рабочей станции (сделано) | + | |
- | * Проверить наличие дистрибутивов и образов (будет сделано) | + | |
===== Модуль 1: Развертывание IT инфраструктуры предприятия ===== | ===== Модуль 1: Развертывание IT инфраструктуры предприятия ===== | ||
Line 38: | Line 37: | ||
λ cd | λ cd | ||
- | λ test -d conf && rm -r conf | + | λ test -d conf && rm -rf conf |
λ git clone http://val.bmstu.ru/unix/conf.git | λ git clone http://val.bmstu.ru/unix/conf.git | ||
Line 44: | Line 43: | ||
λ cd conf/virtualbox/ | λ cd conf/virtualbox/ | ||
- | λ ./setup.sh X | + | !!! 5 - это номер курса, вместо X укажите Ваш номер стенда, если не помните, спросите преподавателя !!! |
+ | |||
+ | λ ./setup.sh X 5 | ||
</code> | </code> | ||
Line 89: | Line 90: | ||
</code> | </code> | ||
- | * Импорт и запуск системы client1 | + | * Импорт и запуск систем Linux client1 ([[Настройка сети в Linux#Динамическая настройка параметров]]) и Windows client2 |
===== Модуль 2: Установка компонентов Zabbix ===== | ===== Модуль 2: Установка компонентов Zabbix ===== | ||
Line 101: | Line 102: | ||
==== Лабораторные работы: Развертывание компонентов Zabbix ==== | ==== Лабораторные работы: Развертывание компонентов Zabbix ==== | ||
- | <code> | + | * [[Переменные окружения#Установка переменных окружения]] http_proxy |
- | server# cat .bashrc | + | |
- | ... | + | |
- | export http_proxy=http://proxy:3128/ | + | |
- | ... | + | |
- | </code> | + | |
- | * [[Сервис Zabbix#Установка и запуск сервера]] на server | + | * [[Выбор дистрибутива Linux]] или его определение |
- | * [[Сервис Zabbix#Установка и запуск web интерфейса]] (zabbix-frontend) на server | + | * [[Сервис MySQL]] |
+ | |||
+ | * [[https://www.zabbix.com/download|Download and install Zabbix]] | ||
* Подключение к frontend для [[Сервис Zabbix#Настройка мониторинга]] | * Подключение к frontend для [[Сервис Zabbix#Настройка мониторинга]] | ||
+ | |||
* [[Сервис Zabbix#Мониторинг с использованием Zabbix agents]] (выполнить в модуле 4) | * [[Сервис Zabbix#Мониторинг с использованием Zabbix agents]] (выполнить в модуле 4) | ||
Line 116: | Line 115: | ||
==== Вопросы ==== | ==== Вопросы ==== | ||
- | - Какие версии Zabbix рекомендуются к использованию? | + | - Какие СУБД используются для хранения данных в Zabbix? |
- | - Для каких задач используется Zabbix? | + | - Какая версия Zabbix поддерживается в течении долгого времени? |
- | - Перечислите компоненты системы Zabbix. | + | - Какой веб сервер может использоваться для работы Zabbix Frontend? |
+ | - Для каких задач используется Zabbix Frontend? | ||
+ | - Для каких задач используется Zabbix Server? | ||
+ | - Что содержит пакет zabbix-sql-scripts? | ||
+ | - На каком языке программирования написан Zabbix Frontend? | ||
+ | - На каком языке программирования написан Zabbix Server? | ||
===== Модуль 3: Базовые сущности Zabbix ===== | ===== Модуль 3: Базовые сущности Zabbix ===== | ||
Line 155: | Line 159: | ||
</code> | </code> | ||
- | * Удаляем узел "Zabbix server" и создаем новый server.corpX.un с адресом 127.0.0.1 и любым интерфейсом | + | * Удаляем узел (можно оставить, для сравнения с конечным результатом в конце курса) "Zabbix server" и создаем новый server.corpX.un с адресом 127.0.0.1 и любым интерфейсом |
* Преподаватель демонстрирует возможность сгруппировать простые проверки внешних систем в общем узле на примере [[Сервис Zabbix#Простые проверки]] доступности системы gate.isp.un и сервиса RDP на admin/host windows через server.corpX.un | * Преподаватель демонстрирует возможность сгруппировать простые проверки внешних систем в общем узле на примере [[Сервис Zabbix#Простые проверки]] доступности системы gate.isp.un и сервиса RDP на admin/host windows через server.corpX.un | ||
=== 3.2 Web сценарии === | === 3.2 Web сценарии === | ||
- | Методически, лучше утром следующего дня | + | * Используя [[Сервис Ansible]] разворачиваем почтовый сервер |
- | + | ||
- | * Преподаватель используя [[Сервис Ansible]] устанавливает на все стенды почтовый сервис и демонстрирует возможности Zabbix по мониторингу [[Сервис Zabbix#Web сценарии]] !!! Не забыть добавить триггер | + | |
<code> | <code> | ||
+ | server# apt install ansible | ||
+ | |||
server# ansible-playbook conf/ansible/roles/mail.yml | server# ansible-playbook conf/ansible/roles/mail.yml | ||
</code> | </code> | ||
+ | |||
+ | * [[https://youtu.be/yy1T2bDMy54|Вебинар: Zabbix - мониторинг Web приложений]] | ||
=== 3.3 Триггеры в Zabbix === | === 3.3 Триггеры в Zabbix === | ||
* Преподаватель демонстрирует [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности gate.isp.un и rdp сервиса | * Преподаватель демонстрирует [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности gate.isp.un и rdp сервиса | ||
- | * [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности ya.ru | + | * [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности ya.ru (обсудить использование встроенных макросов в именах триггеров и вернуться к этому вопросу в модуле 4 при клонировании ya.ru в val.bmstu.ru |
- | * Преподаватель демонстрирует возможность настроить зависимость триггеров на примере недоступности gate.isp.un/ya.ru, обсудить использование встроенных макросов в именах триггеров в модуле 4 при клонировании ya.ru в val.bmstu.ru | + | |
* Эмуляция сбоя | * Эмуляция сбоя | ||
Line 180: | Line 184: | ||
* Отчет о проблемах | * Отчет о проблемах | ||
+ | |||
<code> | <code> | ||
Monitoring->Triggers | Monitoring->Triggers | ||
Line 185: | Line 190: | ||
Monitoring->Problems | Monitoring->Problems | ||
</code> | </code> | ||
+ | |||
+ | * Преподаватель демонстрирует возможность настроить зависимость триггеров на примере недоступности gate.isp.un/ya.ru | ||
<code> | <code> | ||
Line 191: | Line 198: | ||
* Обсуждение [[Сервис Zabbix#Пример триггера основанного на значении элемента в течении периода]], уведомляющего о ухудшении качества доступа ([[Сервис QOS]]) в Интернет на основании повышения среднего времени ответа за период | * Обсуждение [[Сервис Zabbix#Пример триггера основанного на значении элемента в течении периода]], уведомляющего о ухудшении качества доступа ([[Сервис QOS]]) в Интернет на основании повышения среднего времени ответа за период | ||
- | * Переподаватель демонcтрирует триггер [[Сервис Zabbix#Пример в веб сценарии]] | ||
- | === 3.4 Графики в Zabbix === | ||
- | |||
- | * [[Сервис Zabbix#Пользовательские графики]] (Рассмотрим в 11-м модуле) | ||
==== Вопросы ==== | ==== Вопросы ==== | ||
- | - Верно ли, что система Zabbix позволяет осуществлять мониторинг только тех систем, на которых установлен агент? | + | - Для чего используются объекты Hosts в Zabbix? |
- | - Перечислите, какие интерфейсы может использовать Zabbix для мониторинга? | + | - Для чего используются объекты Items в Zabbix? |
+ | - Для чего используются объекты Triggers в Zabbix? | ||
+ | - Какие атрибуты помечены как обязательные при создании Host в Zabbix? | ||
+ | - Какие интерфейсы для взаимодействия с узлами поддерживает Zabbix? | ||
+ | - Перечислите обязательные атрибуты Items в Zabbix? | ||
- Есть ли возможность осуществлять мониторинг системы, не имеющей поддерживаемых Zabbix интерфейсов? | - Есть ли возможность осуществлять мониторинг системы, не имеющей поддерживаемых Zabbix интерфейсов? | ||
- | - Что следует использовать в именах триггеров? | + | - Какого типа Items используется для проверок ICMP Echo |
- | - Как можно уменьшить количество сообщений системы мониторинга в случае сбоев больших коммутационных узлов? | + | - Откуда берется адрес целевой системы, если он не указан явно в элементе типа Simple Check? |
- | - Для чего нужны пользовательские графики? | + | - Какие значения хранятся в Трендах? |
+ | - За какой период рассчитываются значения Трендов? | ||
+ | - Какие атрибуты помечены как обязательные при создании Trigger в Zabbix? | ||
+ | - Что следует использовать для уменьшения количества сообщений системы мониторинга в случае сбоев больших коммутационных узлов? | ||
- Какие возможности, по сравнению с net.tcp.service.perf[http] предоставляют Web сценарии? | - Какие возможности, по сравнению с net.tcp.service.perf[http] предоставляют Web сценарии? | ||
+ | - Где описываются Items в Web сценарии? | ||
- Можно ли мониторить работоспособность неуправляемого коммутатора? | - Можно ли мониторить работоспособность неуправляемого коммутатора? | ||
Line 222: | Line 233: | ||
* Создать узел val.bmstu.ru через Full Clone узла ya.ru (обратить внимание на использование {HOST.NAME} в именах триггеров) | * Создать узел val.bmstu.ru через Full Clone узла ya.ru (обратить внимание на использование {HOST.NAME} в именах триггеров) | ||
- | === 4.2 Использование готовых шаблонов === | + | === 4.2 Использование zabbix agent для сбора метрик === |
* Установка zabbix agent на gate ([[Сервис Zabbix#Мониторинг с использованием Zabbix agents]]) | * Установка zabbix agent на gate ([[Сервис Zabbix#Мониторинг с использованием Zabbix agents]]) | ||
- | * Обзор шаблона "Template OS Linux by Zabbix agent"/"Linux by Zabbix agent" и "Template Module Zabbix agent"/"Zabbix agent" | ||
- | * Добавление узла gate.corpX.un в мониторинг и применение к нему шаблона "Template OS Linux by Zabbix agent"/"Linux by Zabbix agent" | ||
- | |||
- | * Преподаватель демонстрирует вариант безопасного подключения к агенту с использованием механизма PSK | ||
- | * [[Сервис Zabbix#Мониторинг с использованием Zabbix agents]] на server.corpX.un - комментируем или исправляем Hostname=server.corpX.un и добавляем к нему шаблон "Template OS Linux by Zabbix agent"/"Linux by Zabbix agent" | + | === 4.3 Использование готовых шаблонов === |
- | * Обзор шаблона "Template App Zabbix Server"/"Zabbix server health" и применение его к узлу server.corpX.un | + | * Обзор шаблона "Linux by Zabbix agent" (выяснить, куда делось наследование шаблонов и кто знает про agent.ping из "Zabbix agent") |
+ | * Добавление узла gate.corpX.un в мониторинг и применение к нему шаблона "Linux by Zabbix agent" | ||
+ | * Преподаватель демонстрирует вариант безопасного подключения к агенту с использованием механизма PSK (лучше в конце 7-го модуля) | ||
+ | * [[Сервис Zabbix#Мониторинг с использованием Zabbix agents]] на server.corpX.un - комментируем или исправляем Hostname=server.corpX.un и добавляем к нему шаблон "Linux by Zabbix agent" (лучше в конце курса, что бы было проще видеть свои items) | ||
+ | * Обзор шаблона "Zabbix server health" и применение его к узлу server.corpX.un (лучше в конце курса) | ||
- | === 4.3 Создание шаблона на основе существующего === | + | === 4.4 Создание шаблона на основе существующего === |
- | * [[Сервис Zabbix#Создание своих шаблонов]] на основе "Template App SSH Service"/"SSH Service" с добавлением макроса, определяющего порт сервиса | + | * [[Сервис Zabbix#Создание своих шаблонов]] на основе "SSH Service" с добавлением макроса, определяющего порт сервиса |
- | * Назначаем шаблон узлам gate.corpX.un и server.corpX.un(при желании) | + | * Назначаем шаблон узлу gate.corpX.un (и, при желании, server.corpX.un) |
* Переопределяем значение макроса {$SSH_PORT}, указав значение, например, 2222 для узла gate.corpX.un и ждем (рассчитать время) срабатывания триггера | * Переопределяем значение макроса {$SSH_PORT}, указав значение, например, 2222 для узла gate.corpX.un и ждем (рассчитать время) срабатывания триггера | ||
Line 248: | Line 259: | ||
==== Вопросы ==== | ==== Вопросы ==== | ||
+ | - Чем Clone объекта Host отличается от Full Clone? | ||
+ | - Для чего нужен Zabbix Agent? | ||
+ | - Какой командой можно получить список метрик (ключей), возвращаемых zabbix agent? | ||
+ | - Какой утилитой можно получить значения метрик (ключей) с zabbix agent | ||
+ | - Какая метрика (ключ) zabbix agent используется для отображения статуса узла? | ||
+ | - Перечислите варианты безопасного подключения между zabbix агентом и сервером? | ||
- Чем шаблоны лучше клонирования? | - Чем шаблоны лучше клонирования? | ||
- | - Что следует использовать в именах триггеров? | + | - Что следует использовать в именах триггеров при описании их в шаблонах или при клонировании узлов? |
- Что можно использовать в качестве переменных в выражениях элементов? | - Что можно использовать в качестве переменных в выражениях элементов? | ||
- Как работает переопределение и наследование макросов? | - Как работает переопределение и наследование макросов? | ||
- | - Какой синтаксис у макроса? | + | - Какой синтаксис у built-in макросов? |
+ | - Какой синтаксис у user-defined макросов? | ||
- Что произойдет с объектами узла, при изменении описывающего их шаблона? | - Что произойдет с объектами узла, при изменении описывающего их шаблона? | ||
- | - Можно ли поменять значение объекта узла, описанного шаблоном? | + | - Можно ли поменять параметры объекта узла, описанного шаблоном? |
- | - Как обеспечить безопасную связь между zabbix агентом и сервером? | + | - Если поменять параметры объекта узла, описанного шаблоном, а потом те же в шаблоне, какие значения будут в итоге? |
+ | - Если поменять параметры объекта на уровне шаблона, а потом на уровне узла, какие значения будут в итоге? | ||
===== Модуль 5: Управление учетными записями и уведомлениями ===== | ===== Модуль 5: Управление учетными записями и уведомлениями ===== | ||
Line 270: | Line 288: | ||
=== 5.1 Добавление учетных записей администраторов === | === 5.1 Добавление учетных записей администраторов === | ||
- | <code> | + | * Создать учетную запись с login/alias student/Pa$$w0rd#, Вашим ФИО и, с User role: [[https://www.zabbix.com/documentation/6.0/ru/manual/config/users_and_usergroups/permissions|"Zabbix Super Admin"]] |
- | server# apt install ansible | + | |
- | + | ||
- | server# ansible-playbook conf/ansible/roles/mail.yml | + | |
- | </code> | + | |
- | + | ||
- | * Создать учетную запись с login/alias student/password, Вашим ФИО и, с User type: [[https://www.zabbix.com/documentation/4.0/ru/manual/config/users_and_usergroups/permissions|"Zabbix Super Admin"]] | + | |
* Включить student в группу "Zabbix administrators" (см. следующий пункт) | * Включить student в группу "Zabbix administrators" (см. следующий пункт) | ||
=== 5.2 Настройка уведомлений о событиях === | === 5.2 Настройка уведомлений о событиях === | ||
- | * Можно создать группу "Don t disturb" и переместить в нее пользователя Admin, что бы Zabbix не отправлял ему сообщений | ||
* Продемонстрировать на преподавательском стенде звуковые уведомления в браузере (в настройках профиля) | * Продемонстрировать на преподавательском стенде звуковые уведомления в браузере (в настройках профиля) | ||
* [[Сервис Zabbix#Настройка уведомлений о событиях]] (Email, XMPP, PSTN) | * [[Сервис Zabbix#Настройка уведомлений о событиях]] (Email, XMPP, PSTN) | ||
Line 289: | Line 300: | ||
</code> | </code> | ||
+ | * Reports->Action log | ||
+ | * Можно создать группу "Don t disturb" и переместить в нее пользователя Admin, что бы Zabbix не пытался отправить ему сообщения | ||
* [[https://youtu.be/XYeVj1unjfc|Мастер класс: Zabbix Вам позвонит и расскажет...]] | * [[https://youtu.be/XYeVj1unjfc|Мастер класс: Zabbix Вам позвонит и расскажет...]] | ||
- | === 5.3 Добавление учетных записей службы поддержки === | + | === 5.3 Добавление учетных записей сотрудников службы поддержки === |
Задание на дом:) | Задание на дом:) | ||
* Создать группу "Zabbix responsible" | * Создать группу "Zabbix responsible" | ||
- | * Назначить группе "Zabbix responsible" права на чтение элементов групп Linux servers и External Hosts. Это нужно также для получение уведомлений о срабатывании триггеров этих элементов. | + | * Назначить группе "Zabbix responsible" права на чтение элементов групп Linux servers и/или External Hosts (!!! это нужно и для получение уведомлений о срабатывании триггеров этих узлов) |
- | * Создать учетную запись user1/password1 с User type: "Zabbix User" и включить его в группу "Zabbix responsible" | + | * Настроить Trigger Action "Zabbix responsible notification" для уведомлений пользователей группы "Zabbix responsible" |
- | * user1 должен иметь права на просмотр результатов мониторинга через Web интерфейс и должен получать уведомления по электронной почте. | + | * Создать учетную запись user1/Pa$$w0rd1 с Role: "User role" и включить его в группу "Zabbix responsible" |
+ | * user1 должен иметь права на просмотр результатов мониторинга через Web интерфейс и должен получать уведомления по электронной почте ([[Управление учетными записями в Linux#Добавление учетной записи]]). | ||
=== 5.4 Настройка публичного доступа к информации в Zabbix === | === 5.4 Настройка публичного доступа к информации в Zabbix === | ||
- | См. модуль 11 | + | * !!! Сделать в 11-м модуле |
+ | |||
+ | * Пользователя guest убрать из группы Disabled | ||
+ | * Настроить Read-only доступ к объекту (Например, к карте [[http://server/zabbix/zabbix.php?action=map.view&sysmapid=2]]) для группы Guests или сделать объект Public | ||
+ | * Предоставить группе Guests права на чтение элементов объектов мониторинга (сделать отдельную группу Public info и включить в нее узлы, элементы которых будут доступны публично) | ||
==== Вопросы ==== | ==== Вопросы ==== | ||
- | - Где можно посмотреть, какие уведомления были отправлены zabbix? | + | - Укажите все шаги, необходимые для оправки уведомлений пользователям Zabbix |
- | - Какие варианты отправки уведомлений имеются в zabbix? | + | - Роль Guest, User, Admin, SuperAdmin позволяет ... |
+ | - Как может быть использовано членство в группе Zabbix? | ||
+ | - Укажите все типы (Type) отправки уведомлений в Zabbix | ||
+ | - Для чего нужны права на группы узлов пользователям Zabbix? | ||
+ | - Где можно посмотреть, какие уведомления были отправлены Zabbix? | ||
+ | - Права какого пользователя используются в Zabbix при подключении к его интерфейсу без авторизации? | ||
===== Модуль 6: Внешние проверки и пользовательские параметры ===== | ===== Модуль 6: Внешние проверки и пользовательские параметры ===== | ||
Line 323: | Line 347: | ||
* [[Сервис Zabbix#Внешние проверки]] | * [[Сервис Zabbix#Внешние проверки]] | ||
- | * [[Сервис Zabbix#Пример простого скрипта]] [[Сервис speedtest]] | + | * [[Сервис Zabbix#Пример простого скрипта]] (на этапе добавления элемента тестируем с разным количеством итераций до появления Timeout) |
- | Недостаток технологии | + | Делаем все, но не запускаем))) |
- | * Время выполнения некоторых заданий, [[Сервис Zabbix#Пример скрипта, требующего повышения привилегий]], для отслеживания изменений nmap отпечатков систем, может превышать 30 секунд | + | * [[Сервис speedtest]] - пример задачи, требующей значительного времени выполнения |
+ | * Решение: [[Сервис Zabbix#Элементы типа trapper]] (ловушки :) | ||
- | Альтернативные решения | + | === 6.2 Варианты получения результатов из внешних программ/скриптов на удаленных узлах === |
- | * [[Сервис Zabbix#Элементы типа trapper]] [[Сервис speedtest]] | + | Демонстрирует преподаватель (сделаем качественнее в следующем модуле) |
- | + | ||
- | Обсудить решение задачи отслеживания изменений nmap отпечатков систем с использованием элемента типа traper | + | |
- | + | ||
- | * Добавление текстового [[Сервис Zabbix#Элементы типа trapper]] для хранения отпечатка | + | |
- | * Отслеживание изменения отпечатка через [[Сервис Zabbix#Пример с текстовым элементом]] для триггера | + | |
- | * Сравнение отпечатков в сообщениях путем [[Сервис Zabbix#Добавление информации о значении элемента в сообщение]] | + | |
- | + | ||
- | === 6.2 Варианты получения результатов из внешних программ/скриптов на удаленных узлах === | + | |
* [[Сервис DHCP#Статистика DHCP сервера]] | * [[Сервис DHCP#Статистика DHCP сервера]] | ||
* Обсудить [[Сервис Zabbix#Пример запуска скрипта на удаленной системе]] с использованием SSH | * Обсудить [[Сервис Zabbix#Пример запуска скрипта на удаленной системе]] с использованием SSH | ||
* [[Сервис Zabbix#Использование UserParameter]] в zabbix-agent для получения результатов из внешних приложений, на примере мониторинга количества выданных ip сервисом DHCP | * [[Сервис Zabbix#Использование UserParameter]] в zabbix-agent для получения результатов из внешних приложений, на примере мониторинга количества выданных ip сервисом DHCP | ||
- | * [[Сервис DHCP#Поиск посторонних DHCP серверов]] | + | * Используем [[Сервис DHCP#Поиск посторонних DHCP серверов]] для проверки |
- | * Обсудить использование [[Сервис Zabbix#Вычисляемые элементы]] для учета процента выданных адресов | + | |
- | * Обсудить необходимость вычисляемых элементов для добавления к узлу gate графика процента выданных адресов | + | |
- | * Обсудить необходимость вычисляемых элементов дла настройки триггера, срабатывающего при достижении 80-ти процентов | + | |
==== Вопросы ==== | ==== Вопросы ==== | ||
- | - Какое ограничение накладывает zabbix на выполнение внешних скриптов? | + | - Какое ограничение накладывает Zabbix server на выполнение внешних скриптов? |
- | - Какие варианты имеются для запуска скриптов на удаленных системах из zabbix? | + | - Какое ограничение накладывает Zabbix agent на выполнение внешних скриптов? |
- | - Как можно передать в zabbix результаты, получаемые в течении длительного времени? | + | - Какой синтаксис UserParameter позволяет указать произвольное число аргументов? |
- | + | - На что влияет UnsafeUserParameters? | |
- | + | - Какие варианты имеются для запуска скриптов на удаленных системах из Zabbix? | |
+ | - Как можно передать в Zabbix результаты, получаемые в течении длительного времени? | ||
===== Модуль 7: Низкоуровневое обнаружение (LLD) ===== | ===== Модуль 7: Низкоуровневое обнаружение (LLD) ===== | ||
Line 374: | Line 390: | ||
* [[Сервис Zabbix#Low-Level Discovery (LLD)]] | * [[Сервис Zabbix#Low-Level Discovery (LLD)]] | ||
<code> | <code> | ||
- | Configuration->Hosts->...->Items | + | Configuration->Hosts->gate.corpX.un |
- | ->Triggers | + | ->Discovery rules |
- | ->Graphs | + | ->Block devices discovery: ... |
- | ->Discovery rules | + | ->Mounted filesystem discovery: ... |
- | ->Mounted filesystem discovery: ... | + | ->Network interface discovery: ... |
- | ->Network interface discovery: ... | + | |
</code> | </code> | ||
Фильтрация элементов | Фильтрация элементов | ||
- | Zabbix 4 | + | Zabbix <= 4 |
<code> | <code> | ||
Administration->General->Regular expressions | Administration->General->Regular expressions | ||
</code> | </code> | ||
- | Zabbix 5 - унаследованные макросы | + | Zabbix >= 5 - унаследованные макросы ({$VFS.FS.FSTYPE.MATCHES}, например) |
=== 7.2 Использование LLD для учета статистики выданных адресов по DHCP в множестве подсетей === | === 7.2 Использование LLD для учета статистики выданных адресов по DHCP в множестве подсетей === | ||
Line 411: | Line 426: | ||
* Разработки шаблона, использующего LLD для учета [[Сервис Zabbix#Статистика DHCP сервера]] в множестве подсетей | * Разработки шаблона, использующего LLD для учета [[Сервис Zabbix#Статистика DHCP сервера]] в множестве подсетей | ||
+ | * Экспорт шаблона ([[Сервис Zabbix#Экспорт/импорт в XML]]), размещение его и всего необходимого в, например, [[Сервис Git#github.com]] | ||
- | * Экспорт шаблона ([[Сервис Zabbix#Экспорт/импорт в XML]]), размещение его и дополнительных материалов в Интернет с использованием [[Сервис Git]] | + | * Импорт инструкции и всего необходимого для развертывания |
- | + | ||
- | + | ||
- | + | ||
- | * Импорт инструкции по развертыванию и дополнительных материалов | + | |
<code> | <code> | ||
Line 424: | Line 436: | ||
gate# ./install.sh | gate# ./install.sh | ||
+ | |||
+ | |||
+ | server# apt install jq | ||
server# zabbix_get -s gate -k dhcp.pools.discovery | jq | server# zabbix_get -s gate -k dhcp.pools.discovery | jq | ||
Line 433: | Line 448: | ||
==== Вопросы ==== | ==== Вопросы ==== | ||
+ | - В каком формате должен возвращать данные элемент discovery? | ||
+ | - Какой синтаксис у low-level discovery макросов? | ||
+ | - Перечислите форматы, используемые для импорта/экспорта объектов Zabbix? | ||
- Придумайте свои варианты задач, при которых может понадобиться LLD. | - Придумайте свои варианты задач, при которых может понадобиться LLD. | ||
- Как можно отфильтровать только нужные элементы в процессе discovery? | - Как можно отфильтровать только нужные элементы в процессе discovery? | ||
Line 445: | Line 463: | ||
* [[https://www.zabbix.com/documentation/4.0/ru/manual/appendix/items/activepassive|Zabbix Documentation - Пассивные и активные проверки агента]] | * [[https://www.zabbix.com/documentation/4.0/ru/manual/appendix/items/activepassive|Zabbix Documentation - Пассивные и активные проверки агента]] | ||
* [[https://www.zabbix.com/documentation/4.0/ru/manual/discovery/auto_registration|Авторегистрация активных агентов]] | * [[https://www.zabbix.com/documentation/4.0/ru/manual/discovery/auto_registration|Авторегистрация активных агентов]] | ||
- | ==== Лабораторные работы: Мониторинг систем с динамическими адресами ==== | + | ==== Лабораторные работы: Мониторинг и инвентаризация систем с динамическими адресами ==== |
- | === 8.1 Настройка инвентаризации === | + | === 8.1 Установка агента на Windows client === |
- | * Настройка автоматического сбора инвентарных данных для систем gate и server !!!Работает с задержкой!!! | + | * Потребуется [[Chrome]] для [[Сервис Zabbix#Установка агента в Windows]] |
- | * На уровне шаблона Template Module Linux generic by Zabbix agent настроить использование элемента "Software installed/system.sw.packages" для инвентарного поля "Software (Full details)" | + | |
- | === 8.2 Установка агента на Windows client === | + | * Для редактирования конфигурации потребуется установить [[https://val.bmstu.ru/unix/npp.6.4.2.Installer.exe|nodepad++]], запустить сразу после инсталляции (будет/нужен с правами Администратора) и открыть файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf |
- | * [[Сервис Zabbix#Установка агента в Windows]] | + | === 8.2 Установка агента на Linux client === |
+ | * [[Инсталяция системы в конфигурации Desktop]] (для вывода списка Desktop ПО, без thunderbird) | ||
+ | * [[Сервис Zabbix#Мониторинг с использованием Zabbix agents]], можно через [[Сервис Ansible]] | ||
- | Демонстрирует преподаватель | + | === 8.3 Проблемы мониторинга рабочих станций Linux и Window === |
- | + | ||
- | * Временно отключить windows firewall и проверить связь с агентом | + | |
- | <code> | + | |
- | server# zabbix_get -s 192.168.X.1NN -p 10050 -k agent.version | + | |
- | </code> | + | |
- | + | ||
- | Делаем все | + | |
- | + | ||
- | * Открыть в [[http://val.bmstu.ru/unix/npp.6.4.2.Installer.exe|nodepad++]], запущенном с правами Администратора, файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf | + | |
- | * [[Сервис Zabbix#Использование UserParameter]] для инвентаризации установленного ПО | + | |
- | + | ||
- | Преподаватель демонстрирует как выглядит список ПО | + | |
- | <code> | + | |
- | server# zabbix_get -s 192.168.X.1NN -p 10050 -k listinstalledsoft | + | |
- | </code> | + | |
- | + | ||
- | === 8.3 Проблемы мониторинга windows систем с динамическими адресами === | + | |
- | + | ||
- | * Преподаватель включает firewall обрано, и, не хотим настраивать исключения. | + | |
+ | * Windows firewall, не хотим настраивать исключения. | ||
* Может измениться IP адрес (для демонстрации можно сменить mac адрес) | * Может измениться IP адрес (для демонстрации можно сменить mac адрес) | ||
- | |||
* LLD использует имя системы, и, если его нет в DNS - не работает, согласно записям в журнале: | * LLD использует имя системы, и, если его нет в DNS - не работает, согласно записям в журнале: | ||
<code> | <code> | ||
Line 490: | Line 490: | ||
=== 8.4 Использование активного режима агента === | === 8.4 Использование активного режима агента === | ||
- | * Для Zabbix 4 - Клонирование шаблона "Template OS Windows by Zabbix agent" и подготовка его для агентов, работающих в активном режиме | + | * [[https://support.zabbix.com/browse/ZBXNEXT-5088|Set Agent icon color to green on getting "active" data]] |
+ | * Создаем Host группы Linux clients и Windows clients | ||
* [[Сервис Zabbix#Настройка авторегистрации систем с агентами, работающими в активном режиме]] | * [[Сервис Zabbix#Настройка авторегистрации систем с агентами, работающими в активном режиме]] | ||
* [[Сервис Zabbix#Настройка агента на активный режим]] | * [[Сервис Zabbix#Настройка агента на активный режим]] | ||
+ | |||
+ | === 8.5 Получение списка ПО на Linux и Windows === | ||
+ | |||
+ | * Демонстрирует преподаватель [[Сервис Zabbix#Использование UserParameter]] | ||
+ | <code> | ||
+ | server# zabbix_get -s 192.168.X.1NN -p 10050 -k listinstalledsoft | ||
+ | </code> | ||
+ | |||
+ | === 8.6 Настройка инвентаризации === | ||
* Разработка шаблона "Template OS Windows list installed soft Active" с элементом listinstalledsoft, заполняющим инвентарное поле "Software (Full details)" и триггером, информирующем об изменении состава установленного ПО, используя [[Сервис Zabbix#Пример с текстовым элементом]] | * Разработка шаблона "Template OS Windows list installed soft Active" с элементом listinstalledsoft, заполняющим инвентарное поле "Software (Full details)" и триггером, информирующем об изменении состава установленного ПО, используя [[Сервис Zabbix#Пример с текстовым элементом]] | ||
- | * Оба шаблона для Zabbix 4: [[https://val.bmstu.ru/unix/conf.git/conf/zabbix/Template_Windows_Agent_Soft_Active.xml]] | + | <code> |
- | * Шаблон для Zabbix 5: conf/zabbix/zabbix/Template_OS_Windows_list_installed_soft_Active_5.xml | + | conf/zabbix/zabbix/Template_OS_Windows_list_installed_soft_Active_5.xml |
+ | </code> | ||
+ | (!!! не смотря на название, подходит для Linux :) | ||
* Сравнение списков ПО с помощью [[Сервис Zabbix#Добавление информации о значении элемента в сообщение]] | * Сравнение списков ПО с помощью [[Сервис Zabbix#Добавление информации о значении элемента в сообщение]] | ||
- | * Домашнее задание - отключить уведомления о включении/выключении (...just been restarted..., Zabbix agent on ... is unreachable...) клиентских компьютеров | + | * На уровне шаблона Linux by Zabbix agent (+ windows + active) настроить Total memory -> Populates host inventory field: Hardware |
==== Вопросы ==== | ==== Вопросы ==== | ||
- | - Чем отличается активный режим от пассивного в zabbix агенте? | + | - Чем отличается активный режим от пассивного в Zabbix агенте? |
- | - Придумайте варианты конфигураций сети, при которых необходимо использовать активный режим агента zabbix. | + | - Что означают директивы Server, ServerActive, StartAgents в конфигурации Zabbix агента? |
+ | - Перечислите обязательные действия при авто регистрации узлов? | ||
+ | - Как отличить рабочие станции Linux от Windows при авто регистрации? | ||
+ | - Придумайте варианты конфигураций сети, при которых необходимо использовать активный режим агента Zabbix | ||
===== Модуль 9: Мониторинг систем по протоколу SNMP ===== | ===== Модуль 9: Мониторинг систем по протоколу SNMP ===== | ||
Line 547: | Line 562: | ||
=== 9.2 Настройка интерфейса SNMP в системах === | === 9.2 Настройка интерфейса SNMP в системах === | ||
- | * Обсуждение на примере [[Communigate Pro#Использование интерфейса SMNP для мониторинга]] Communigate Pro | + | * Обсуждение на примере [[Communigate Pro#Использование интерфейса SNMP для мониторинга]] Communigate Pro |
=== 9.3 Настройка мониторинга систем по протоколу SNMP в zabbix === | === 9.3 Настройка мониторинга систем по протоколу SNMP в zabbix === | ||
- | * [[Сервис SNMP#Установка пакета net-snmp]] на server | + | * [[Сервис SNMP#Установка пакета net-snmp]] на client2 для знакомства с [[Сервис SNMP#Варианты использования snmp консоли в режиме чтения]] |
- | * [[Сервис SNMP#Варианты использования snmp консоли в режиме чтения]] на server | + | |
Демонстрирует преподаватель (для ускорения демонстрации уменьшить интервалы времени до 1 минуты) | Демонстрирует преподаватель (для ускорения демонстрации уменьшить интервалы времени до 1 минуты) | ||
Line 560: | Line 574: | ||
=== 9.4 Автоматический поиск и добавление устройств в Zabbix === | === 9.4 Автоматический поиск и добавление устройств в Zabbix === | ||
- | * Удалить все routerN.isp.un из Zabbix | + | * Преподаватель удаляет router1.isp.un из Zabbix |
* [[Сервис Zabbix#Автоматическое добавление]] | * [[Сервис Zabbix#Автоматическое добавление]] | ||
* Обсудить Preprocessing для элементов Interface Fa0/0(): Bits sent | * Обсудить Preprocessing для элементов Interface Fa0/0(): Bits sent | ||
- | === 9.5 Использование Zabbix proxy для преодоления проблем с доступом к объектам мониторинга === | + | === 9.5 Использование Zabbix proxy для решения проблем с доступом к объектам мониторинга === |
!!!Работает с задержкой!!! | !!!Работает с задержкой!!! | ||
Line 574: | Line 588: | ||
</code> | </code> | ||
- | * [[Сервис SNMP#Установка пакета net-snmp]] на gate | ||
- | * [[Сервис SNMP#Варианты использования snmp консоли в режиме чтения]] на gate | ||
* [[Сервис Zabbix#Установка и запуск proxy]] на gate | * [[Сервис Zabbix#Установка и запуск proxy]] на gate | ||
+ | * [[Сервис Zabbix#Добавление proxy в zabbix server]] | ||
==== Вопросы ==== | ==== Вопросы ==== | ||
- | - Что необходимо установить в систему с zabbix для мониторинга оборудования по протоколу SNMP? | + | - Что необходимо добавить в систему с Zabbix Server или Proxy для мониторинга оборудования по протоколу SNMP с использованием имен OID в текстовом формате? |
- В чем отличие процесса автоматического добавления оборудования в этой лабораторной работе от варианта с активным агентом? | - В чем отличие процесса автоматического добавления оборудования в этой лабораторной работе от варианта с активным агентом? | ||
- | - Как формируется имя хоста в случае Discovery в версиях zabbix до и после 4.2? | + | - Для каких задач используется Zabbix Proxy? |
+ | - В каком режиме работает Zabbix Proxy по умолчанию? | ||
- Придумайте свои варианты задач, при которых может понадобиться Zabbix Proxy | - Придумайте свои варианты задач, при которых может понадобиться Zabbix Proxy | ||
+ | |||
===== Модуль 10: Zabbix API ===== | ===== Модуль 10: Zabbix API ===== | ||
Line 603: | Line 618: | ||
* [[Сервис Zabbix#Работа с объектами host/template]] | * [[Сервис Zabbix#Работа с объектами host/template]] | ||
* [[Сервис Zabbix#Доступ к результатам мониторинга]] | * [[Сервис Zabbix#Доступ к результатам мониторинга]] | ||
- | * [[Сервис Zabbix#Оформление запросов в виде BASH скриптов]] | ||
- | === 10.3 Пример практического использования технологии === | + | === 10.3 Пример изменения конфигурации объектов мониторинга через Zabbix API === |
- | * Задача 1: [[https://youtu.be/ZrNScBG9TnU|Zabbix: топология сети наглядно и автоматически]] | + | * !!! Методически, лучше в 11-м модуле |
- | + | ||
- | * Задача 2: сканировать через nmap определенные узлы и уведомлять, если результаты сканирования изменились | + | |
- | + | ||
- | Решение: | + | |
- | + | ||
- | * Создать шаблон [[http://val.bmstu.ru/unix/conf.git/conf/zabbix/My_Template_Nmap.xml|"My Template Nmap"]] с [[Сервис Zabbix#Элементы типа trapper]] и триггером (см. [[Сервис Zabbix#Пример с текстовым элементом]]) | + | |
- | * Подключить его к узлам, которые надо мониторить (перед подключением к узлу, удалить элемент my.nmap если остался от предыдущих лабораторных работ). | + | |
- | * Периодически получать список узлов с шаблоном My Template Nmap (примечание: templateid можно увидеть в строке URL интерфейсе администрирования zabbix) | + | |
- | + | ||
- | <code> | + | |
- | # cat /root/zab_get_hosts_nmap.sh | + | |
- | </code><code> | + | |
- | #!/bin/sh | + | |
- | + | ||
- | curl -s -k -X POST -H 'Content-Type: application/json-rpc' -d " | + | |
- | { | + | |
- | \"jsonrpc\": \"2.0\", | + | |
- | \"method\": \"host.get\", | + | |
- | \"params\": { | + | |
- | \"output\": [\"hostid\", \"host\"], | + | |
- | \"templateids\": [\"10NNN\"] | + | |
- | }, | + | |
- | \"auth\": \"${AUTH}\", | + | |
- | \"id\": 2 | + | |
- | } " http://127.0.0.1/zabbix/api_jsonrpc.php \ | + | |
- | | jq '.result | .[] | { host: .host} | tostring' \ | + | |
- | | tr -d '{}\\' | tr '"' ' ' | cut -d ' ' -f5 | + | |
- | </code><code> | + | |
- | # /root/zab_get_hosts_nmap.sh | tee /root/hosts_nmap.txt | + | |
- | </code> | + | |
- | + | ||
- | * Периодически сканировать узлы (см. [[Сервис Zabbix#Пример текстового элемента]]) и передавать результаты сканирования в zabbix | + | |
- | + | ||
- | <code> | + | |
- | # cat /root/nmap_2_zabbix.sh | + | |
- | </code><code> | + | |
- | #!/bin/sh | + | |
- | + | ||
- | while read host | + | |
- | do | + | |
- | echo $host | + | |
- | zabbix_sender -z 127.0.0.1 -p 10051 -s $host -k my.nmap \ | + | |
- | -o "$(/root/detect_host_nmap.sh $host)" | + | |
- | done | + | |
- | </code><code> | + | |
- | # /root/nmap_2_zabbix.sh < /root/hosts_nmap.txt | + | |
- | </code> | + | |
- | + | ||
- | === 10.4 Пример изменения конфигурации объектов мониторинга через Zabbix API === | + | |
+ | * [[Сервис Zabbix#Оформление запросов в виде BASH скриптов]] | ||
* [[Сервис Zabbix#Получение списка карт и их элементов из Zabbix]] | * [[Сервис Zabbix#Получение списка карт и их элементов из Zabbix]] | ||
* [[Сервис Zabbix#Пример изменения конфигурации через Zabbix API]] | * [[Сервис Zabbix#Пример изменения конфигурации через Zabbix API]] | ||
- | === 10.5 Пример практического использования технологии === | + | === 10.4 Пример практического использования технологии === |
* [[Zabbix - построение топологии сети]] | * [[Zabbix - построение топологии сети]] | ||
==== Вопросы ==== | ==== Вопросы ==== | ||
- | - Верно ли что Zabbix API можно использовать для управления результатами мониторинга? | + | - Можно ли использовать Zabbix API для получения результатов мониторинга? |
- | - Верно ли что Zabbix API можно использовать для управления конфигурацией системы мониторинга? | + | - Можно ли использовать Zabbix API для управления конфигурацией? |
+ | - Что необходимо получить перед выполнением запросов к Zabbix API? | ||
+ | - Для получения токена доступа используется метод ... | ||
+ | - Для получения списка узлов используется метод ... | ||
+ | - Для получения данных мониторинга используется метод ... | ||
+ | - Для модификации свойств объекта Zabbix используется метод ... | ||
+ | - user.login host.get history.get map.update | ||
===== Модуль 11: Дополнительные возможности визуализации результатов мониторинга в Zabbix ===== | ===== Модуль 11: Дополнительные возможности визуализации результатов мониторинга в Zabbix ===== | ||
Line 679: | Line 652: | ||
=== 11.1 Использование карт === | === 11.1 Использование карт === | ||
- | * Создать новую карту Name: ISP (w:300, h:600), отобразить подключение к провайдеру | + | * Создать новую карту Name: ISP (w:300, h:600), и добавить два элемента |
<code> | <code> | ||
+ | Icon: Cloud(96) | ||
Label: ISP | Label: ISP | ||
- | Icon: Cloud | ||
Host: gate.corpX.un | Host: gate.corpX.un | ||
Line 688: | Line 661: | ||
</code> | </code> | ||
- | * Создать линк и подписать параметры входящего и исходящего трафиков | + | * Через Ctrl выделить элементы, добавить Link и подписать его значениями трафика |
<code> | <code> | ||
+ | Zabbix <=5 | ||
+ | |||
Out: {gate.corpX.un:net.if.out["eth1"].last()} | Out: {gate.corpX.un:net.if.out["eth1"].last()} | ||
In: {gate.corpX.un:net.if.in["eth1"].last()} | In: {gate.corpX.un:net.if.in["eth1"].last()} | ||
- | |||
- | Download: {server.corpX.un:speedtest.sh[download].last()} | ||
- | Upload: {server.corpX.un:speedtest.sh[upload].last()} | ||
- | |||
- | или, если настроены trap | ||
- | |||
Download: {server.corpX.un:speedtest.download.last()} | Download: {server.corpX.un:speedtest.download.last()} | ||
Upload: {server.corpX.un:speedtest.upload.last()} | Upload: {server.corpX.un:speedtest.upload.last()} | ||
+ | </code><code> | ||
+ | Zabbix >=6 | ||
+ | |||
+ | Out: {?last(/gate.corpX.un/net.if.out["eth1"])} | ||
+ | In: {?last(/gate.corpX.un/net.if.in["eth1"])} | ||
+ | Download: {?last(/server.corpX.un/speedtest.download)} | ||
+ | Upload: {?last(/server.corpX.un/speedtest.upload)} | ||
</code> | </code> | ||
- | * Пользователя guest убрать из группы Disabled | + | * Предоставить публичный доступ к карте |
- | * Настроить публичный доступ к карте [[http://server/zabbix/zabbix.php?action=map.view&sysmapid=2]] для группы Guests | + | |
- | * Предоставить группе Guests права на чтение объектов мониторинга группы узлов Linux servers (Можно сделать отдельную группу Public info и включить в нее узлы, элементы которых будут дотступны публично) | + | |
- | === 11.2 Использование экранов === | + | === 11.2 Использование панелей (Dashboard) === |
- | + | ||
- | * Создать экран Name: ISP Screen 2x2, содержащий карту (на 2 строки) и графики загрузки и скорости интернет канала | + | |
- | * Вывести экран в режиме киоска [[http://server/zabbix/screens.php?elementid=70&kiosk=1]] | + | |
- | * !!! В версии 6.0 переедут в раздел "панели" | + | |
- | + | ||
- | === 11.3 Использование панелей === | + | |
- | + | ||
- | * Обзор возоможностей в процессе восстановления работоспособности панели "Zabbix server health", добавить виджет с графиками скорости Интернет за последние 10 часов, сделать панель публичной | + | |
+ | * Обзор возможностей в панели "Zabbix server health" | ||
+ | * Создать виджет "Inet Access" | ||
+ | * Добавить в него Map: "ISP1" | ||
+ | * Добавить в него Graph(classic): ISP1 Network Traffic -> ISP1 gate.corpX.un: Interface eth1: Network traffic | ||
+ | * Вместо создания классического [[Сервис Zabbix#Пользовательские графики]] отображающего скорость интернет канала, добавить в него Graph: "ISP1 Speed", два Data set: server.corpX.un -> speedtest ... и Time period: From now-1d | ||
+ | * Cделать панель публичной (три черточки в правом верхнем углу -> Sharing) | ||
===== Модуль 12: Обновление Zabbix ===== | ===== Модуль 12: Обновление Zabbix ===== | ||
+ | * [[Сервис Zabbix#Обновление Zabbix]] | ||
* [[Сервис Zabbix#Установка и запуск сервера]] новой версии | * [[Сервис Zabbix#Установка и запуск сервера]] новой версии | ||
+ | |||
+ | * [[https://youtu.be/ML971zjJW4A|Видеоурок: Zabbix 7, как обновиться и что поменялось]] | ||
<code> | <code> | ||
Line 725: | Line 700: | ||
# tail -f /var/log/zabbix/zabbix_server.log | # tail -f /var/log/zabbix/zabbix_server.log | ||
+ | </code><code> | ||
+ | ... | ||
+ | 443024:20221228:113625.301 current database version (mandatory/optional): 06000000/06000017 | ||
+ | 443024:20221228:113625.301 required mandatory version: 06020000 | ||
+ | 443024:20221228:113625.301 optional patches were found | ||
+ | 443024:20221228:113625.301 starting automatic database upgrade | ||
+ | 443024:20221228:113625.306 completed 0% of database upgrade | ||
+ | 443024:20221228:113625.372 completed 1% of database upgrade | ||
+ | ... | ||
+ | 443024:20221228:113637.733 completed 100% of database upgrade | ||
+ | 443024:20221228:113637.734 database upgrade fully completed | ||
+ | ... | ||
</code> | </code> |