====== 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
...