This is an old revision of the document!
Zabbix. Мониторинг IT инфраструктуры предприятия
Ссылка на вебинар
Программа курса
Модуль 0. Подготовка стенда в классе
Узнать свой номер стенда
Удалить виртуалки (сделано)
Удалить профили putty (сделано)
Отключить не используемые адаптеры (сделано)
Настроить VirtualBox Host-Only Ethernet Adapter на адрес 192.168.X.5/255.255.255.0 (будет сделано)
Записать логин пароль и IP (сообщить преподавателю) рабочей станции (сделано)
Проверить наличие дистрибутивов и образов (будет сделано)
Модуль 1: Развертывание IT инфраструктуры предприятия
Теория
Лабораторные работы: Развертывание объектов мониторинга
1.1 Схема стенда, импорт, настройка и запуск VM gate и server
Запустите с правами 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
# sh net_gate.sh
# init 6
# sh net_server.sh
# init 6
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
server# cat .bashrc
...
export http_proxy=http://proxy:3128/
...
Вопросы
Какие версии Zabbix рекомендуются к использованию?
Для каких задач используется Zabbix?
Перечислите компоненты системы Zabbix.
Модуль 3: Базовые сущности Zabbix
Теория
Лабораторные работы: Базовые элементы процесса мониторинга
3.1 Простые проверки в Zabbix
Host name: ya.ru
ЛЮБОЙ ИНТЕРФЕЙС: DNS ya.ru
New group: External Hosts
Monitoring->Hosts->Latest data
ya.ru->check perf http ya.ru
Zoom: 1h
3.2 Web сценарии
Методически, лучше утром следующего дня
Преподаватель используя
Сервис Ansible устанавливает на все стенды почтовый сервис и демонстрирует возможности Zabbix по мониторингу
Web сценарии !!! Не забыть добавить триггер
3.3 Триггеры в Zabbix
gate:~# ifdown eth1
Monitoring->Triggers
или
Monitoring->Problems
gate:~# ifup eth1
3.4 Графики в Zabbix
Вопросы
Верно ли, что система Zabbix позволяет осуществлять мониторинг только тех систем, на которых установлен агент?
Перечислите, какие интерфейсы может использовать Zabbix для мониторинга?
Есть ли возможность осуществлять мониторинг системы, не имеющей поддерживаемых Zabbix интерфейсов?
Что следует использовать в именах триггеров?
Как можно уменьшить количество сообщений системы мониторинга в случае сбоев больших коммутационных узлов?
Для чего нужны пользовательские графики?
Какие возможности, по сравнению с net.tcp.service.perf[http] предоставляют Web сценарии?
Можно ли мониторить работоспособность неуправляемого коммутатора?
Модуль 4: Использование шаблонов
Теория
Лабораторные работы: Управление конфигурацией с помощью шаблонов
4.1 Клонирование узлов (хостов)
4.2 Использование готовых шаблонов
-
Обзор шаблона “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”
4.3 Создание шаблона на основе существующего
Переопределяем значение макроса {$SSH_PORT}, указав значение, например, 2222 для узла gate.corpX.un и ждем (рассчитать время) срабатывания триггера
После срабатывания триггера, в (
Настройка ssh сервера) на gate указываем новый порт и перезапускаем сервис или, методически, проще использовать эти команды:
gate# /usr/sbin/sshd -p 2222
gate# kill `cat /var/run/sshd.pid`
Вопросы
Чем шаблоны лучше клонирования?
Что следует использовать в именах триггеров?
Что можно использовать в качестве переменных в выражениях элементов?
Как работает переопределение и наследование макросов?
Какой синтаксис у макроса?
Что произойдет с объектами узла, при изменении описывающего их шаблона?
Можно ли поменять значение объекта узла, описанного шаблоном?
Как обеспечить безопасную связь между zabbix агентом и сервером?
Модуль 5: Управление учетными записями и уведомлениями
Теория
Лабораторные работы: Настройка уведомлений о событиях
5.1 Добавление учетных записей администраторов
server# apt install ansible
server# ansible-playbook conf/ansible/roles/mail.yml
5.2 Настройка уведомлений о событиях
Можно создать группу “Don t disturb” и переместить в нее пользователя Admin, что бы Zabbix не отправлял ему сообщений
Продемонстрировать на преподавательском стенде звуковые уведомления в браузере (в настройках профиля)
-
-
5.3 Добавление учетных записей службы поддержки
Задание на дом:)
Создать группу “Zabbix responsible”
Назначить группе “Zabbix responsible” права на чтение элементов групп Linux servers и External Hosts. Это нужно также для получение уведомлений о срабатывании триггеров этих элементов.
Создать учетную запись user1/password1 с User type: “Zabbix User” и включить его в группу “Zabbix responsible”
user1 должен иметь права на просмотр результатов мониторинга через Web интерфейс и должен получать уведомления по электронной почте.
5.4 Настройка публичного доступа к информации в Zabbix
Вопросы
Где можно посмотреть, какие уведомления были отправлены zabbix?
Какие варианты отправки уведомлений имеются в zabbix?
Модуль 6: Внешние проверки и пользовательские параметры
Теория
Лабораторные работы: Мониторинг с использование внешних программ/скриптов
6.1 Варианты получения результатов из внешних программ/скриптов на zabbix сервере
Демонстрирует преподаватель
Недостаток технологии
Альтернативные решения
Обсудить решение задачи отслеживания изменений nmap отпечатков систем с использованием элемента типа traper
6.2 Варианты получения результатов из внешних программ/скриптов на удаленных узлах
-
-
Использование UserParameter в zabbix-agent для получения результатов из внешних приложений, на примере мониторинга количества выданных ip сервисом DHCP
-
-
Обсудить необходимость вычисляемых элементов для добавления к узлу gate графика процента выданных адресов
Обсудить необходимость вычисляемых элементов дла настройки триггера, срабатывающего при достижении 80-ти процентов
Вопросы
Какое ограничение накладывает zabbix на выполнение внешних скриптов?
Какие варианты имеются для запуска скриптов на удаленных системах из zabbix?
Как можно передать в 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# 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# zabbix_get -s gate -k dhcp.pools.discovery | jq
server# zabbix_get -s gate -k dhcp.pools.shared-network[LAN1,used]
Вопросы
Придумайте свои варианты задач, при которых может понадобиться LLD.
Как можно отфильтровать только нужные элементы в процессе 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
Демонстрирует преподаватель
server# zabbix_get -s 192.168.X.1NN -p 10050 -k agent.version
Делаем все
Открыть в
nodepad++, запущенном с правами Администратора, файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf
-
Преподаватель демонстрирует как выглядит список ПО
server# zabbix_get -s 192.168.X.1NN -p 10050 -k listinstalledsoft
8.3 Проблемы мониторинга windows систем с динамическими адресами
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” и подготовка его для агентов, работающих в активном режиме
Разработка шаблона “Template
OS Windows list installed soft Active” с элементом listinstalledsoft, заполняющим инвентарное поле “Software (Full details)” и триггером, информирующем об изменении состава установленного ПО, используя
Пример с текстовым элементом
-
Шаблон для Zabbix 5: conf/zabbix/zabbix/Template_
OS_Windows_list_installed_soft_Active_5.xml
Вопросы
Чем отличается активный режим от пассивного в zabbix агенте?
Придумайте варианты конфигураций сети, при которых необходимо использовать активный режим агента 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
Вопросы
Что необходимо установить в систему с zabbix для мониторинга оборудования по протоколу SNMP?
В чем отличие процесса автоматического добавления оборудования в этой лабораторной работе от варианта с активным агентом?
Как формируется имя хоста в случае Discovery в версиях zabbix до и после 4.2?
Придумайте свои варианты задач, при которых может понадобиться Zabbix Proxy
Модуль 10: Zabbix API
Теория
Лабораторные работы: Пример задачи, использующей Zabbix API
10.1 Подключение и аутентификация
10.2 Примеры запросов на чтение информации о настройках объектов мониторинга
10.3 Пример практического использования технологии
Решение:
# 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 Пример практического использования технологии
Вопросы
Верно ли что Zabbix
API можно использовать для управления результатами мониторинга?
Верно ли что Zabbix
API можно использовать для управления конфигурацией системы мониторинга?
Модуль 11: Дополнительные возможности визуализации результатов мониторинга в Zabbix
Теория
Лабораторные работы
11.1 Использование карт
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()}
Пользователя guest убрать из группы Disabled
-
Предоставить группе Guests права на чтение объектов мониторинга группы узлов Linux servers (Можно сделать отдельную группу Public info и включить в нее узлы, элементы которых будут дотступны публично)
11.2 Использование экранов
Создать экран Name: ISP Screen 2×2, содержащий карту (на 2 строки) и графики загрузки и скорости интернет канала
-
!!! В версии 6.0 переедут в раздел “панели”
11.3 Использование панелей
Модуль 12: Обновление Zabbix
# systemctl restart zabbix-server.service
# tail -f /var/log/zabbix/zabbix_server.log