Zabbix. Мониторинг IT инфраструктуры предприятия
Программа курса
Модуль 0. Подготовка стенда в классе
Узнать свой номер стенда
Удалить виртуалки
Удалить профили putty
Отключить не используемые адаптеры
Записать логин пароль и IP (сообщить преподавателю) рабочей станции
Проверить наличие дистрибутивов и образов
Модуль 1: Развертывание IT инфраструктуры предприятия
Теория
Лабораторные работы: Развертывание объектов мониторинга
Модуль 2: Установка компонентов Zabbix
Теория
Лабораторные работы: Развертывание компонентов Zabbix
Вопросы
Какие версии Zabbix рекомендуются к использованию?
Для каких задач используется Zabbix?
Перечислите компоненты системы Zabbix.
Модуль 3: Базовые сущности Zabbix
Теория
Лабораторные работы: Базовые элементы процесса мониторинга
Monitoring->Latest data
ya.ru->check perf http ya.ru
Zoom: 1h
Простые проверки доступности системы gate.isp.un и (не обязательно) сервиса RDP на windows client1 через server (методически лучше удалить host “Zabbix server” и добавить host server с адресом 127.0.0.1 и любым интерфейсом)
Настройка триггеров уведомляющего о недоступности gate.isp.un/ya.ru (с зависимостью друг от друга)
Отчет о проблемах
Monitoring->Triggers
или
Monitoring->Problems
gate# apt install wondershaper
gate# wondershaper eth1 10 10
gate# wondershaper eth1
gate# wondershaper clear eth1
Настройка триггеров уведомляющего о ухудшении качества доступа в Интернет на основании повышения среднего времени ответа за период
-
или просто:
Web сценарии (обзор значений в Latest data позволит создать соответствующие триггеры)
# tail -f /var/log/apache2/access.log | grep ast
Вопросы
Верно ли, что система Zabbix позволяет осуществлять мониторинг только тех систем, на которых установлен агент?
Перечислите, какие интерфейсы может использовать Zabbix для мониторинга?
Есть ли возможность осуществлять мониторинг системы, не имеющей поддерживаемых Zabbix интерфейсов?
Как можно уменьшить количество сообщений системы мониторинга в случае сбоев больших коммутационных узлов?
Приведите примеры использования вычисляемых элементов.
Для чего нужны пользовательские графики?
Какие возможности, по сравнению с net.tcp.service.perf[http] предоставляют Web сценарии?
Можно ли мониторить работоспособность неуправляемого коммутатора?
Модуль 4: Использование шаблонов
Теория
Лабораторные работы: Управление конфигурацией с помощью шаблонов
4.1 Клонирование узлов (хостов)
4.2 Использование готовых шаблонов
Обзор шаблона “Template
OS Linux”
-
Применить к созданному host server шаблоны “Template
OS Linux” и “Template App Zabbix Server”
4.3 Создание шаблона на основе существующего
gate# /usr/sbin/sshd -p 2222
gate# kill `cat /var/run/sshd.pid`
Вопросы
Чем шаблоны лучше клонирования?
Что можно использовать к качестве переменных в выражениях триггеров?
Как работает переопределение и наследование макросов?
Какой синтаксис у макроса?
Что произойдет с объектами хостов при изменении описывающего их шаблона?
Можно ли поменять значение объекта хоста, описанного шаблоном?
Как обеспечить безопасную связь между zabbix агентом и сервером?
Модуль 5: Внешние проверки и пользовательские параметры
Теория
Лабораторные работы: Мониторинг с использование внешних программ/скриптов
5.1 Варианты использования внешних программ/скриптов на zabbix сервере
5.2 Настройка мониторинга статистики сервиса DHCP
Configuration->Host->gate
Items
Name: DHCP stat CUR
...
Name: DHCP stat MAX
...
Graphs
Name: DHCP stat CUR MAX
...
Вопросы
Какое ограничение накладывает zabbix на выполнение внешних скриптов?
Какие варианты имеются для запуска скриптов на удаленных системах из zabbix?
Как можно передать в zabbix результаты, получаемые в результате длительного времени?
Модуль 6: Низкоуровневое обнаружение (LLD)
Теория
Лабораторные работы: Управление конфигурацией с помощью шаблонов и LLD
6.1 Первое знакомство с LLD
Configuration->Hosts->...->Items
->Triggers
->Graphs
->Mounted filesystem discovery: ...
->Network interface discovery: ...
Administration->General->Regular expressions
6.2 Создание своего шаблона с LLD
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
Разработка шаблона, использующего
Low-Level Discovery (LLD) для мониторинга использования адресного пространства DHCP сетей (как вариант, преподаватель разрабатывает шаблон и скрипты которые загружают слушатели)
Вопросы
Придумайте свои варианты задач, при которых может понадобиться LLD.
Как можно отфильтровать только нужные элементы в процессе discovery?
Модуль 7: Управление уведомлениями
Теория
Лабораторные работы: Настройка уведомлений о событиях
Создать учетную запись с login/alias userX/passwordX, Вашим ФИО и, с User type: “Zabbix Super Admin”
Включить userX в группу “Zabbix administrators”
-
Задание на дом:)
Создать учетную запись user100+X с User type: “Zabbix User” и группой “Zabbix administrators”
Назначаем группе “Zabbix administrators” права на чтение всех объектов
Вместо группы “Zabbix administrators” использовать новую, созданную “Zabbix responsible”. Члены группы должны иметь права на просмотр результатов мониторинга и должны получать уведомления
Вопросы
Где можно посмотреть, какие уведомления были отправлены zabbix?
Какие варианты отправки уведомлений имеются в zabbix?
Модуль 8: Активная регистрация оборудования
Теория
Лабораторные работы: Мониторинг систем с динамическими адресами
необходимо настроить 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
...
Для решения можно использовать инфраструктуру MS AD, или Настройка поддержки динамических обновлений от DHCP сервера или активный режим агента
Активный режим (клонирование шаблонов и настройка элементов на активный режим агента, настройка авто регистрации систем с активными агентами и настройка агента client1 на активный режим.
Домашнее задание - отключить уведомления о включении/выключении (…just been restarted…, Zabbix agent on … is unreachable…) клиентских компьютеров
Вопросы
Чем отличается активный режим от пассивного в zabbix агенте?
Придумайте варианты конфигураций сети, при которых необходимо использовать активный режим агента zabbix.
Модуль 9: Мониторинг оборудования по протоколу SNMP
Теория
Лабораторные работы: Мониторинг сетевого оборудования
Развертывание оборудования
configure terminal
hostname routerN
interface FastEthernet0/0
ip address 172.16.1.19N 255.255.255.0
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
Настройка мониторинга SNMP устройства в zabbix
Автоматическое добавление
Использование proxy
configure terminal
no ip route 0.0.0.0 0.0.0.0 172.16.1.254
Вопросы
Что необходимо установить в систему с zabbix для мониторинга оборудования по протоколу SNMP?
В чем отличие процесса автоматического добавления оборудования в этой лабораторной работе от варианта с активным агентом?
Как формируется имя хоста в случае Discovery в 3-й и 4-й версии zabbix?
Придумайте свои варианты задач, при которых может понадобиться Zabbix Proxy
Модуль 10: Zabbix API
Теория
Лабораторные работы: Пример задачи, использующей Zabbix API
Техническое задание: сканировать через nmap определенные узлы и уведомлять, если результаты сканирования изменились
Решение:
-
Периодически получать список узлов с шаблоном My Template Nmap из Zabbix через
API (Выяснить templateids шаблона “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 "$(/etc/zabbix/externalscripts/detect_host_nmap.sh $host)"
done
# /root/nmap_2_zabbix.sh < /root/hosts_nmap.txt
Вопросы
Верно ли что Zabbix
API можно использовать для управления результатами мониторинга?
Верно ли что Zabbix
API можно использовать для управления конфигурацией системы мониторинга?
Модуль 11: Дополнительные возможности визуализации результатов мониторинга в Zabbix
Теория
Лабораторные работы
Задание: Отобразить на карте подключение провайдеру и подписать на линке параметры входящего и исходящего трафиков
Out: {gate:net.if.out[eth1].last(0)}
In: {gate:net.if.in[eth1].last(0)}
Материал для самостоятельного изучения: