User Tools

Site Tools


zabbix._мониторинг_it_инфраструктуры_предприятия

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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