This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
zabbix._мониторинг_it_инфраструктуры_предприятия_2023 [2024/02/29 07:36] val removed |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Zabbix. Мониторинг IT инфраструктуры предприятия 2023 ====== | ||
- | ===== Цель обновления ===== | ||
- | |||
- | - Оптимизировать программу | ||
- | - Мониторинг Linux/Windows рабочих станций | ||
- | ===== Ссылка на вебинар ===== | ||
- | |||
- | ===== Программа курса ===== | ||
- | |||
- | ===== Модуль 0. Подготовка стенда в классе ===== | ||
- | |||
- | * Узнать свой номер стенда | ||
- | * Удалить виртуалки (сделано) | ||
- | * Удалить профили putty (сделано) | ||
- | * Отключить не используемые адаптеры (сделано) | ||
- | * Настроить VirtualBox Host-Only Ethernet Adapter на адрес 192.168.X.29/255.255.255.0 (будет сделано) | ||
- | * Записать логин пароль и IP (сообщить преподавателю) рабочей станции (сделано) | ||
- | * Проверить наличие дистрибутивов и образов (будет сделано) | ||
- | |||
- | ===== Модуль 1: Развертывание IT инфраструктуры предприятия ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * [[http://ru.wikipedia.org/wiki/Управление_компьютерной_сетью|Управление компьютерной сетью]] | ||
- | |||
- | ==== Лабораторные работы: Развертывание объектов мониторинга ==== | ||
- | |||
- | Настраиваем необходимый для мониторинга минимум из курса [[Администрирование сервисов UNIX]] | ||
- | |||
- | === 1.1 Схема стенда, импорт, настройка и запуск VM gate и server === | ||
- | |||
- | * Для локальной сети использовать VirtualBox Host-Only Ethernet Adapter (понадобится в лабораторной работе про простые проверки) | ||
- | |||
- | <code> | ||
- | Запустите с правами Administrator | ||
- | |||
- | C:\cmder\Cmder.exe | ||
- | |||
- | λ bash | ||
- | |||
- | λ cd | ||
- | |||
- | λ git clone http://val.bmstu.ru/unix/conf.git | ||
- | |||
- | λ cd conf/virtualbox/ | ||
- | |||
- | !!! 5 - это номер курса, вместо X укажите Ваш номер стенда, если не помните, спросите преподавателя !!! | ||
- | |||
- | λ ./setup.sh X 5 | ||
- | </code> | ||
- | |||
- | === 1.2 Настройка сети VM gate и server === | ||
- | |||
- | * [[Настройка стендов слушателей#Настройка виртуальных систем Unix]] с использованием [[Настройка стендов слушателей#Скрипты автоконфигурации]] | ||
- | |||
- | * gate | ||
- | <code> | ||
- | # sh net_gate.sh | ||
- | |||
- | # init 6 | ||
- | </code> | ||
- | |||
- | * server | ||
- | <code> | ||
- | # sh net_server.sh | ||
- | |||
- | # init 6 | ||
- | </code> | ||
- | |||
- | * Создать в Putty профили gate, server и подключиться | ||
- | |||
- | === 1.3 настройка сервисов DNS и DHCP === | ||
- | |||
- | * [[Сервис DHCP]] (понадобится в лабораторной работе про LLD) | ||
- | <code> | ||
- | gate:~# sh conf/dhcp.sh | ||
- | </code> | ||
- | |||
- | * [[Финальная настройка DNS сервера]] (понадобится в лабораторной работе про простые проверки) | ||
- | <code> | ||
- | server:~# sh conf/dns.sh | ||
- | </code> | ||
- | |||
- | * Настройка клиента DNS на gate и server | ||
- | <code> | ||
- | # cat /etc/resolv.conf | ||
- | </code><code> | ||
- | search corpX.un | ||
- | nameserver 192.168.X.10 | ||
- | </code><code> | ||
- | # nslookup ns | ||
- | </code> | ||
- | |||
- | * Импорт и запуск систем Linux client1 ([[Настройка сети в Linux#Динамическая настройка параметров]]) и Windows client2 | ||
- | ===== Модуль 2: Установка компонентов Zabbix ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * [[https://ru.wikipedia.org/wiki/Zabbix|Zabbix - Википедия]] | ||
- | * [[https://www.zabbix.com/life_cycle_and_release_policy|Zabbix Life Cycle & Release Policy]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/introduction/overview|Zabbix Documentation - Архитектура Zabbix]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/web_interface/frontend_sections|Zabbix Documentation - Разделы веб-интерфейса]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/hosts|Zabbix Documentation - Узлы сети и группы узлов сети]] | ||
- | ==== Лабораторные работы: Развертывание компонентов Zabbix ==== | ||
- | |||
- | * [[Переменные окружения#Установка переменных окружения]] http_proxy | ||
- | |||
- | * [[Выбор дистрибутива Linux]] или его определение | ||
- | * [[Сервис MySQL]] | ||
- | |||
- | * [[https://www.zabbix.com/download|Download and install Zabbix]] | ||
- | * Подключение к frontend для [[Сервис Zabbix#Настройка мониторинга]] | ||
- | |||
- | * [[Сервис Zabbix#Мониторинг с использованием Zabbix agents]] (выполнить в модуле 4) | ||
- | |||
- | |||
- | ==== Вопросы ==== | ||
- | |||
- | - Какие СУБД используются для хранения данных в Zabbix? | ||
- | - Какая версия Zabbix поддерживается в течении долгого времени? | ||
- | - Какой веб сервер может использоваться для работы Zabbix Frontend? | ||
- | - Для каких задач используется Zabbix Frontend? | ||
- | - Для каких задач используется Zabbix Server? | ||
- | - Что содержит пакет zabbix-sql-scripts? | ||
- | - На каком языке программирования написан Zabbix Frontend? | ||
- | - На каком языке программирования написан Zabbix Server? | ||
- | |||
- | ===== Модуль 3: Базовые сущности Zabbix ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * Сравнение с [[Сервис MRTG]], [[Сервис Cacti]] и [[Сервис Nagios]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/hosts|Zabbix Documentation - Узлы сети и группы узлов сети]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/items|Zabbix Documentation - Элементы данных]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/items/history_and_trends|Zabbix Documentation - История и динамика изменений]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/items/itemtypes/simple_checks|Zabbix Documentation - Простые проверки]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/web_monitoring|Zabbix Documentation - Веб-мониторинг]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/triggers|Zabbix Documentation - Триггеры]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/triggers/expression|Zabbix Documentation - Выражение триггера]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/triggers/dependencies|Zabbix Documentation - Зависимости триггеров]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/visualisation/graphs/custom|Zabbix Documentation - Пользовательские графики]] | ||
- | |||
- | ==== Лабораторные работы: Базовые элементы процесса мониторинга ==== | ||
- | |||
- | === 3.1 Простые проверки в Zabbix === | ||
- | |||
- | * Добавление узла (host) ya.ru и группы External Hosts | ||
- | <code> | ||
- | Host name: ya.ru | ||
- | ЛЮБОЙ ИНТЕРФЕЙС: DNS ya.ru | ||
- | New group: External Hosts | ||
- | </code> | ||
- | |||
- | * Настройка элемента типа "[[Сервис Zabbix#Простые проверки]]" отзывчивости https://ya.ru | ||
- | |||
- | * Визуализация данных | ||
- | <code> | ||
- | Monitoring->Hosts->Latest data | ||
- | ya.ru->check perf http ya.ru | ||
- | Zoom: 1h | ||
- | </code> | ||
- | |||
- | * Удаляем узел (можно оставить, для сравнения с конечным результатом в конце курса) "Zabbix server" и создаем новый server.corpX.un с адресом 127.0.0.1 и любым интерфейсом | ||
- | * Преподаватель демонстрирует возможность сгруппировать простые проверки внешних систем в общем узле на примере [[Сервис Zabbix#Простые проверки]] доступности системы gate.isp.un и сервиса RDP на admin/host windows через server.corpX.un | ||
- | |||
- | === 3.2 Web сценарии === | ||
- | |||
- | * Используя [[Сервис Ansible]] разворачиваем почтовый сервер | ||
- | <code> | ||
- | server# ansible-playbook conf/ansible/roles/mail.yml | ||
- | </code> | ||
- | |||
- | * [[https://youtu.be/yy1T2bDMy54|Вебинар: Zabbix - мониторинг Web приложений]] | ||
- | |||
- | === 3.3 Триггеры в Zabbix === | ||
- | |||
- | * Преподаватель демонстрирует [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности gate.isp.un и rdp сервиса | ||
- | * [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности ya.ru (обсудить использование встроенных макросов в именах триггеров и вернуться к этому вопросу в модуле 4 при клонировании ya.ru в val.bmstu.ru | ||
- | |||
- | * Эмуляция сбоя | ||
- | <code> | ||
- | gate:~# ifdown eth1 | ||
- | </code> | ||
- | |||
- | * Отчет о проблемах | ||
- | |||
- | <code> | ||
- | Monitoring->Triggers | ||
- | или | ||
- | Monitoring->Problems | ||
- | </code> | ||
- | |||
- | * Преподаватель демонстрирует возможность настроить зависимость триггеров на примере недоступности gate.isp.un/ya.ru | ||
- | |||
- | <code> | ||
- | gate:~# ifup eth1 | ||
- | </code> | ||
- | |||
- | * Обсуждение [[Сервис Zabbix#Пример триггера основанного на значении элемента в течении периода]], уведомляющего о ухудшении качества доступа ([[Сервис QOS]]) в Интернет на основании повышения среднего времени ответа за период | ||
- | |||
- | ==== Вопросы ==== | ||
- | |||
- | - Для чего используются объекты Hosts в Zabbix? | ||
- | - Для чего используются объекты Items в Zabbix? | ||
- | - Для чего используются объекты Triggers в Zabbix? | ||
- | - Какие атрибуты помечены как обязательные при создании Host в Zabbix? | ||
- | - Какие интерфейсы для взаимодействия с узлами поддерживает Zabbix? | ||
- | - Перечислите обязательные атрибуты Items в Zabbix? | ||
- | - Есть ли возможность осуществлять мониторинг системы, не имеющей поддерживаемых Zabbix интерфейсов? | ||
- | - Какого типа Items используется для проверок ICMP Echo | ||
- | - Откуда берется адрес целевой системы, если он не указан явно в элементе типа Simple Check? | ||
- | - Какие значения хранятся в Трендах? | ||
- | - За какой период рассчитываются значения Трендов? | ||
- | - Какие атрибуты помечены как обязательные при создании Trigger в Zabbix? | ||
- | - Что следует использовать для уменьшения количества сообщений системы мониторинга в случае сбоев больших коммутационных узлов? | ||
- | - Какие возможности, по сравнению с net.tcp.service.perf[http] предоставляют Web сценарии? | ||
- | - Где описываются Items в Web сценарии? | ||
- | - Можно ли мониторить работоспособность неуправляемого коммутатора? | ||
- | |||
- | ===== Модуль 4: Использование шаблонов ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | |||
- | * [[https://www.zabbix.com/documentation/4.2/ru/manual/config/items/itemtypes/zabbix_agent|Zabbix Documentation - Zabbix агент]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/macros|Zabbix Documentation - Макросы]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/templates|Zabbix Documentation - Шаблоны]] | ||
- | |||
- | ==== Лабораторные работы: Управление конфигурацией с помощью шаблонов ==== | ||
- | |||
- | === 4.1 Клонирование узлов (хостов) === | ||
- | |||
- | * Создать узел val.bmstu.ru через Full Clone узла ya.ru (обратить внимание на использование {HOST.NAME} в именах триггеров) | ||
- | |||
- | === 4.2 Использование zabbix agent для сбора метрик === | ||
- | |||
- | * Установка zabbix agent на gate ([[Сервис Zabbix#Мониторинг с использованием Zabbix agents]]) | ||
- | |||
- | === 4.3 Использование готовых шаблонов === | ||
- | |||
- | * Обзор шаблона "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.4 Создание шаблона на основе существующего === | ||
- | |||
- | * [[Сервис Zabbix#Создание своих шаблонов]] на основе "SSH Service" с добавлением макроса, определяющего порт сервиса | ||
- | * Назначаем шаблон узлу gate.corpX.un (и, при желании, server.corpX.un) | ||
- | |||
- | * Переопределяем значение макроса {$SSH_PORT}, указав значение, например, 2222 для узла gate.corpX.un и ждем (рассчитать время) срабатывания триггера | ||
- | * После срабатывания триггера, в ([[Сервис SSH#Настройка ssh сервера]]) на gate указываем новый порт и перезапускаем сервис или, методически, проще использовать эти команды: | ||
- | <code> | ||
- | gate# /usr/sbin/sshd -p 2222 | ||
- | |||
- | gate# kill `cat /var/run/sshd.pid` | ||
- | </code> | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Чем Clone объекта Host отличается от Full Clone? | ||
- | - Для чего нужен Zabbix Agent? | ||
- | - Какой командой можно получить список метрик (ключей), возвращаемых zabbix agent? | ||
- | - Какой утилитой можно получить значения метрик (ключей) с zabbix agent | ||
- | - Какая метрика (ключ) zabbix agent используется для отображения статуса узла? | ||
- | - Перечислите варианты безопасного подключения между zabbix агентом и сервером? | ||
- | - Чем шаблоны лучше клонирования? | ||
- | - Что следует использовать в именах триггеров при описании их в шаблонах или при клонировании узлов? | ||
- | - Что можно использовать в качестве переменных в выражениях элементов? | ||
- | - Как работает переопределение и наследование макросов? | ||
- | - Какой синтаксис у built-in макросов? | ||
- | - Какой синтаксис у user-defined макросов? | ||
- | - Что произойдет с объектами узла, при изменении описывающего их шаблона? | ||
- | - Можно ли поменять параметры объекта узла, описанного шаблоном? | ||
- | - Если поменять параметры объекта узла, описанного шаблоном, а потом те же в шаблоне, какие значения будут в итоге? | ||
- | - Если поменять параметры объекта на уровне шаблона, а потом на уровне узла, какие значения будут в итоге? | ||
- | ===== Модуль 5: Управление учетными записями и уведомлениями ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/users_and_usergroups/permissions|Zabbix Documentation - Права доступа]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/users_and_usergroups/usergroup|Zabbix Documentation - Группы пользователей]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/quickstart/notification|Zabbix Documentation - Получение оповещения о проблеме]] | ||
- | * [[https://ru.wikipedia.org/wiki/SMTP|Протокол SMTP]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/web_interface/user_profile/sound|Zabbix Documentation - Звук в браузерах]] | ||
- | ==== Лабораторные работы: Настройка уведомлений о событиях ==== | ||
- | |||
- | === 5.1 Добавление учетных записей администраторов === | ||
- | |||
- | * Создать учетную запись с login/alias student/Pa$$w0rd#, Вашим ФИО и, с User role: [[https://www.zabbix.com/documentation/6.0/ru/manual/config/users_and_usergroups/permissions|"Zabbix Super Admin"]] | ||
- | * Включить student в группу "Zabbix administrators" (см. следующий пункт) | ||
- | |||
- | === 5.2 Настройка уведомлений о событиях === | ||
- | |||
- | * Продемонстрировать на преподавательском стенде звуковые уведомления в браузере (в настройках профиля) | ||
- | * [[Сервис Zabbix#Настройка уведомлений о событиях]] (Email, XMPP, PSTN) | ||
- | |||
- | <code> | ||
- | http://192.168.X.10/mail/ | ||
- | </code> | ||
- | |||
- | * Reports->Action log | ||
- | * Можно создать группу "Don t disturb" и переместить в нее пользователя Admin, что бы Zabbix не пытался отправить ему сообщения | ||
- | * [[https://youtu.be/XYeVj1unjfc|Мастер класс: Zabbix Вам позвонит и расскажет...]] | ||
- | |||
- | |||
- | === 5.3 Добавление учетных записей сотрудников службы поддержки === | ||
- | |||
- | Задание на дом:) | ||
- | |||
- | * Создать группу "Zabbix responsible" | ||
- | * Назначить группе "Zabbix responsible" права на чтение элементов групп Linux servers и/или External Hosts (!!! это нужно и для получение уведомлений о срабатывании триггеров этих узлов) | ||
- | * Настроить Trigger Action "Zabbix responsible notification" для уведомлений пользователей группы "Zabbix responsible" | ||
- | * Создать учетную запись user1/Pa$$w0rd1 с Role: "User role" и включить его в группу "Zabbix responsible" | ||
- | * user1 должен иметь права на просмотр результатов мониторинга через Web интерфейс и должен получать уведомления по электронной почте ([[Управление учетными записями в Linux#Добавление учетной записи]]). | ||
- | |||
- | === 5.4 Настройка публичного доступа к информации в Zabbix === | ||
- | |||
- | * !!! Сделать в 11-м модуле | ||
- | |||
- | * Пользователя guest убрать из группы Disabled | ||
- | * Настроить Read-only доступ к объекту (Например, к карте [[http://server/zabbix/zabbix.php?action=map.view&sysmapid=2]]) для группы Guests или сделать объект Public | ||
- | * Предоставить группе Guests права на чтение элементов объектов мониторинга (сделать отдельную группу Public info и включить в нее узлы, элементы которых будут доступны публично) | ||
- | |||
- | ==== Вопросы ==== | ||
- | |||
- | - Укажите все шаги, необходимые для оправки уведомлений пользователям Zabbix | ||
- | - Роль Guest, User, Admin, SuperAdmin позволяет ... | ||
- | - Как может быть использовано членство в группе Zabbix? | ||
- | - Укажите все типы (Type) отправки уведомлений в Zabbix | ||
- | - Для чего нужны права на группы узлов пользователям Zabbix? | ||
- | - Где можно посмотреть, какие уведомления были отправлены Zabbix? | ||
- | - Права какого пользователя используются в Zabbix при подключении к его интерфейсу без авторизации? | ||
- | |||
- | ===== Модуль 6: Внешние проверки и пользовательские параметры ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/items/itemtypes/external|Zabbix Documentation - Внешние проверки]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/items/userparameters|Zabbix Documentation - Пользовательские параметры]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/items/itemtypes/calculated|Zabbix Documentation - Вычисляемые элементы данных]] | ||
- | ==== Лабораторные работы: Мониторинг с использование внешних программ/скриптов ==== | ||
- | |||
- | === 6.1 Варианты получения результатов из внешних программ/скриптов на zabbix сервере === | ||
- | |||
- | Демонстрирует преподаватель | ||
- | |||
- | * [[Сервис Zabbix#Внешние проверки]] | ||
- | * [[Сервис Zabbix#Пример простого скрипта]] (на этапе добавления элемента тестируем с разным количеством итераций до появления Timeout) | ||
- | |||
- | Делаем все, но не запускаем))) | ||
- | |||
- | * [[Сервис speedtest]] - пример задачи, требующей значительного времени выполнения | ||
- | * Решение: [[Сервис Zabbix#Элементы типа trapper]] (ловушки :) | ||
- | |||
- | === 6.2 Варианты получения результатов из внешних программ/скриптов на удаленных узлах === | ||
- | |||
- | Демонстрирует преподаватель (сделаем качественнее в следующем модуле) | ||
- | |||
- | * [[Сервис DHCP#Статистика DHCP сервера]] | ||
- | * Обсудить [[Сервис Zabbix#Пример запуска скрипта на удаленной системе]] с использованием SSH | ||
- | * [[Сервис Zabbix#Использование UserParameter]] в zabbix-agent для получения результатов из внешних приложений, на примере мониторинга количества выданных ip сервисом DHCP | ||
- | * Используем [[Сервис DHCP#Поиск посторонних DHCP серверов]] для проверки | ||
- | |||
- | ==== Вопросы ==== | ||
- | |||
- | - Какое ограничение накладывает Zabbix server на выполнение внешних скриптов? | ||
- | - Какое ограничение накладывает Zabbix agent на выполнение внешних скриптов? | ||
- | - Какой синтаксис UserParameter позволяет указать произвольное число аргументов? | ||
- | - На что влияет UnsafeUserParameters? | ||
- | - Какие варианты имеются для запуска скриптов на удаленных системах из Zabbix? | ||
- | - Как можно передать в Zabbix результаты, получаемые в течении длительного времени? | ||
- | ===== Модуль 7: Низкоуровневое обнаружение (LLD) ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * [[https://www.zabbix.com/documentation/4.2/ru/manual/discovery/low_level_discovery|Zabbix Documentation. Низкоуровневое обнаружение]] | ||
- | * [[https://habr.com/ru/post/377757/|Мониторинг производительности дисковой подсистемы при помощи zabbix и block stat]] | ||
- | * [[https://github.com/grundic/zabbix-disk-performance|github grundic/zabbix-disk-performance]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/regular_expressions|Zabbix Documentation - Регулярные выражения]] | ||
- | * Формат [[https://ru.wikipedia.org/wiki/JSON|JSON]] | ||
- | * Формат [[https://ru.wikipedia.org/wiki/XML|XML]] | ||
- | |||
- | * * [[https://youtu.be/MEdVvZU18ek|Самый простой, но очень полезный пример использования низкоуровнего обнаружения (LLD) в Zabbix]] | ||
- | |||
- | ==== Лабораторные работы: Управление конфигурацией с помощью шаблонов и LLD ==== | ||
- | |||
- | === 7.1 Знакомство с LLD === | ||
- | |||
- | * [[Сервис Zabbix#Low-Level Discovery (LLD)]] | ||
- | <code> | ||
- | Configuration->Hosts->gate.corpX.un | ||
- | ->Discovery rules | ||
- | ->Block devices discovery: ... | ||
- | ->Mounted filesystem discovery: ... | ||
- | ->Network interface discovery: ... | ||
- | </code> | ||
- | |||
- | Фильтрация элементов | ||
- | |||
- | Zabbix <= 4 | ||
- | <code> | ||
- | Administration->General->Regular expressions | ||
- | </code> | ||
- | |||
- | Zabbix >= 5 - унаследованные макросы ({$VFS.FS.FSTYPE.MATCHES}, например) | ||
- | |||
- | === 7.2 Использование LLD для учета статистики выданных адресов по DHCP в множестве подсетей === | ||
- | |||
- | * Методическая рекомендация - удалить узел gate.corpX.un и добавить его заново, после создания нового шаблона | ||
- | |||
- | Демонстрирует преподаватель | ||
- | |||
- | * Добавление подсетей (LAN2-eth2-VBox Внутренняя сеть) в сервис DHCP (можно после создания и применения шаблона) | ||
- | <code> | ||
- | gate# cat /etc/network/interfaces | ||
- | |||
- | gate# ifup eth2 | ||
- | |||
- | gate# cat /etc/default/isc-dhcp-server | ||
- | |||
- | gate# cat /etc/dhcp/dhcpd.conf | ||
- | |||
- | gate# service isc-dhcp-server restart | ||
- | </code> | ||
- | |||
- | * Разработки шаблона, использующего LLD для учета [[Сервис Zabbix#Статистика DHCP сервера]] в множестве подсетей | ||
- | * Экспорт шаблона ([[Сервис Zabbix#Экспорт/импорт в XML]]), размещение его и всего необходимого в, например, [[Сервис Git#github.com]] | ||
- | |||
- | * Импорт инструкции и всего необходимого для развертывания | ||
- | |||
- | <code> | ||
- | gate# git clone https://github.com/valbmsturu/zabbix_dhcp_pools.git | ||
- | |||
- | gate# cd zabbix_dhcp_pools/ | ||
- | |||
- | 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.shared-network[LAN1,used] | ||
- | </code> | ||
- | |||
- | * Импорт шаблона [[https://github.com/valbmsturu/zabbix_dhcp_pools]] | ||
- | ==== Вопросы ==== | ||
- | |||
- | - В каком формате должен возвращать данные элемент discovery? | ||
- | - Какой синтаксис у low-level discovery макросов? | ||
- | - Перечислите форматы, используемые для импорта/экспорта объектов Zabbix? | ||
- | - Придумайте свои варианты задач, при которых может понадобиться LLD. | ||
- | - Как можно отфильтровать только нужные элементы в процессе discovery? | ||
- | |||
- | ===== Модуль 8: Автоматическая регистрация и инвентаризация компьютеров ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/hosts/inventory|Zabbix Documentation - Инвентарные данные]] | ||
- | * Варианты использования zabbix-agent в режиме active | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/appendix/install/windows_agent|Zabbix Documentation - агент на Microsoft Windows]] | ||
- | * [[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|Авторегистрация активных агентов]] | ||
- | ==== Лабораторные работы: Мониторинг и инвентаризация систем с динамическими адресами ==== | ||
- | |||
- | === 8.1 Установка агента на Windows client === | ||
- | |||
- | * Потребуется [[Chrome]] для [[Сервис Zabbix#Установка агента в Windows]] | ||
- | |||
- | * Для редактирования конфигурации потребуется установить [[https://val.bmstu.ru/unix/npp.6.4.2.Installer.exe|nodepad++]], запустить сразу после инсталляции (будет/нужен с правами Администратора) и открыть файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf | ||
- | |||
- | === 8.2 Установка агента на Linux client === | ||
- | |||
- | * [[Инсталяция системы в конфигурации Desktop]] (для вывода списка Desktop ПО, без thunderbird) | ||
- | * [[Сервис Zabbix#Мониторинг с использованием Zabbix agents]], можно через [[Сервис Ansible]] | ||
- | |||
- | === 8.3 Проблемы мониторинга рабочих станций Linux и Window === | ||
- | |||
- | * Windows firewall, не хотим настраивать исключения. | ||
- | * Может измениться IP адрес (для демонстрации можно сменить mac адрес) | ||
- | * LLD использует имя системы, и, если его нет в DNS - не работает, согласно записям в журнале: | ||
- | <code> | ||
- | # grep 192.168.X.102 /var/log/zabbix/zabbix_server.log | ||
- | ... | ||
- | 12202:20190605:125020.551 cannot send list of active checks to "192.168.X.102": host [CLIENT1] not found | ||
- | ... | ||
- | </code> | ||
- | |||
- | === 8.4 Использование активного режима агента === | ||
- | |||
- | * [[https://support.zabbix.com/browse/ZBXNEXT-5088|Set Agent icon color to green on getting "active" data]] | ||
- | |||
- | * Создаем Host группы Linux clients и Windows clients | ||
- | * [[Сервис 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#Пример с текстовым элементом]] | ||
- | <code> | ||
- | conf/zabbix/zabbix/Template_OS_Windows_list_installed_soft_Active_5.xml | ||
- | </code> | ||
- | (!!! не смотря на название, подходит для Linux :) | ||
- | |||
- | * Сравнение списков ПО с помощью [[Сервис Zabbix#Добавление информации о значении элемента в сообщение]] | ||
- | |||
- | * На уровне шаблона Linux by Zabbix agent (+ windows + active) настроить Total memory -> Populates host inventory field: Hardware | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Чем отличается активный режим от пассивного в Zabbix агенте? | ||
- | - Что означают директивы Server, ServerActive, StartAgents в конфигурации Zabbix агента? | ||
- | - Перечислите обязательные действия при авто регистрации узлов? | ||
- | - Как отличить рабочие станции Linux от Windows при авто регистрации? | ||
- | - Придумайте варианты конфигураций сети, при которых необходимо использовать активный режим агента Zabbix | ||
- | |||
- | ===== Модуль 9: Мониторинг систем по протоколу SNMP ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * [[https://ru.wikipedia.org/wiki/SNMP|Протокол SNMP - Wikipedia]] | ||
- | * [[https://www.zabbix.com/documentation/1.8/ru/manual/auto-discovery|Zabbix Documentation - Обнаружение]] | ||
- | * [[https://www.zabbix.com/documentation/3.0/ru/manual/distributed_monitoring/proxies|Zabbix Documentation - Прокси]] | ||
- | |||
- | ==== Лабораторные работы: Мониторинг сетевого оборудования ==== | ||
- | |||
- | === 9.1 Развертывание сетевого оборудования с поддержкой SNMP === | ||
- | |||
- | Демонстрирует преподаватель | ||
- | |||
- | * Используются [[Материалы по GNS]] и фрагменты курса [[Linux. Мониторинг оборудования и интеграция с Cisco]] | ||
- | <code> | ||
- | configure terminal | ||
- | |||
- | hostname routerN | ||
- | interface FastEthernet0/0 | ||
- | ip address 172.16.1.19N 255.255.255.0 | ||
- | duplex full | ||
- | no shutdown | ||
- | |||
- | ip route 0.0.0.0 0.0.0.0 172.16.1.254 | ||
- | |||
- | ip name-server 172.16.1.254 | ||
- | ip domain-name isp.un | ||
- | ip domain-lookup | ||
- | |||
- | snmp-server community public RO | ||
- | end | ||
- | |||
- | copy running-config startup-config | ||
- | |||
- | |||
- | </code> | ||
- | |||
- | === 9.2 Настройка интерфейса SNMP в системах === | ||
- | |||
- | * Обсуждение на примере [[Communigate Pro#Использование интерфейса SNMP для мониторинга]] Communigate Pro | ||
- | |||
- | === 9.3 Настройка мониторинга систем по протоколу SNMP в zabbix === | ||
- | |||
- | * [[Сервис SNMP#Установка пакета net-snmp]] на client2 для знакомства с [[Сервис SNMP#Варианты использования snmp консоли в режиме чтения]] | ||
- | |||
- | Демонстрирует преподаватель (для ускорения демонстрации уменьшить интервалы времени до 1 минуты) | ||
- | |||
- | * [[Сервис Zabbix#Мониторинг по протоколу SNMP]] системы router1.isp.un | ||
- | |||
- | === 9.4 Автоматический поиск и добавление устройств в Zabbix === | ||
- | |||
- | * Преподаватель удаляет router1.isp.un из Zabbix | ||
- | * [[Сервис Zabbix#Автоматическое добавление]] | ||
- | * Обсудить Preprocessing для элементов Interface Fa0/0(): Bits sent | ||
- | |||
- | === 9.5 Использование Zabbix proxy для решения проблем с доступом к объектам мониторинга === | ||
- | |||
- | !!!Работает с задержкой!!! | ||
- | |||
- | <code> | ||
- | configure terminal | ||
- | |||
- | no ip route 0.0.0.0 0.0.0.0 172.16.1.254 | ||
- | </code> | ||
- | |||
- | * [[Сервис Zabbix#Установка и запуск proxy]] на gate | ||
- | * [[Сервис Zabbix#Добавление proxy в zabbix server]] | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Что необходимо добавить в систему с Zabbix Server или Proxy для мониторинга оборудования по протоколу SNMP с использованием имен OID в текстовом формате? | ||
- | - В чем отличие процесса автоматического добавления оборудования в этой лабораторной работе от варианта с активным агентом? | ||
- | - Для каких задач используется Zabbix Proxy? | ||
- | - В каком режиме работает Zabbix Proxy по умолчанию? | ||
- | - Придумайте свои варианты задач, при которых может понадобиться Zabbix Proxy | ||
- | |||
- | |||
- | ===== Модуль 10: Zabbix API ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * [[https://ru.wikipedia.org/wiki/JSON|Материал из Википедии. JSON]] | ||
- | * [[https://www.zabbix.com/documentation/1.8/ru/api/getting_started|Zabbix Documentation - Начало работы с Zabbix API]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/api|Zabbix Documentation - API]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/api/reference|Zabbix Documentation - Справочник методов]] | ||
- | * [[https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/36900-api-key-lifetime|api key lifetime]] | ||
- | ==== Лабораторные работы: Пример задачи, использующей Zabbix API ==== | ||
- | |||
- | === 10.1 Подключение и аутентификация === | ||
- | |||
- | * [[Сервис Zabbix#Аутентификация]] | ||
- | |||
- | === 10.2 Примеры запросов на чтение информации о настройках объектов мониторинга === | ||
- | |||
- | * [[Сервис Zabbix#Работа с объектами host/template]] | ||
- | * [[Сервис Zabbix#Доступ к результатам мониторинга]] | ||
- | |||
- | === 10.3 Пример изменения конфигурации объектов мониторинга через Zabbix API === | ||
- | |||
- | * !!! Методически, лучше в 11-м модуле | ||
- | |||
- | * [[Сервис Zabbix#Оформление запросов в виде BASH скриптов]] | ||
- | * [[Сервис Zabbix#Получение списка карт и их элементов из Zabbix]] | ||
- | * [[Сервис Zabbix#Пример изменения конфигурации через Zabbix API]] | ||
- | |||
- | === 10.4 Пример практического использования технологии === | ||
- | |||
- | * [[Zabbix - построение топологии сети]] | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Можно ли использовать Zabbix API для получения результатов мониторинга? | ||
- | - Можно ли использовать Zabbix API для управления конфигурацией? | ||
- | - Что необходимо получить перед выполнением запросов к Zabbix API? | ||
- | - Для получения токена доступа используется метод ... | ||
- | - Для получения списка узлов используется метод ... | ||
- | - Для получения данных мониторинга используется метод ... | ||
- | - Для модификации свойств объекта Zabbix используется метод ... | ||
- | - user.login host.get history.get map.update | ||
- | |||
- | ===== Модуль 11: Дополнительные возможности визуализации результатов мониторинга в Zabbix ===== | ||
- | |||
- | ==== Теория ==== | ||
- | |||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/visualisation/maps/map|Zabbix Documentation - Настройка карты сети]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/visualisation/screens|Zabbix Documentation - Комплексные экраны]] | ||
- | * [[https://www.zabbix.com/documentation/4.0/ru/manual/web_interface/frontend_sections/monitoring/dashboard|Zabbix Documentation - ПАНЕЛЬ]] | ||
- | ==== Лабораторные работы ==== | ||
- | |||
- | === 11.1 Использование карт === | ||
- | |||
- | * Создать новую карту Name: ISP (w:300, h:600), и добавить два элемента | ||
- | <code> | ||
- | Icon: Cloud(96) | ||
- | Label: ISP | ||
- | |||
- | Host: gate.corpX.un | ||
- | Label: {HOST.CONN} | ||
- | </code> | ||
- | |||
- | * Через Ctrl выделить элементы, добавить Link и подписать его значениями трафика | ||
- | |||
- | <code> | ||
- | Zabbix <=5 | ||
- | |||
- | Out: {gate.corpX.un:net.if.out["eth1"].last()} | ||
- | In: {gate.corpX.un:net.if.in["eth1"].last()} | ||
- | Download: {server.corpX.un:speedtest.download.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> | ||
- | |||
- | * Предоставить публичный доступ к карте | ||
- | |||
- | === 11.2 Использование панелей (Dashboard) === | ||
- | |||
- | * Обзор возможностей в панели "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 ===== | ||
- | |||
- | * [[Сервис Zabbix#Обновление Zabbix]] | ||
- | * [[Сервис Zabbix#Установка и запуск сервера]] новой версии | ||
- | |||
- | <code> | ||
- | # systemctl restart zabbix-server.service | ||
- | |||
- | # 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> |