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
Last revision Both sides next revision
zabbix._мониторинг_it_инфраструктуры_предприятия [2022/02/16 06:54]
val
zabbix._мониторинг_it_инфраструктуры_предприятия [2024/04/01 13:36]
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,​ jобсудить использование встроенных макросов в именах триггеров в модуле 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]] +
- +
-=== 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 703: 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_инфраструктуры_предприятия.txt · Last modified: 2024/09/16 13:37 by val