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

Table of Contents

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

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

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

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

  • Узнать свой номер стенда
  • Удалить виртуалки (сделано)
  • Удалить профили putty (сделано)
  • Отключить не используемые адаптеры (сделано)
  • Настроить VirtualBox Host-Only Ethernet Adapter на адрес 192.168.X.29/255.255.255.0 (будет сделано)
  • Записать логин пароль и IP (сообщить преподавателю) рабочей станции (сделано)
  • Проверить наличие дистрибутивов и образов (будет сделано)

Модуль 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
  • Импорт и запуск системы client1

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

Теория

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

server# cat .bashrc
...
export http_proxy=http://proxy:3128/
...

Вопросы

  1. Какие версии Zabbix рекомендуются к использованию?
  2. Для каких задач используется Zabbix?
  3. Перечислите компоненты системы Zabbix.

Модуль 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 сценарии

Методически, лучше утром следующего дня

  • Преподаватель используя Сервис Ansible устанавливает на все стенды почтовый сервис и демонстрирует возможности Zabbix по мониторингу Web сценарии !!! Не забыть добавить триггер
server# ansible-playbook conf/ansible/roles/mail.yml

3.3 Триггеры в Zabbix

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

3.4 Графики в Zabbix

Вопросы

  1. Верно ли, что система Zabbix позволяет осуществлять мониторинг только тех систем, на которых установлен агент?
  2. Перечислите, какие интерфейсы может использовать Zabbix для мониторинга?
  3. Есть ли возможность осуществлять мониторинг системы, не имеющей поддерживаемых Zabbix интерфейсов?
  4. Что следует использовать в именах триггеров?
  5. Как можно уменьшить количество сообщений системы мониторинга в случае сбоев больших коммутационных узлов?
  6. Для чего нужны пользовательские графики?
  7. Какие возможности, по сравнению с net.tcp.service.perf[http] предоставляют Web сценарии?
  8. Можно ли мониторить работоспособность неуправляемого коммутатора?

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

Теория

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

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”
  • agent.ping
  • (Можно утром следующего дня) Преподаватель демонстрирует вариант безопасного подключения к агенту с использованием механизма PSK
  • (Лучше в конце курса, что бы видеть свои items) Мониторинг с использованием 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 указываем новый порт и перезапускаем сервис или, методически, проще использовать эти команды:
gate# /usr/sbin/sshd -p 2222

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

Вопросы

  1. Чем шаблоны лучше клонирования?
  2. Что следует использовать в именах триггеров?
  3. Что можно использовать в качестве переменных в выражениях элементов?
  4. Как работает переопределение и наследование макросов?
  5. Какой синтаксис у макроса?
  6. Что произойдет с объектами узла, при изменении описывающего их шаблона?
  7. Можно ли поменять значение объекта узла, описанного шаблоном?
  8. Как обеспечить безопасную связь между zabbix агентом и сервером?

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

Теория

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

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

server# apt install ansible

server# ansible-playbook conf/ansible/roles/mail.yml
  • Создать учетную запись с login/alias student/password, Вашим ФИО и, с User type: "Zabbix Super Admin"
  • Включить student в группу “Zabbix administrators” (см. следующий пункт)

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

  • Можно создать группу “Don t disturb” и переместить в нее пользователя Admin, что бы Zabbix не отправлял ему сообщений
  • Продемонстрировать на преподавательском стенде звуковые уведомления в браузере (в настройках профиля)
http://192.168.X.10/mail/

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

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

  • Создать группу “Zabbix responsible”
  • Назначить группе “Zabbix responsible” права на чтение элементов групп Linux servers и External Hosts. Это нужно также для получение уведомлений о срабатывании триггеров этих элементов.
  • Создать учетную запись user1/password1 с User type: “Zabbix User” и включить его в группу “Zabbix responsible”
  • user1 должен иметь права на просмотр результатов мониторинга через Web интерфейс и должен получать уведомления по электронной почте.

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

См. модуль 11

Вопросы

  1. Где можно посмотреть, какие уведомления были отправлены zabbix?
  2. Какие варианты отправки уведомлений имеются в zabbix?

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

Теория

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

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

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

Недостаток технологии

Альтернативные решения

Обсудить решение задачи отслеживания изменений nmap отпечатков систем с использованием элемента типа traper

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

Вопросы

  1. Какое ограничение накладывает zabbix на выполнение внешних скриптов?
  2. Какие варианты имеются для запуска скриптов на удаленных системах из zabbix?
  3. Как можно передать в zabbix результаты, получаемые в течении длительного времени?

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

Теория

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

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

Configuration->Hosts->...->Items
                         ->Triggers
                         ->Graphs
                         ->Discovery rules
                                ->Mounted filesystem discovery: ...
                                ->Network interface discovery: ...

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

Zabbix 4

Administration->General->Regular expressions

Zabbix 5 - унаследованные макросы

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. Придумайте свои варианты задач, при которых может понадобиться LLD.
  2. Как можно отфильтровать только нужные элементы в процессе discovery?

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

Теория

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

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

  • Настройка автоматического сбора инвентарных данных для систем gate и server !!!Работает с задержкой!!!
  • На уровне шаблона Template Module Linux generic by Zabbix agent настроить использование элемента “Software installed/system.sw.packages” для инвентарного поля “Software (Full details)”

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

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

  • Временно отключить windows firewall и проверить связь с агентом
server# zabbix_get -s 192.168.X.1NN -p 10050 -k agent.version

Делаем все

  • Открыть в nodepad++, запущенном с правами Администратора, файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf
  • Использование UserParameter для инвентаризации установленного ПО

Преподаватель демонстрирует как выглядит список ПО

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

8.3 Проблемы мониторинга 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 Использование активного режима агента

  • Для Zabbix 4 - Клонирование шаблона “Template OS Windows by Zabbix agent” и подготовка его для агентов, работающих в активном режиме
  • Домашнее задание - отключить уведомления о включении/выключении (…just been restarted…, Zabbix agent on … is unreachable…) клиентских компьютеров

Вопросы

  1. Чем отличается активный режим от пассивного в zabbix агенте?
  2. Придумайте варианты конфигураций сети, при которых необходимо использовать активный режим агента 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 для мониторинга оборудования по протоколу SNMP?
  2. В чем отличие процесса автоматического добавления оборудования в этой лабораторной работе от варианта с активным агентом?
  3. Как формируется имя хоста в случае Discovery в версиях zabbix до и после 4.2?
  4. Придумайте свои варианты задач, при которых может понадобиться Zabbix Proxy

Модуль 10: Zabbix API

Теория

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

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

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

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

  • Задача 2: сканировать через nmap определенные узлы и уведомлять, если результаты сканирования изменились

Решение:

  • Подключить его к узлам, которые надо мониторить (перед подключением к узлу, удалить элемент my.nmap если остался от предыдущих лабораторных работ).
  • Периодически получать список узлов с шаблоном My Template Nmap (примечание: templateid можно увидеть в строке URL интерфейсе администрирования zabbix)
# cat /root/zab_get_hosts_nmap.sh
#!/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 
# /root/zab_get_hosts_nmap.sh | tee /root/hosts_nmap.txt
# cat /root/nmap_2_zabbix.sh
#!/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
# /root/nmap_2_zabbix.sh < /root/hosts_nmap.txt

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

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

Вопросы

  1. Верно ли что Zabbix API можно использовать для управления результатами мониторинга?
  2. Верно ли что Zabbix API можно использовать для управления конфигурацией системы мониторинга?

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

Теория

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

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

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

Host: gate.corpX.un 
Label: {HOST.CONN}
  • Создать линк и подписать параметры входящего и исходящего трафиков
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()}

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)}
  • Пользователя 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

# systemctl restart zabbix-server.service

# tail -f /var/log/zabbix/zabbix_server.log
zabbix._мониторинг_it_инфраструктуры_предприятия.txt · Last modified: 2022/11/22 12:29 by val