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

Table of Contents

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

Цель обновления

  1. Оптимизировать программу
  2. Мониторинг Linux/Windows рабочих станций

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

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

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

  • Узнать свой номер стенда

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

Теория

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

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

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

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

C:\cmder\Cmder.exe

λ bash

λ cd

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

λ cd conf/virtualbox/

!!! 5 - это номер курса, вместо X укажите Ваш номер стенда, если не помните, спросите преподавателя !!!

λ ./setup.sh X 5

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

  • 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

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

Теория

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

Вопросы

  1. Какие СУБД используются для хранения данных в Zabbix?
  2. Какая версия Zabbix поддерживается в течении долгого времени?
  3. Какой веб сервер может использоваться для работы Zabbix Frontend?
  4. Для каких задач используется Zabbix Frontend?
  5. Для каких задач используется Zabbix Server?
  6. Что содержит пакет zabbix-sql-scripts?
  7. На каком языке программирования написан Zabbix Frontend?
  8. На каком языке программирования написан Zabbix Server?

Модуль 3: Базовые сущности Zabbix

Теория

Лабораторные работы: Базовые элементы процесса мониторинга

3.1 Простые проверки в Zabbix

  • Добавление узла (host) ya.ru и группы External Hosts
Host name: ya.ru
  ЛЮБОЙ ИНТЕРФЕЙС: DNS ya.ru
  New group: External Hosts
  • Визуализация данных
Monitoring->Hosts->Latest data
  ya.ru->check perf http ya.ru
  Zoom: 1h
  • Удаляем узел (можно оставить, для сравнения с конечным результатом в конце курса) “Zabbix server” и создаем новый server.corpX.un с адресом 127.0.0.1 и любым интерфейсом
  • Преподаватель демонстрирует возможность сгруппировать простые проверки внешних систем в общем узле на примере Простые проверки доступности системы gate.isp.un и сервиса RDP на admin/host windows через server.corpX.un

3.2 Web сценарии

server# apt install ansible

server# ansible-playbook conf/ansible/roles/mail.yml

3.3 Триггеры в Zabbix

  • Преподаватель демонстрирует Настройка триггеров уведомляющего о недоступности gate.isp.un и rdp сервиса
  • Настройка триггеров уведомляющего о недоступности ya.ru (обсудить использование встроенных макросов в именах триггеров и вернуться к этому вопросу в модуле 4 при клонировании ya.ru в val.bmstu.ru
  • Эмуляция сбоя
gate:~# ifdown eth1
  • Отчет о проблемах
Monitoring->Triggers
  или
Monitoring->Problems
  • Преподаватель демонстрирует возможность настроить зависимость триггеров на примере недоступности gate.isp.un/ya.ru
gate:~# ifup eth1

Вопросы

  1. Для чего используются объекты Hosts в Zabbix?
  2. Для чего используются объекты Items в Zabbix?
  3. Для чего используются объекты Triggers в Zabbix?
  4. Какие атрибуты помечены как обязательные при создании Host в Zabbix?
  5. Какие интерфейсы для взаимодействия с узлами поддерживает Zabbix?
  6. Перечислите обязательные атрибуты Items в Zabbix?
  7. Есть ли возможность осуществлять мониторинг системы, не имеющей поддерживаемых Zabbix интерфейсов?
  8. Какого типа Items используется для проверок ICMP Echo
  9. Откуда берется адрес целевой системы, если он не указан явно в элементе типа Simple Check?
  10. Какие значения хранятся в Трендах?
  11. За какой период рассчитываются значения Трендов?
  12. Какие атрибуты помечены как обязательные при создании Trigger в Zabbix?
  13. Что следует использовать для уменьшения количества сообщений системы мониторинга в случае сбоев больших коммутационных узлов?
  14. Какие возможности, по сравнению с net.tcp.service.perf[http] предоставляют Web сценарии?
  15. Где описываются Items в Web сценарии?
  16. Можно ли мониторить работоспособность неуправляемого коммутатора?

Модуль 4: Использование шаблонов

Теория

Лабораторные работы: Управление конфигурацией с помощью шаблонов

4.1 Клонирование узлов (хостов)

  • Создать узел val.bmstu.ru через Full Clone узла ya.ru (обратить внимание на использование {HOST.NAME} в именах триггеров)

4.2 Использование zabbix agent для сбора метрик

4.3 Использование готовых шаблонов

  • Обзор шаблона “Linux by Zabbix agent” (выяснить, куда делось наследование шаблонов и кто знает про agent.ping из “Zabbix agent”)
  • Добавление узла gate.corpX.un в мониторинг и применение к нему шаблона “Linux by Zabbix agent”
  • Преподаватель демонстрирует вариант безопасного подключения к агенту с использованием механизма PSK (лучше в конце 7-го модуля)
  • Мониторинг с использованием Zabbix agents на server.corpX.un - комментируем или исправляем Hostname=server.corpX.un и добавляем к нему шаблон “Linux by Zabbix agent” (лучше в конце курса, что бы было проще видеть свои items)
  • Обзор шаблона “Zabbix server health” и применение его к узлу server.corpX.un (лучше в конце курса)

4.4 Создание шаблона на основе существующего

  • Создание своих шаблонов на основе “SSH Service” с добавлением макроса, определяющего порт сервиса
  • Назначаем шаблон узлу gate.corpX.un (и, при желании, server.corpX.un)
  • Переопределяем значение макроса {$SSH_PORT}, указав значение, например, 2222 для узла gate.corpX.un и ждем (рассчитать время) срабатывания триггера
  • После срабатывания триггера, в (Настройка ssh сервера) на gate указываем новый порт и перезапускаем сервис или, методически, проще использовать эти команды:
gate# /usr/sbin/sshd -p 2222

gate# kill `cat /var/run/sshd.pid`

Вопросы

  1. Чем Clone объекта Host отличается от Full Clone?
  2. Для чего нужен Zabbix Agent?
  3. Какой командой можно получить список метрик (ключей), возвращаемых zabbix agent?
  4. Какой утилитой можно получить значения метрик (ключей) с zabbix agent
  5. Какая метрика (ключ) zabbix agent используется для отображения статуса узла?
  6. Перечислите варианты безопасного подключения между zabbix агентом и сервером?
  7. Чем шаблоны лучше клонирования?
  8. Что следует использовать в именах триггеров при описании их в шаблонах или при клонировании узлов?
  9. Что можно использовать в качестве переменных в выражениях элементов?
  10. Как работает переопределение и наследование макросов?
  11. Какой синтаксис у built-in макросов?
  12. Какой синтаксис у user-defined макросов?
  13. Что произойдет с объектами узла, при изменении описывающего их шаблона?
  14. Можно ли поменять параметры объекта узла, описанного шаблоном?
  15. Если поменять параметры объекта узла, описанного шаблоном, а потом те же в шаблоне, какие значения будут в итоге?
  16. Если поменять параметры объекта на уровне шаблона, а потом на уровне узла, какие значения будут в итоге?

Модуль 5: Управление учетными записями и уведомлениями

Теория

Лабораторные работы: Настройка уведомлений о событиях

5.1 Добавление учетных записей администраторов

  • Создать учетную запись с login/alias student/Pa$$w0rd#, Вашим ФИО и, с User role: "Zabbix Super Admin"
  • Включить student в группу “Zabbix administrators” (см. следующий пункт)

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

http://192.168.X.10/mail/

5.3 Добавление учетных записей сотрудников службы поддержки

Задание на дом:)

  • Создать группу “Zabbix responsible”
  • Назначить группе “Zabbix responsible” права на чтение элементов групп Linux servers и/или External Hosts (!!! это нужно и для получение уведомлений о срабатывании триггеров этих узлов)
  • Настроить Trigger Action “Zabbix responsible notification” для уведомлений пользователей группы “Zabbix responsible”
  • Создать учетную запись user1/Pa$$w0rd1 с Role: “User role” и включить его в группу “Zabbix responsible”
  • user1 должен иметь права на просмотр результатов мониторинга через Web интерфейс и должен получать уведомления по электронной почте (Добавление учетной записи).

5.4 Настройка публичного доступа к информации в Zabbix

  • !!! Сделать в 11-м модуле
  • Пользователя guest убрать из группы Disabled
  • Настроить Read-only доступ к объекту (Например, к карте http://server/zabbix/zabbix.php?action=map.view&sysmapid=2) для группы Guests или сделать объект Public
  • Предоставить группе Guests права на чтение элементов объектов мониторинга (сделать отдельную группу Public info и включить в нее узлы, элементы которых будут доступны публично)

Вопросы

  1. Укажите все шаги, необходимые для оправки уведомлений пользователям Zabbix
  2. Роль Guest, User, Admin, SuperAdmin позволяет …
  3. Как может быть использовано членство в группе Zabbix?
  4. Укажите все типы (Type) отправки уведомлений в Zabbix
  5. Для чего нужны права на группы узлов пользователям Zabbix?
  6. Где можно посмотреть, какие уведомления были отправлены Zabbix?
  7. Права какого пользователя используются в Zabbix при подключении к его интерфейсу без авторизации?

Модуль 6: Внешние проверки и пользовательские параметры

Теория

Лабораторные работы: Мониторинг с использование внешних программ/скриптов

6.1 Варианты получения результатов из внешних программ/скриптов на zabbix сервере

Демонстрирует преподаватель

Делаем все, но не запускаем)))

6.2 Варианты получения результатов из внешних программ/скриптов на удаленных узлах

Демонстрирует преподаватель (сделаем качественнее в следующем модуле)

Вопросы

  1. Какое ограничение накладывает Zabbix server на выполнение внешних скриптов?
  2. Какое ограничение накладывает Zabbix agent на выполнение внешних скриптов?
  3. Какой синтаксис UserParameter позволяет указать произвольное число аргументов?
  4. На что влияет UnsafeUserParameters?
  5. Какие варианты имеются для запуска скриптов на удаленных системах из Zabbix?
  6. Как можно передать в Zabbix результаты, получаемые в течении длительного времени?

Модуль 7: Низкоуровневое обнаружение (LLD)

Теория

Лабораторные работы: Управление конфигурацией с помощью шаблонов и LLD

7.1 Знакомство с LLD

Configuration->Hosts->gate.corpX.un
  ->Discovery rules
    ->Block devices discovery: ...
    ->Mounted filesystem discovery: ...
    ->Network interface discovery: ...

Фильтрация элементов

Zabbix ⇐ 4

Administration->General->Regular expressions

Zabbix >= 5 - унаследованные макросы ({$VFS.FS.FSTYPE.MATCHES}, например)

7.2 Использование LLD для учета статистики выданных адресов по DHCP в множестве подсетей

  • Методическая рекомендация - удалить узел gate.corpX.un и добавить его заново, после создания нового шаблона

Демонстрирует преподаватель

  • Добавление подсетей (LAN2-eth2-VBox Внутренняя сеть) в сервис DHCP (можно после создания и применения шаблона)
gate# cat /etc/network/interfaces

gate# ifup eth2

gate# cat /etc/default/isc-dhcp-server

gate# cat /etc/dhcp/dhcpd.conf

gate# service isc-dhcp-server restart
  • Импорт инструкции и всего необходимого для развертывания
gate# git clone https://github.com/valbmsturu/zabbix_dhcp_pools.git

gate# cd zabbix_dhcp_pools/

gate# ./install.sh


server# apt install jq

server# zabbix_get -s gate -k dhcp.pools.discovery | jq

server# zabbix_get -s gate -k dhcp.pools.shared-network[LAN1,used]

Вопросы

  1. В каком формате должен возвращать данные элемент discovery?
  2. Какой синтаксис у low-level discovery макросов?
  3. Перечислите форматы, используемые для импорта/экспорта объектов Zabbix?
  4. Придумайте свои варианты задач, при которых может понадобиться LLD.
  5. Как можно отфильтровать только нужные элементы в процессе discovery?

Модуль 8: Автоматическая регистрация и инвентаризация компьютеров

Теория

Лабораторные работы: Мониторинг и инвентаризация систем с динамическими адресами

8.1 Установка агента на Windows client

  • Для редактирования конфигурации потребуется установить nodepad++, запустить сразу после инсталляции (будет/нужен с правами Администратора) и открыть файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf

8.2 Установка агента на Linux client

8.3 Проблемы мониторинга рабочих станций Linux и Window

  • Windows firewall, не хотим настраивать исключения.
  • Может измениться IP адрес (для демонстрации можно сменить mac адрес)
  • LLD использует имя системы, и, если его нет в DNS - не работает, согласно записям в журнале:
# grep 192.168.X.102 /var/log/zabbix/zabbix_server.log
...
12202:20190605:125020.551 cannot send list of active checks to "192.168.X.102": host [CLIENT1] not found
...

8.4 Использование активного режима агента

8.5 Получение списка ПО на Linux и Windows

server# zabbix_get -s 192.168.X.1NN -p 10050 -k listinstalledsoft

8.6 Настройка инвентаризации

  • Разработка шаблона “Template OS Windows list installed soft Active” с элементом listinstalledsoft, заполняющим инвентарное поле “Software (Full details)” и триггером, информирующем об изменении состава установленного ПО, используя Пример с текстовым элементом
conf/zabbix/zabbix/Template_OS_Windows_list_installed_soft_Active_5.xml 

(!!! не смотря на название, подходит для Linux :)

  • На уровне шаблона Linux by Zabbix agent (+ windows + active) настроить Total memory → Populates host inventory field: Hardware

Вопросы

  1. Чем отличается активный режим от пассивного в Zabbix агенте?
  2. Что означают директивы Server, ServerActive, StartAgents в конфигурации Zabbix агента?
  3. Перечислите обязательные действия при авто регистрации узлов?
  4. Как отличить рабочие станции Linux от Windows при авто регистрации?
  5. Придумайте варианты конфигураций сети, при которых необходимо использовать активный режим агента Zabbix

Модуль 9: Мониторинг систем по протоколу SNMP

Теория

Лабораторные работы: Мониторинг сетевого оборудования

9.1 Развертывание сетевого оборудования с поддержкой SNMP

Демонстрирует преподаватель

configure terminal

hostname routerN
interface FastEthernet0/0
 ip address 172.16.1.19N 255.255.255.0
 duplex full
 no shutdown

ip route 0.0.0.0 0.0.0.0 172.16.1.254

ip name-server 172.16.1.254
ip domain-name isp.un
ip domain-lookup

snmp-server community public RO
end

copy running-config startup-config

9.2 Настройка интерфейса SNMP в системах

9.3 Настройка мониторинга систем по протоколу SNMP в zabbix

Демонстрирует преподаватель (для ускорения демонстрации уменьшить интервалы времени до 1 минуты)

9.4 Автоматический поиск и добавление устройств в Zabbix

9.5 Использование Zabbix proxy для решения проблем с доступом к объектам мониторинга

!!!Работает с задержкой!!!

configure terminal

no ip route 0.0.0.0 0.0.0.0 172.16.1.254

Вопросы

  1. Что необходимо добавить в систему с Zabbix Server или Proxy для мониторинга оборудования по протоколу SNMP с использованием имен OID в текстовом формате?
  2. В чем отличие процесса автоматического добавления оборудования в этой лабораторной работе от варианта с активным агентом?
  3. Для каких задач используется Zabbix Proxy?
  4. В каком режиме работает Zabbix Proxy по умолчанию?
  5. Придумайте свои варианты задач, при которых может понадобиться Zabbix Proxy

Модуль 10: Zabbix API

Теория

Лабораторные работы: Пример задачи, использующей Zabbix API

10.1 Подключение и аутентификация

10.2 Примеры запросов на чтение информации о настройках объектов мониторинга

10.3 Пример изменения конфигурации объектов мониторинга через Zabbix API

10.4 Пример практического использования технологии

Вопросы

  1. Можно ли использовать Zabbix API для получения результатов мониторинга?
  2. Можно ли использовать Zabbix API для управления конфигурацией?
  3. Что необходимо получить перед выполнением запросов к Zabbix API?
  4. Для получения токена доступа используется метод …
  5. Для получения списка узлов используется метод …
  6. Для получения данных мониторинга используется метод …
  7. Для модификации свойств объекта Zabbix используется метод …
  8. user.login host.get history.get map.update

Модуль 11: Дополнительные возможности визуализации результатов мониторинга в Zabbix

Теория

Лабораторные работы

11.1 Использование карт

  • Создать новую карту Name: ISP (w:300, h:600), и добавить два элемента
Icon: Cloud(96)
Label: ISP

Host: gate.corpX.un 
Label: {HOST.CONN}
  • Через Ctrl выделить элементы, добавить Link и подписать его значениями трафика
Zabbix <=5

Out: {gate.corpX.un:net.if.out["eth1"].last()}
In: {gate.corpX.un:net.if.in["eth1"].last()}
Download: {server.corpX.un:speedtest.download.last()}
Upload: {server.corpX.un:speedtest.upload.last()}
Zabbix >=6

Out: {?last(/gate.corpX.un/net.if.out["eth1"])}
In: {?last(/gate.corpX.un/net.if.in["eth1"])}
Download: {?last(/server.corpX.un/speedtest.download)}
Upload: {?last(/server.corpX.un/speedtest.upload)}
  • Предоставить публичный доступ к карте

11.2 Использование панелей (Dashboard)

  • Обзор возможностей в панели “Zabbix server health”
  • Создать виджет “Inet Access”
  • Добавить в него Map: “ISP1”
  • Добавить в него Graph(classic): ISP1 Network Traffic → ISP1 gate.corpX.un: Interface eth1: Network traffic
  • Вместо создания классического Пользовательские графики отображающего скорость интернет канала, добавить в него Graph: “ISP1 Speed”, два Data set: server.corpX.un → speedtest … и Time period: From now-1d
  • Cделать панель публичной (три черточки в правом верхнем углу → Sharing)

Модуль 12: Обновление Zabbix

# systemctl restart zabbix-server.service

# tail -f /var/log/zabbix/zabbix_server.log
...
443024:20221228:113625.301 current database version (mandatory/optional): 06000000/06000017
443024:20221228:113625.301 required mandatory version: 06020000
443024:20221228:113625.301 optional patches were found
443024:20221228:113625.301 starting automatic database upgrade
443024:20221228:113625.306 completed 0% of database upgrade
443024:20221228:113625.372 completed 1% of database upgrade
...
443024:20221228:113637.733 completed 100% of database upgrade
443024:20221228:113637.734 database upgrade fully completed
...
zabbix._мониторинг_it_инфраструктуры_предприятия.txt · Last modified: 2024/04/01 13:36 by val