====== Zabbix. Мониторинг IT инфраструктуры предприятия ====== ===== Цель обновления ===== - Оптимизировать программу - Мониторинг Linux/Windows рабочих станций ===== Ссылка на вебинар ===== ===== Программа курса ===== ===== Модуль 0. Подготовка стенда в классе ===== * Узнать свой номер стенда ===== Модуль 1: Развертывание IT инфраструктуры предприятия ===== ==== Теория ==== * [[http://ru.wikipedia.org/wiki/Управление_компьютерной_сетью|Управление компьютерной сетью]] ==== Лабораторные работы: Развертывание объектов мониторинга ==== Настраиваем необходимый для мониторинга минимум из курса [[Администрирование сервисов UNIX]] === 1.1 Схема стенда, импорт, настройка и запуск VM gate и server === * Для локальной сети использовать VirtualBox Host-Only Ethernet Adapter (понадобится в лабораторной работе про простые проверки) Запустите с правами 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 === 1.2 Настройка сети VM gate и server === * [[Настройка стендов слушателей#Настройка виртуальных систем Unix]] с использованием [[Настройка стендов слушателей#Скрипты автоконфигурации]] * gate # sh net_gate.sh # init 6 * server # sh net_server.sh # init 6 * Создать в Putty профили gate, server и подключиться === 1.3 настройка сервисов DNS и DHCP === * [[Сервис DHCP]] (понадобится в лабораторной работе про LLD) gate:~# sh conf/dhcp.sh * [[Финальная настройка DNS сервера]] (понадобится в лабораторной работе про простые проверки) server:~# sh conf/dns.sh * Настройка клиента DNS на gate и server # cat /etc/resolv.conf search corpX.un nameserver 192.168.X.10 # nslookup ns * Импорт и запуск систем 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 Host name: ya.ru ЛЮБОЙ ИНТЕРФЕЙС: DNS ya.ru New group: External Hosts * Настройка элемента типа "[[Сервис Zabbix#Простые проверки]]" отзывчивости https://ya.ru * Визуализация данных Monitoring->Hosts->Latest data ya.ru->check perf http ya.ru Zoom: 1h * Удаляем узел (можно оставить, для сравнения с конечным результатом в конце курса) "Zabbix server" и создаем новый server.corpX.un с адресом 127.0.0.1 и любым интерфейсом * Преподаватель демонстрирует возможность сгруппировать простые проверки внешних систем в общем узле на примере [[Сервис Zabbix#Простые проверки]] доступности системы gate.isp.un и сервиса RDP на admin/host windows через server.corpX.un === 3.2 Web сценарии === * Используя [[Сервис Ansible]] разворачиваем почтовый сервер server# apt install ansible server# ansible-playbook conf/ansible/roles/mail.yml * [[https://youtu.be/yy1T2bDMy54|Вебинар: Zabbix - мониторинг Web приложений]] === 3.3 Триггеры в Zabbix === * Преподаватель демонстрирует [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности gate.isp.un и rdp сервиса * [[Сервис Zabbix#Настройка триггеров]] уведомляющего о недоступности ya.ru (обсудить использование встроенных макросов в именах триггеров и вернуться к этому вопросу в модуле 4 при клонировании ya.ru в val.bmstu.ru * Эмуляция сбоя gate:~# ifdown eth1 * Отчет о проблемах Monitoring->Triggers или Monitoring->Problems * Преподаватель демонстрирует возможность настроить зависимость триггеров на примере недоступности gate.isp.un/ya.ru gate:~# ifup eth1 * Обсуждение [[Сервис 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 указываем новый порт и перезапускаем сервис или, методически, проще использовать эти команды: gate# /usr/sbin/sshd -p 2222 gate# kill `cat /var/run/sshd.pid` ==== Вопросы ==== - Чем 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) http://192.168.X.10/mail/ * 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)]] Configuration->Hosts->gate.corpX.un ->Discovery rules ->Block devices discovery: ... ->Mounted filesystem discovery: ... ->Network interface discovery: ... Фильтрация элементов Zabbix <= 4 Administration->General->Regular expressions Zabbix >= 5 - унаследованные макросы ({$VFS.FS.FSTYPE.MATCHES}, например) === 7.2 Использование LLD для учета статистики выданных адресов по DHCP в множестве подсетей === * Методическая рекомендация - удалить узел gate.corpX.un и добавить его заново, после создания нового шаблона Демонстрирует преподаватель * Добавление подсетей (LAN2-eth2-VBox Внутренняя сеть) в сервис DHCP (можно после создания и применения шаблона) 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 * Разработки шаблона, использующего LLD для учета [[Сервис Zabbix#Статистика DHCP сервера]] в множестве подсетей * Экспорт шаблона ([[Сервис Zabbix#Экспорт/импорт в XML]]), размещение его и всего необходимого в, например, [[Сервис Git#github.com]] * Импорт инструкции и всего необходимого для развертывания 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] * Импорт шаблона [[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 - не работает, согласно записям в журнале: # 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 ... === 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]] server# zabbix_get -s 192.168.X.1NN -p 10050 -k listinstalledsoft === 8.6 Настройка инвентаризации === * Разработка шаблона "Template OS Windows list installed soft Active" с элементом listinstalledsoft, заполняющим инвентарное поле "Software (Full details)" и триггером, информирующем об изменении состава установленного ПО, используя [[Сервис Zabbix#Пример с текстовым элементом]] conf/zabbix/zabbix/Template_OS_Windows_list_installed_soft_Active_5.xml (!!! не смотря на название, подходит для 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]] 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 === 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 для решения проблем с доступом к объектам мониторинга === !!!Работает с задержкой!!! configure terminal no ip route 0.0.0.0 0.0.0.0 172.16.1.254 * [[Сервис 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), и добавить два элемента Icon: Cloud(96) Label: ISP Host: gate.corpX.un Label: {HOST.CONN} * Через Ctrl выделить элементы, добавить Link и подписать его значениями трафика 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()} 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)} * Предоставить публичный доступ к карте === 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#Установка и запуск сервера]] новой версии * [[https://youtu.be/ML971zjJW4A|Видеоурок: Zabbix 7, как обновиться и что поменялось]] # systemctl restart zabbix-server.service # tail -f /var/log/zabbix/zabbix_server.log ... 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 ...