User Tools

Site Tools


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

This is an old revision of the document!


Zabbix. Мониторинг IT инфраструктуры предприятия NEW

Ссылка на вебинар

Программа курса

План обновлений

  1. Запись для ОО с установкой из репозитория zabbix 6-й версии
  2. Убрать устаревший материал
  3. External Check - простой пример, Trap - speed test

Модуль 0. Подготовка стенда в классе

  • Узнать свой номер стенда
  • Удалить виртуалки (сделано)
  • Удалить профили putty (сделано)
  • Отключить не используемые адаптеры (сделано)
  • Записать логин пароль и IP (сообщить преподавателю) рабочей станции (сделано)
  • Проверить наличие дистрибутивов и образов (будет сделано)

Модуль 1: Развертывание IT инфраструктуры предприятия

Теория

Лабораторные работы: Развертывание объектов мониторинга

Настраиваем необходимый для мониторинга минимум из курса Администрирование сервисов UNIX

1.1 Схема стенда, импорт, настройка и запуск VM gate и server

  • Для локальной сети использовать VirtualBox Host-Only Ethernet Adapter (понадобится в лабораторной работе про простые проверки)
Запустите с правами Administrator

C:\cmder\Cmder.exe

λ bash

λ cd

λ test -d conf && rm -r conf

λ git clone http://val.bmstu.ru/unix/conf.git

λ cd conf/virtualbox/

λ ./setup.sh X

1.2 Настройка сети VM gate и server

  • 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
server:~# sh conf/dns.sh
  • Настройка клиента DNS на gate и server
# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.10
# nslookup ns
  • Импорт и запуск системы client1

Модуль 2: Установка компонентов Zabbix

Теория

Лабораторные работы: Развертывание компонентов Zabbix

<​code>​ server# cat .bashrc … export http_proxy=http:​proxy:​3128/​ … </​code>​ * Установка и запуск сервера на server * Установка и запуск web интерфейса (zabbix-frontend) на server * Подключение к frontend для Настройка мониторинга * Мониторинг с использованием Zabbix agents (выполнить в модуле 4) ==== Вопросы ==== - Какие версии Zabbix рекомендуются к использованию? - Для каких задач используется Zabbix? - Перечислите компоненты системы Zabbix. ===== Модуль 3: Базовые сущности Zabbix ===== ==== Теория ==== * Сравнение с Сервис MRTG, Сервис Cacti и Сервис Nagios * Zabbix Documentation - Узлы сети и группы узлов сети * Zabbix Documentation - Элементы данных * Zabbix Documentation - История и динамика изменений * Zabbix Documentation - Простые проверки * Zabbix Documentation - Веб-мониторинг * Zabbix Documentation - Триггеры * Zabbix Documentation - Выражение триггера * Zabbix Documentation - Зависимости триггеров * Zabbix Documentation - Пользовательские графики ==== Лабораторные работы: Базовые элементы процесса мониторинга ==== === 3.1 Простые проверки в Zabbix === * Добавление узла (host) ya.ru и группы External Hosts <code> Host name: ya.ru ЛЮБОЙ ИНТЕРФЕЙС: DNS ya.ru New group: External Hosts </code> * Настройка элемента типа “Простые проверки” отзывчивости https://ya.ru * Визуализация данных <code> Monitoring→Hosts→Latest data ya.ru→check perf http ya.ru Zoom: 1h </code> * Удаляем узел “Zabbix server” и создаем новый server.corpX.un с адресом 127.0.0.1 и любым интерфейсом * Преподаватель демонстрирует возможность сгруппировать простые проверки внешних систем в общем узле на примере Простые проверки доступности системы gate.isp.un и сервиса RDP на admin/host windows через server.corpX.un === 3.2 Web сценарии === Методически, лучше утром следующего дня * Преподаватель используя Сервис Ansible устанавливает на все стенды почтовый сервис и демонстрирует возможности Zabbix по мониторингу Web сценарии !!! Не забыть добавить триггер === 3.3 Триггеры в Zabbix === * Преподаватель демонстрирует Настройка триггеров уведомляющего о недоступности gate.isp.un и rdp сервиса * Настройка триггеров уведомляющего о недоступности ya.ru * Преподаватель демонстрирует возможность настроить зависимость триггеров на примере недоступности gate.isp.un/ya.ru, обсудить использование встроенных макросов в именах триггеров в модуле 4 при клонировании ya.ru в val.bmstu.ru * Эмуляция сбоя <code> gate:~# ifdown eth1 </code> * Отчет о проблемах <code> Monitoring→Triggers или Monitoring→Problems </code> <code> gate:~# ifup eth1 </code> * Обсуждение Пример триггера основанного на значении элемента в течении периода, уведомляющего о ухудшении качества доступа (Сервис QOS) в Интернет на основании повышения среднего времени ответа за период * Переподаватель демонcтрирует триггер Пример в веб сценарии === 3.4 Графики в Zabbix === * Пользовательские графики (Рассмотрим в 11-м модуле) ==== Вопросы ==== - Верно ли, что система Zabbix позволяет осуществлять мониторинг только тех систем, на которых установлен агент? - Перечислите, какие интерфейсы может использовать Zabbix для мониторинга? - Есть ли возможность осуществлять мониторинг системы, не имеющей поддерживаемых Zabbix интерфейсов? - Что следует использовать в именах триггеров? - Как можно уменьшить количество сообщений системы мониторинга в случае сбоев больших коммутационных узлов? - Для чего нужны пользовательские графики? - Какие возможности, по сравнению с net.tcp.service.perf[http] предоставляют Web сценарии? - Можно ли мониторить работоспособность неуправляемого коммутатора? ===== Модуль 4: Использование шаблонов ===== ==== Теория ==== * Zabbix Documentation - Zabbix агент * Zabbix Documentation - Макросы * Zabbix Documentation - Шаблоны ==== Лабораторные работы: Управление конфигурацией с помощью шаблонов ==== === 4.1 Клонирование узлов (хостов) === * Создать узел val.bmstu.ru через Full Clone узла ya.ru (обратить внимание на использование {HOST.NAME} в именах триггеров) === 4.2 Использование готовых шаблонов === * Установка zabbix agent на gate (Мониторинг с использованием Zabbix agents) * Обзор шаблона “Template OS Linux by Zabbix agent”/“Linux by Zabbix agent” и “Template Module Zabbix agent”/“Zabbix agent” * Добавление узла gate.corpX.un в мониторинг и применение к нему шаблона “Template OS Linux by Zabbix agent”/“Linux by Zabbix agent” * Преподаватель демонстрирует вариант безопасного подключения к агенту с использованием механизма PSK * Мониторинг с использованием Zabbix agents на server.corpX.un - комментируем или исправляем Hostname=server.corpX.un и добавляем к нему шаблон “Template OS Linux by Zabbix agent”/“Linux by Zabbix agent” * Обзор шаблона “Template App Zabbix Server”/“Zabbix server health” и применение его к узлу server.corpX.un === 4.3 Создание шаблона на основе существующего === * Создание своих шаблонов на основе “Template App SSH Service”/“SSH Service” с добавлением макроса, определяющего порт сервиса * Назначаем шаблон узлам gate.corpX.un и server.corpX.un(при желании) * Переопределяем значение макроса {$SSH_PORT}, указав значение, например, 2222 для узла gate.corpX.un и ждем (рассчитать время) срабатывания триггера * После срабатывания триггера, в (Настройка ssh сервера) на gate указываем новый порт и перезапускаем сервис или, методически, проще использовать эти команды: <code> gate# /usr/sbin/sshd -p 2222 gate# kill `cat /var/run/sshd.pid` </code> ==== Вопросы ==== - Чем шаблоны лучше клонирования? - Что следует использовать в именах триггеров? - Что можно использовать в качестве переменных в выражениях элементов? - Как работает переопределение и наследование макросов? - Какой синтаксис у макроса? - Что произойдет с объектами узла, при изменении описывающего их шаблона? - Можно ли поменять значение объекта узла, описанного шаблоном? - Как обеспечить безопасную связь между zabbix агентом и сервером? ===== Модуль 5: Управление учетными записями и уведомлениями ===== ==== Теория ==== * Zabbix Documentation - Права доступа * Zabbix Documentation - Группы пользователей * Zabbix Documentation - Получение оповещения о проблеме * Протокол SMTP * Zabbix Documentation - Звук в браузерах ==== Лабораторные работы: Настройка уведомлений о событиях ==== === 5.1 Добавление учетных записей администраторов === <code> server# apt install ansible server# ansible-playbook conf/ansible/roles/mail.yml </code> * Создать учетную запись с login/alias student/password (password complexity settings или Pa$$w0rdX), Вашим ФИО и, с User type: "Zabbix Super Admin" * Включить student в группу “Zabbix administrators” (см. следующий пункт) === 5.2 Настройка уведомлений о событиях === * Можно создать группу “Don t disturb” и переместить в нее пользователя Admin, что бы Zabbix не отправлял ему сообщений * Продемонстрировать на преподавательском стенде звуковые уведомления в браузере (в настройках профиля) * Настройка уведомлений о событиях (Email, XMPP, PSTN) * Мастер класс: Zabbix Вам позвонит и расскажет... === 5.3 Добавление учетных записей службы поддержки === Задание на дом:) * Создать группу “Zabbix responsible” * Назначить группе “Zabbix responsible” права на чтение элементов групп Linux servers и External Hosts. Это нужно также для получение уведомлений о срабатывании триггеров этих элементов. * Создать учетную запись user1/password1 с User type: “Zabbix User” и включить его в группу “Zabbix responsible” * user1 должен иметь права на просмотр результатов мониторинга через Web интерфейс и должен получать уведомления по электронной почте. === 5.4 Настройка публичного доступа к информации в Zabbix === См. модуль 11 ==== Вопросы ==== - Где можно посмотреть, какие уведомления были отправлены zabbix? - Какие варианты отправки уведомлений имеются в zabbix? ===== Модуль 6: Внешние проверки и пользовательские параметры ===== ==== Теория ==== * Zabbix Documentation - Внешние проверки * Zabbix Documentation - Пользовательские параметры * Zabbix Documentation - Вычисляемые элементы данных ==== Лабораторные работы: Мониторинг с использование внешних программ/скриптов ==== === 6.1 Варианты получения результатов из внешних программ/скриптов на zabbix сервере === Демонстрирует преподаватель * Внешние проверки * Пример простого скрипта Сервис speedtest Недостаток технологии * Время выполнения некоторых заданий, Пример скрипта, требующего повышения привилегий, для отслеживания изменений nmap отпечатков систем, может превышать 30 секунд Альтернативные решения * Элементы типа trapper Сервис speedtest Обсудить решение задачи отслеживания изменений nmap отпечатков систем с использованием элемента типа traper * Добавление текстового Элементы типа trapper для хранения отпечатка * Отслеживание изменения отпечатка через Пример с текстовым элементом для триггера * Сравнение отпечатков в сообщениях путем Добавление информации о значении элемента в сообщение === 6.2 Варианты получения результатов из внешних программ/скриптов на удаленных узлах === * Статистика DHCP сервера * Обсудить Пример запуска скрипта на удаленной системе с использованием SSH * Использование UserParameter в zabbix-agent для получения результатов из внешних приложений, на примере мониторинга количества выданных ip сервисом DHCP * Поиск посторонних DHCP серверов * Обсудить использование Вычисляемые элементы для учета процента выданных адресов * Обсудить необходимость вычисляемых элементов для добавления к узлу gate графика процента выданных адресов * Обсудить необходимость вычисляемых элементов дла настройки триггера, срабатывающего при достижении 80-ти процентов ==== Вопросы ==== - Какое ограничение накладывает zabbix на выполнение внешних скриптов? - Какие варианты имеются для запуска скриптов на удаленных системах из zabbix? - Как можно передать в zabbix результаты, получаемые в течении длительного времени? ===== Модуль 7: Низкоуровневое обнаружение (LLD) ===== ==== Теория ==== * Zabbix Documentation. Низкоуровневое обнаружение * Мониторинг производительности дисковой подсистемы при помощи zabbix и block stat * github grundic/zabbix-disk-performance * Zabbix Documentation - Регулярные выражения * Формат JSON * Формат XML * * Самый простой, но очень полезный пример использования низкоуровнего обнаружения (LLD) в Zabbix ==== Лабораторные работы: Управление конфигурацией с помощью шаблонов и LLD ==== === 7.1 Знакомство с LLD === * Low-Level Discovery (LLD) <code> Configuration→Hosts→…→Items →Triggers →Graphs →Discovery rules →Mounted filesystem discovery: … →Network interface discovery: … </code> Фильтрация элементов Zabbix 4 <code> Administration→General→Regular expressions </code> Zabbix 5 - унаследованные макросы === 7.2 Использование LLD для учета статистики выданных адресов по DHCP в множестве подсетей === * Методическая рекомендация - удалить узел gate.corpX.un и добавить его заново, после создания нового шаблона Демонстрирует преподаватель * Добавление подсетей (LAN2-eth2-VBox Внутренняя сеть) в сервис DHCP (можно после создания и применения шаблона) <code> gate# cat /etc/network/interfaces gate# ifup eth2 gate# cat /etc/default/isc-dhcp-server gate# cat /etc/dhcp/dhcpd.conf gate# service isc-dhcp-server restart </code> * Разработки шаблона, использующего LLD для учета Статистика DHCP сервера в множестве подсетей * Экспорт шаблона (Экспорт/импорт в XML), размещение его и дополнительных материалов в Интернет с использованием Сервис Git * Импорт инструкции по развертыванию и дополнительных материалов <code> gate# git clone https://github.com/valbmsturu/zabbix_dhcp_pools.git gate# cd zabbix_dhcp_pools/ gate# ./install.sh server# zabbix_get -s gate -k dhcp.pools.discovery | jq server# zabbix_get -s gate -k dhcp.pools.shared-network[LAN1,used] </code> * Импорт шаблона https://github.com/valbmsturu/zabbix_dhcp_pools ==== Вопросы ==== - Придумайте свои варианты задач, при которых может понадобиться LLD. - Как можно отфильтровать только нужные элементы в процессе discovery? ===== Модуль 8: Автоматическая регистрация и инвентаризация компьютеров ===== ==== Теория ==== * Zabbix Documentation - Инвентарные данные * Варианты использования zabbix-agent в режиме active * Zabbix Documentation - агент на Microsoft Windows * Zabbix Documentation - Пассивные и активные проверки агента * Авторегистрация активных агентов ==== Лабораторные работы: Мониторинг систем с динамическими адресами ==== === 8.1 Настройка инвентаризации === * Настройка автоматического сбора инвентарных данных для систем gate и server !!!Работает с задержкой!!! * На уровне шаблона Template Module Linux generic by Zabbix agent настроить использование элемента “Software installed/system.sw.packages” для инвентарного поля “Software (Full details)” === 8.2 Установка агента на Windows client === * Установка агента в Windows Демонстрирует преподаватель * Временно отключить windows firewall и проверить связь с агентом <code> server# zabbix_get -s 192.168.X.1NN -p 10050 -k agent.version </code> Делаем все * Открыть в nodepad++, запущенном с правами Администратора, файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf * Использование UserParameter для инвентаризации установленного ПО Преподаватель демонстрирует как выглядит список ПО <code> server# zabbix_get -s 192.168.X.1NN -p 10050 -k listinstalledsoft </code> === 8.3 Проблемы мониторинга windows систем с динамическими адресами === * Преподаватель включает firewall обрано, и, не хотим настраивать исключения. * Может измениться IP адрес (для демонстрации можно сменить mac адрес) * LLD использует имя системы, и, если его нет в DNS - не работает, согласно записям в журнале: <code> # grep 192.168.X.102 /var/log/zabbix/zabbix_server.log … 12202:20190605:125020.551 cannot send list of active checks to “192.168.X.102”: host [CLIENT1] not found … </code> === 8.4 Использование активного режима агента === * Для Zabbix 4 - Клонирование шаблона “Template OS Windows by Zabbix agent” и подготовка его для агентов, работающих в активном режиме * Настройка авторегистрации систем с агентами, работающими в активном режиме * Настройка агента на активный режим * Разработка шаблона “Template OS Windows list installed soft Active” с элементом listinstalledsoft, заполняющим инвентарное поле “Software (Full details)” и триггером, информирующем об изменении состава установленного ПО, используя Пример с текстовым элементом * Оба шаблона для Zabbix 4: https://val.bmstu.ru/unix/conf.git/conf/zabbix/Template_Windows_Agent_Soft_Active.xml * Шаблон для Zabbix 5: conf/zabbix/zabbix/Template_OS_Windows_list_installed_soft_Active_5.xml * Сравнение списков ПО с помощью Добавление информации о значении элемента в сообщение * Домашнее задание - отключить уведомления о включении/выключении (…just been restarted…, Zabbix agent on … is unreachable…) клиентских компьютеров ==== Вопросы ==== - Чем отличается активный режим от пассивного в zabbix агенте? - Придумайте варианты конфигураций сети, при которых необходимо использовать активный режим агента zabbix. ===== Модуль 9: Мониторинг систем по протоколу SNMP ===== ==== Теория ==== * Протокол SNMP - Wikipedia * Zabbix Documentation - Обнаружение * Zabbix Documentation - Прокси ==== Лабораторные работы: Мониторинг сетевого оборудования ==== === 9.1 Развертывание сетевого оборудования с поддержкой SNMP === Демонстрирует преподаватель * Используются Материалы по GNS и фрагменты курса Linux. Мониторинг оборудования и интеграция с Cisco <code> configure terminal hostname routerN interface FastEthernet0/0 ip address 172.16.1.19N 255.255.255.0 duplex full no shutdown ip route 0.0.0.0 0.0.0.0 172.16.1.254 ip name-server 172.16.1.254 ip domain-name isp.un ip domain-lookup snmp-server community public RO end copy running-config startup-config </code> === 9.2 Настройка интерфейса SNMP в системах === * Обсуждение на примере Использование интерфейса SMNP для мониторинга Communigate Pro === 9.3 Настройка мониторинга систем по протоколу SNMP в zabbix === * Установка пакета net-snmp на server * Варианты использования snmp консоли в режиме чтения на server Демонстрирует преподаватель (для ускорения демонстрации уменьшить интервалы времени до 1 минуты) * Мониторинг по протоколу SNMP системы router1.isp.un === 9.4 Автоматический поиск и добавление устройств в Zabbix === * Удалить все routerN.isp.un из Zabbix * Автоматическое добавление * Обсудить Preprocessing для элементов Interface Fa0/0(): Bits sent === 9.5 Использование Zabbix proxy для преодоления проблем с доступом к объектам мониторинга === !!!Работает с задержкой!!! <code> configure terminal no ip route 0.0.0.0 0.0.0.0 172.16.1.254 </code> * Установка пакета net-snmp на gate * Варианты использования snmp консоли в режиме чтения на gate * Установка и запуск proxy на gate ==== Вопросы ==== - Что необходимо установить в систему с zabbix для мониторинга оборудования по протоколу SNMP? - В чем отличие процесса автоматического добавления оборудования в этой лабораторной работе от варианта с активным агентом? - Как формируется имя хоста в случае Discovery в версиях zabbix до и после 4.2? - Придумайте свои варианты задач, при которых может понадобиться Zabbix Proxy ===== Модуль 10: Zabbix API ===== ==== Теория ==== * Материал из Википедии. JSON * Zabbix Documentation - Начало работы с Zabbix API * Zabbix Documentation - API * Zabbix Documentation - Справочник методов * api key lifetime ==== Лабораторные работы: Пример задачи, использующей Zabbix API ==== === 10.1 Подключение и аутентификация === * Аутентификация === 10.2 Примеры запросов на чтение информации о настройках объектов мониторинга === * Работа с объектами host/template * Доступ к результатам мониторинга * Оформление запросов в виде BASH скриптов === 10.3 Пример практического использования технологии === * Задача 1: Zabbix: топология сети наглядно и автоматически * Задача 2: сканировать через nmap определенные узлы и уведомлять, если результаты сканирования изменились Решение: * Создать шаблон "My Template Nmap" с Элементы типа trapper и триггером (см. Пример с текстовым элементом) * Подключить его к узлам, которые надо мониторить (перед подключением к узлу, удалить элемент 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 <code> # cat /root/nmap_2_zabbix.sh </code><code> #!/bin/sh while read host do echo $host zabbix_sender -z 127.0.0.1 -p 10051 -s $host -k my.nmap \ -o “$(/root/detect_host_nmap.sh $host)” done </code><code> # /root/nmap_2_zabbix.sh < /root/hosts_nmap.txt </code> === 10.4 Пример изменения конфигурации объектов мониторинга через Zabbix API === * Получение списка карт и их элементов из Zabbix * Пример изменения конфигурации через Zabbix API === 10.5 Пример практического использования технологии === * Zabbix - построение топологии сети ==== Вопросы ==== - Верно ли что Zabbix API можно использовать для управления результатами мониторинга? - Верно ли что Zabbix API можно использовать для управления конфигурацией системы мониторинга? ===== Модуль 11: Дополнительные возможности визуализации результатов мониторинга в Zabbix ===== ==== Теория ==== * Zabbix Documentation - Настройка карты сети * Zabbix Documentation - Комплексные экраны * Zabbix Documentation - ПАНЕЛЬ ==== Лабораторные работы ==== === 11.1 Использование карт === * Создать новую карту Name: ISP (w:300, h:600), отобразить подключение к провайдеру <code> Label: ISP Icon: Cloud Host: gate.corpX.un Label: {HOST.CONN} </code> * Создать линк и подписать параметры входящего и исходящего трафиков <code> Out: {gate.corpX.un:net.if.out[“eth1”].last()} In: {gate.corpX.un:net.if.in[“eth1”].last()} Download: {server.corpX.un:speedtest.sh[download].last()} Upload: {server.corpX.un:speedtest.sh[upload].last()} или, если настроены trap Download: {server.corpX.un:speedtest.download.last()} Upload: {server.corpX.un:speedtest.upload.last()} </code> * Пользователя guest убрать из группы Disabled * Настроить публичный доступ к карте http://server/zabbix/zabbix.php?action=map.view&sysmapid=2 для группы Guests * Предоставить группе Guests права на чтение объектов мониторинга группы узлов Linux servers (Можно сделать отдельную группу Public info и включить в нее узлы, элементы которых будут дотступны публично) === 11.2 Использование экранов === * Создать экран Name: ISP Screen 2×2, содержащий карту (на 2 строки) и графики загрузки и скорости интернет канала * Вывести экран в режиме киоска http://server/zabbix/screens.php?elementid=70&kiosk=1 * !!! В версии 6.0 переедут в раздел “панели” === 11.3 Использование панелей === * Обзор возоможностей в процессе восстановления работоспособности панели “Zabbix server health”, добавить виджет с графиками скорости Интернет за последние 10 часов, сделать панель публичной ===== Модуль 12: Обновление Zabbix ===== * Установка и запуск сервера новой версии <code> # systemctl restart zabbix-server.service # tail -f /var/log/zabbix/zabbix_server.log </code>

zabbix._мониторинг_it_инфраструктуры_предприятия_new.1654579202.txt.gz · Last modified: 2022/06/07 08:20 by val