This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
zabbix._мониторинг_it_инфраструктуры_предприятия_new [2022/05/16 12:38] val [Лабораторные работы: Настройка уведомлений о событиях] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Zabbix. Мониторинг IT инфраструктуры предприятия NEW ====== | ||
- | ===== Ссылка на вебинар ===== | ||
- | |||
- | |||
- | ===== Программа курса ===== | ||
- | |||
- | ===== План обновлений ===== | ||
- | |||
- | - Запись для ОО с установкой из репозитория zabbix 6-й версии | ||
- | - Убрать устаревший материал | ||
- | - External Check - простой пример, Trap - speed test | ||
- | ===== Модуль 0. Подготовка стенда в классе ===== | ||
- | |||
- | * Узнать свой номер стенда | ||
- | * Удалить виртуалки (сделано) | ||
- | * Удалить профили putty (сделано) | ||
- | * Отключить не используемые адаптеры (сделано) | ||
- | * Настроить VirtualBox Host-Only Ethernet Adapter на адрес 192.168.X.5/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 | ||
- | |||
- | λ test -d conf && rm -r conf | ||
- | |||
- | λ git clone http://val.bmstu.ru/unix/conf.git | ||
- | |||
- | λ cd conf/virtualbox/ | ||
- | |||
- | λ ./setup.sh X | ||
- | </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> | ||
- | # host ns | ||
- | </code> | ||
- | |||
- | * Импорт и запуск системы client1 | ||
- | ===== Модуль 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 ==== | ||
- | |||
- | * [[Сервис Zabbix#Установка и запуск сервера]] на server | ||
- | * [[Сервис Zabbix#Установка и запуск web интерфейса]] (zabbix-frontend) на server | ||
- | * Подключение к frontend для [[Сервис Zabbix#Настройка мониторинга]] | ||
- | * [[Сервис Zabbix#Мониторинг с использованием Zabbix agents]] (выполнить в модуле 4) | ||
- | |||
- | |||
- | ==== Вопросы ==== | ||
- | |||
- | - Какие версии Zabbix рекомендуются к использованию? | ||
- | - Для каких задач используется Zabbix? | ||
- | - Перечислите компоненты системы Zabbix. | ||
- | |||
- | ===== Модуль 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]] устанавливает на все стенды почтовый сервис и демонстрирует возможности Zabbix по мониторингу [[Сервис Zabbix#Web сценарии]] !!! Не забыть добавить триггер | ||
- | |||
- | === 3.3 Триггеры в Zabbix === | ||
- | |||
- | * Преподаватель демонстрирует [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности gate.isp.un и rdp сервиса | ||
- | * [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности ya.ru | ||
- | * Преподаватель демонстрирует возможность настроить зависимость триггеров на примере недоступности gate.isp.un/ya.ru, обсудить использование встроенных макросов в именах триггеров в модуле 4 при клонировании ya.ru в val.bmstu.ru | ||
- | |||
- | * Эмуляция сбоя | ||
- | <code> | ||
- | gate:~# ifdown eth1 | ||
- | </code> | ||
- | |||
- | * Отчет о проблемах | ||
- | <code> | ||
- | Monitoring->Triggers | ||
- | или | ||
- | Monitoring->Problems | ||
- | </code> | ||
- | |||
- | <code> | ||
- | gate:~# ifup eth1 | ||
- | </code> | ||
- | |||
- | * Обсуждение [[Сервис Zabbix#Пример триггера основанного на значении элемента в течении периода]], уведомляющего о ухудшении качества доступа ([[Сервис QOS]]) в Интернет на основании повышения среднего времени ответа за период | ||
- | * Переподаватель демонcтрирует триггер [[Сервис Zabbix#Пример в веб сценарии]] | ||
- | |||
- | === 3.4 Графики в Zabbix === | ||
- | |||
- | * [[Сервис Zabbix#Пользовательские графики]] (Рассмотрим в 11-м модуле) | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Верно ли, что система Zabbix позволяет осуществлять мониторинг только тех систем, на которых установлен агент? | ||
- | - Перечислите, какие интерфейсы может использовать Zabbix для мониторинга? | ||
- | - Есть ли возможность осуществлять мониторинг системы, не имеющей поддерживаемых Zabbix интерфейсов? | ||
- | - Что следует использовать в именах триггеров? | ||
- | - Как можно уменьшить количество сообщений системы мониторинга в случае сбоев больших коммутационных узлов? | ||
- | - Для чего нужны пользовательские графики? | ||
- | - Какие возможности, по сравнению с net.tcp.service.perf[http] предоставляют 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 на 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" | ||
- | |||
- | * Обзор шаблона "Template App Zabbix Server"/"Zabbix server health" и применение его к узлу server.corpX.un | ||
- | |||
- | === 4.3 Создание шаблона на основе существующего === | ||
- | |||
- | * [[Сервис Zabbix#Создание своих шаблонов]] на основе "Template App SSH Service"/"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> | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Чем шаблоны лучше клонирования? | ||
- | - Что следует использовать в именах триггеров? | ||
- | - Что можно использовать в качестве переменных в выражениях элементов? | ||
- | - Как работает переопределение и наследование макросов? | ||
- | - Какой синтаксис у макроса? | ||
- | - Что произойдет с объектами узла, при изменении описывающего их шаблона? | ||
- | - Можно ли поменять значение объекта узла, описанного шаблоном? | ||
- | - Как обеспечить безопасную связь между zabbix агентом и сервером? | ||
- | |||
- | ===== Модуль 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 Добавление учетных записей администраторов === | ||
- | |||
- | <code> | ||
- | server# apt install ansible | ||
- | |||
- | server# ansible-playbook conf/ansible/roles/mail.yml | ||
- | </code> | ||
- | |||
- | |||
- | * Создать учетную запись с login/alias student/password ([[https://blog.zabbix.com/handy-tips-25-securing-zabbix-logins-with-password-complexity-settings/19883/|password complexity settings]] или Pa$$w0rdX), Вашим ФИО и, с User type: [[https://www.zabbix.com/documentation/current/ru/manual/config/users_and_usergroups/permissions|"Zabbix Super Admin"]] | ||
- | * Включить student в группу "Zabbix administrators" (см. следующий пункт) | ||
- | |||
- | === 5.2 Настройка уведомлений о событиях === | ||
- | |||
- | * Можно создать группу "Don t disturb" и переместить в нее пользователя Admin, что бы Zabbix не отправлял ему сообщений | ||
- | * Продемонстрировать на преподавательском стенде звуковые уведомления в браузере (в настройках профиля) | ||
- | * [[Сервис Zabbix#Настройка уведомлений о событиях]] (Email, XMPP, PSTN) | ||
- | * [[https://youtu.be/XYeVj1unjfc|Мастер класс: Zabbix Вам позвонит и расскажет...]] | ||
- | |||
- | |||
- | === 5.3 Добавление учетных записей службы поддержки === | ||
- | |||
- | Задание на дом:) | ||
- | |||
- | * Создать группу "Zabbix responsible" | ||
- | * Назначить группе "Zabbix responsible" права на чтение элементов групп Linux servers и External Hosts. Это нужно также для получение уведомлений о срабатывании триггеров этих элементов. | ||
- | * Создать учетную запись user1/password1 с User type: "Zabbix User" и включить его в группу "Zabbix responsible" | ||
- | * user1 должен иметь права на просмотр результатов мониторинга через Web интерфейс и должен получать уведомления по электронной почте. | ||
- | |||
- | === 5.4 Настройка публичного доступа к информации в Zabbix === | ||
- | |||
- | См. модуль 11 | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Где можно посмотреть, какие уведомления были отправлены 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#Пример простого скрипта]] [[Сервис speedtest]] | ||
- | |||
- | Недостаток технологии | ||
- | |||
- | * Время выполнения некоторых заданий, [[Сервис Zabbix#Пример скрипта, требующего повышения привилегий]], для отслеживания изменений nmap отпечатков систем, может превышать 30 секунд | ||
- | |||
- | Альтернативные решения | ||
- | |||
- | * [[Сервис Zabbix#Элементы типа trapper]] [[Сервис speedtest]] | ||
- | |||
- | Обсудить решение задачи отслеживания изменений nmap отпечатков систем с использованием элемента типа traper | ||
- | |||
- | * Добавление текстового [[Сервис Zabbix#Элементы типа trapper]] для хранения отпечатка | ||
- | * Отслеживание изменения отпечатка через [[Сервис Zabbix#Пример с текстовым элементом]] для триггера | ||
- | * Сравнение отпечатков в сообщениях путем [[Сервис Zabbix#Добавление информации о значении элемента в сообщение]] | ||
- | |||
- | === 6.2 Варианты получения результатов из внешних программ/скриптов на удаленных узлах === | ||
- | |||
- | * [[Сервис DHCP#Статистика DHCP сервера]] | ||
- | * Обсудить [[Сервис Zabbix#Пример запуска скрипта на удаленной системе]] с использованием SSH | ||
- | * [[Сервис Zabbix#Использование UserParameter]] в zabbix-agent для получения результатов из внешних приложений, на примере мониторинга количества выданных ip сервисом DHCP | ||
- | * [[Сервис DHCP#Поиск посторонних DHCP серверов]] | ||
- | * Обсудить использование [[Сервис Zabbix#Вычисляемые элементы]] для учета процента выданных адресов | ||
- | * Обсудить необходимость вычисляемых элементов для добавления к узлу gate графика процента выданных адресов | ||
- | * Обсудить необходимость вычисляемых элементов дла настройки триггера, срабатывающего при достижении 80-ти процентов | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Какое ограничение накладывает zabbix на выполнение внешних скриптов? | ||
- | - Какие варианты имеются для запуска скриптов на удаленных системах из 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->...->Items | ||
- | ->Triggers | ||
- | ->Graphs | ||
- | ->Discovery rules | ||
- | ->Mounted filesystem discovery: ... | ||
- | ->Network interface discovery: ... | ||
- | </code> | ||
- | |||
- | Фильтрация элементов | ||
- | |||
- | Zabbix 4 | ||
- | <code> | ||
- | Administration->General->Regular expressions | ||
- | </code> | ||
- | |||
- | Zabbix 5 - унаследованные макросы | ||
- | |||
- | === 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]] | ||
- | |||
- | |||
- | |||
- | * Импорт инструкции по развертыванию и дополнительных материалов | ||
- | |||
- | <code> | ||
- | gate# git clone https://github.com/valbmsturu/zabbix_dhcp_pools.git | ||
- | |||
- | gate# cd zabbix_dhcp_pools/ | ||
- | |||
- | gate# ./install.sh | ||
- | |||
- | 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]] | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Придумайте свои варианты задач, при которых может понадобиться 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 Настройка инвентаризации === | ||
- | |||
- | * Настройка автоматического сбора инвентарных данных для систем gate и server !!!Работает с задержкой!!! | ||
- | * На уровне шаблона Template Module Linux generic by Zabbix agent настроить использование элемента "Software installed/system.sw.packages" для инвентарного поля "Software (Full details)" | ||
- | |||
- | === 8.2 Установка агента на Windows client === | ||
- | |||
- | * [[Сервис Zabbix#Установка агента в Windows]] | ||
- | |||
- | |||
- | Демонстрирует преподаватель | ||
- | |||
- | * Временно отключить 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 обрано, и, не хотим настраивать исключения. | ||
- | |||
- | * Может измениться 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 Использование активного режима агента === | ||
- | |||
- | * Для Zabbix 4 - Клонирование шаблона "Template OS Windows by Zabbix agent" и подготовка его для агентов, работающих в активном режиме | ||
- | |||
- | * [[Сервис Zabbix#Настройка авторегистрации систем с агентами, работающими в активном режиме]] | ||
- | * [[Сервис 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]] | ||
- | * Шаблон для Zabbix 5: conf/zabbix/zabbix/Template_OS_Windows_list_installed_soft_Active_5.xml | ||
- | |||
- | * Сравнение списков ПО с помощью [[Сервис Zabbix#Добавление информации о значении элемента в сообщение]] | ||
- | |||
- | * Домашнее задание - отключить уведомления о включении/выключении (...just been restarted..., Zabbix agent on ... is unreachable...) клиентских компьютеров | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Чем отличается активный режим от пассивного в zabbix агенте? | ||
- | - Придумайте варианты конфигураций сети, при которых необходимо использовать активный режим агента 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#Использование интерфейса SMNP для мониторинга]] Communigate Pro | ||
- | |||
- | === 9.3 Настройка мониторинга систем по протоколу SNMP в zabbix === | ||
- | |||
- | * [[Сервис SNMP#Установка пакета net-snmp]] на server | ||
- | * [[Сервис SNMP#Варианты использования snmp консоли в режиме чтения]] на server | ||
- | |||
- | Демонстрирует преподаватель (для ускорения демонстрации уменьшить интервалы времени до 1 минуты) | ||
- | |||
- | * [[Сервис Zabbix#Мониторинг по протоколу SNMP]] системы router1.isp.un | ||
- | |||
- | === 9.4 Автоматический поиск и добавление устройств в Zabbix === | ||
- | |||
- | * Удалить все routerN.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> | ||
- | |||
- | * [[Сервис SNMP#Установка пакета net-snmp]] на gate | ||
- | * [[Сервис SNMP#Варианты использования snmp консоли в режиме чтения]] на gate | ||
- | * [[Сервис Zabbix#Установка и запуск proxy]] на gate | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Что необходимо установить в систему с zabbix для мониторинга оборудования по протоколу SNMP? | ||
- | - В чем отличие процесса автоматического добавления оборудования в этой лабораторной работе от варианта с активным агентом? | ||
- | - Как формируется имя хоста в случае Discovery в версиях zabbix до и после 4.2? | ||
- | - Придумайте свои варианты задач, при которых может понадобиться 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#Доступ к результатам мониторинга]] | ||
- | * [[Сервис Zabbix#Оформление запросов в виде BASH скриптов]] | ||
- | |||
- | === 10.3 Пример практического использования технологии === | ||
- | |||
- | * Задача 1: [[https://youtu.be/ZrNScBG9TnU|Zabbix: топология сети наглядно и автоматически]] | ||
- | |||
- | * Задача 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#Получение списка карт и их элементов из Zabbix]] | ||
- | * [[Сервис Zabbix#Пример изменения конфигурации через Zabbix API]] | ||
- | |||
- | === 10.5 Пример практического использования технологии === | ||
- | |||
- | * [[Zabbix - построение топологии сети]] | ||
- | ==== Вопросы ==== | ||
- | |||
- | - Верно ли что Zabbix API можно использовать для управления результатами мониторинга? | ||
- | - Верно ли что Zabbix API можно использовать для управления конфигурацией системы мониторинга? | ||
- | ===== Модуль 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> | ||
- | Label: ISP | ||
- | Icon: Cloud | ||
- | |||
- | Host: gate.corpX.un | ||
- | Label: {HOST.CONN} | ||
- | </code> | ||
- | |||
- | * Создать линк и подписать параметры входящего и исходящего трафиков | ||
- | |||
- | <code> | ||
- | Out: {gate.corpX.un:net.if.out["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()} | ||
- | Upload: {server.corpX.un:speedtest.upload.last()} | ||
- | </code> | ||
- | |||
- | * Пользователя guest убрать из группы Disabled | ||
- | * Настроить публичный доступ к карте [[http://server/zabbix/zabbix.php?action=map.view&sysmapid=2]] для группы Guests | ||
- | * Предоставить группе Guests права на чтение объектов мониторинга группы узлов Linux servers (Можно сделать отдельную группу Public info и включить в нее узлы, элементы которых будут дотступны публично) | ||
- | |||
- | === 11.2 Использование экранов === | ||
- | |||
- | * Создать экран Name: ISP Screen 2x2, содержащий карту (на 2 строки) и графики загрузки и скорости интернет канала | ||
- | * Вывести экран в режиме киоска [[http://server/zabbix/screens.php?elementid=70&kiosk=1]] | ||
- | * !!! В версии 6.0 переедут в раздел "панели" | ||
- | |||
- | === 11.3 Использование панелей === | ||
- | |||
- | * Обзор возоможностей в процессе восстановления работоспособности панели "Zabbix server health", добавить виджет с графиками скорости Интернет за последние 10 часов, сделать панель публичной | ||
- | |||
- | ===== Модуль 12: Обновление Zabbix ===== | ||
- | |||
- | * [[Сервис Zabbix#Установка и запуск сервера]] новой версии | ||
- | |||
- | <code> | ||
- | # systemctl restart zabbix-server.service | ||
- | |||
- | # tail -f /var/log/zabbix/zabbix_server.log | ||
- | </code> |