Zabbix. Обнаружение, SNMP (Предварительный анализ, Настройка snmp запросов, Постройка ффкусняшек)
Приветствую тех, кто не читал предыдущие 3 главы/раздела. А сразу, так сказать, перешел в наступление. Ничего плохого в этом нету, я такой же, как и вы. Ну да ладно.
Итак, что мы имеем на даный момент: подготовленый и настроенный сервер мониторинга. Который просто напросто мечтает мониторить всё подряд в вашей сети. Что ж, давайте дадим ему такую возможность.
Итак, я обычно использую два способа мониторинга: это либо обычный пинг, либо опрос по ssh. Для решения моих задач этого хватает с головой и выше крыши. Но я также понимаю, что есть люди, которые наблюдают за серверами, за их службами и тд. и тп. И это здорово. Таким людям я посоветую использовать Zabbix-агент. Который, например, при обнаружении в процессе мониторинга того, что служба не поднята, может ее запустить. Или можете поизвращаться: запускать и тушить службу по расписанию. Скажу сразу, настраивать агент не сложно, я по-началу даже хотел это описание включить в мануал. Но потом передумал, так как мои случаи слишком тревиальны и просты. Тем более на офф сайте замечательно всё расписано. Но, если вдруг я буду настраивать что-то интересное с помощью агента, то в этих статьях сразу появятся записи. Только вы не подумайте, что я такой не умеха. В моей практике были и умопомрачительные требования, но они настолько специфичны и редки, что их просто нету смысла включать в описание, я лишь опишу самое основное, так сказать первые шаги. А дальше, как я всегда говорю, нет ничего такого, что бы вы не смогли сделать, тем более, если это сделали до вас. Предел возможности это предел вашей фантазии. Что-то увлекся я писаниной. Ближе к телу делу.
А начнём мы с самого простого.
Для начала мы определимся, что конкретно мы хотим мониторить в сети. Какое оборудование, и какие диапазоны IP оно покрывает. Ну и в дальнейшем облегчим себе жизнь.
И так лезем сюда
Настройка -> Обнаружение
Видим что-то такое.
Дальше Создать правило.
И тут мы заполняем поля.
Обнаружение делаем простейшее по пингу. А в диапазон ip адресов вносим те сети, которые мы будем мониторить.
Вносить сети можно так.
10.10.10.0-255,40.40.40.0-65,40.40.40.68-90,40.40.40.100-255
Главное чтобы перечесления шли через обычную запятую.
Состояние выбираем «деактевирован». Мы это потом запустим.
Жмём сохранить.
Теперь подготовимся к автомотической сортировке. Открываем
Настройка->Группы узлов сети, создаём группу. В появившемся окне заполняем название группы. И больше ничего не делаем. Нажимаем Сохранить (если у вас будет групп больше чем одна, есть смысл создать их все сейчас). И дальше лезем сюда
Настройка->Действие
Справа в углу выбираем обнаружение
Потом жмакаем на кнопочку Создать действие.
В появившемся меню
Мы будем создавать условия, при которых это действие будет срабатывать. Это нужно для того, чтобы необходимые нам объекты попали в нужную нам группу(ы), которую(ые) мо создали. Итак, первым делом создаём условия действия.
В меню условия действия (выделенно красным) нажимаем на кнопку Новый (её видно на картинке выше). И вы увидите меню, которое показанно ниже.
Из этого меню нам нужно 3 составляющие, при выполнении которых у нас будет срабатывать действие.
Итак, это:
Состояние обнаружеие = UP
Правило обнаружение = Local network (внимание, если правило обнаружения вы назвали пупкин, то у вас вместо Local network будет пупкин. Будьте бдительны)
IP адресс узла сети = 10.10.10.0-10.10.10.50,10.10.10.52-255,40.40.40.0-255
Тут вы пишете предпологаемые IP адреса, которые будут находиться в этой группе. Я писал сети с запасом. Однако есть ситуации, когда один IP из этой подсети 100% будет находиться в другой группе. В таком случае я его исключал из этого диапазона. Это я показал на примере выше.
В итоге, вы будете иметь что-то такое
Можете удалить все что находится в полях тема по умолчанию. В общем, можете сделать, как показано на картинке выше. Следующим в очереди будет Операция действия, при выполнений условий будет выполняться эта операция. Нажимаем новый, выбираем пункт добавит в группу и выбираем нужную для нас группу.
В конце всего этого нажимаем на кнопочку Сохранить.
Итак, мы успешно создали действие, которое будет фильтровать обнаруженные IP в нужные для нас группы. По аналогии создадим действия для других групп. По аналогии создаются и тригеры, при срабатывании которых будет запускаться действие. Это может быть и отсылка сообщения к вам на почту или же запуск действия по snmp, например запуск определённой службы. Об этом я напишу чуть позже. Но если вы разберётесь сами, это будет хорошим плюсом в вашу сторону.
Теперь я вам на простом примере расскажу, как работать с snmp запросами. Дальнейшие действия с snmp будут почти похожи. Тут самое главное уловить суть.
Вот наше задание.
У нас есть маршрутизатор/свитч cisco (не суть, какое оборудование, мне была удобна cisco, вам может быть будет удобен juniper,d-link, не важно) и нам на одном интерфейсе ( или например подинтерфейс на маршрутизаторе) нужно мониторить нагрузку на интернет канал (для вас это может быть и просто мониторинг сетевого трафика, для анализа пропускной способности вашей сети.) Вообще, вы можете построить график из любых данных хоть из данных по пингу. Тут, я ещё раз повторюсь, главное — это уловить суть.
Итак, в моем случае, это маршрутизатор. И надо смотреть нагрузку на интернет канал, в сторону нашего провайдера.
С чего начать? Начинайте с чего угодно. Я обычно начинаю с прописывания политик для snmp на самой cisco. У еня это выглядит вот так:
Вот так вот, всего три строчки. А по большому счету всего только одна.
Допустим вы первый раз слышите, что такое это ваше snmp. Что это за магические 4 буквы вы можете прочитать в википедии. Дальше я покажу, как проверять запросы, не занося их сначала в заббикс. А вдруг вы вносили их, вносили, а они оказались не те что надо. И давай всё сначала. Я покажу, как делать запросы из омандной строки.
Так как мы будем делать запросы с нашего сервера Zabbix, то и отправлять тестовые запросы мы тоже будем с него.
Конектимся к серверу, заходим под рутом в командную строку. И пишем вот это
На выходе получите что-то типа такого
tRaliVali это нечто иное, как наш public key. Другими словами: это пароль для запросов snmp.
ifInOctets — это запрос. Какие именно данные мы хотим получить с cisco. В данном случае это показывает входящий трафик, количество байт в секунду (byte/s) в данный момент опроса. Соответственно ifOutOctets покажет исходящий трафик интерфейса. Так как провайдер у меня воткнут прямиком в маршрутизатор, то исходящий трафик для меня будет исходящим трафиком интерфейса на маршрутизаторе, а входящий трафик для меня будет входящим трафиком интерфейса на маршрутизаторе. Запомните, чётко представляйте все то, что вы делаете и хотите получить, тогда не запутаетесь и не ошибётесь.
Ну вроде бы понятно, как работает snmp запрос. И я знаю, с какого интерфейса я хочу получить данные. А что делать, если я не знаю как в cisco или какой номер должен стоять, если я хочу снять данные с под-интерфейса, который отвечает за 280 VLAN и физически воткнут в 3 порт на cisco.
В настройках cisco он выглядит так.
Так как я знаю, что имя интерфейса — GigabitEthernet0/3.280, то запрос на сервере будет выглядить так:
Вывод команды будет такой:
Сейчас думаете: «их же тут 2! Какой из них?». Но я то знаю благодаря предварительному ознакомлению с snmp.
.1.3.6.1.2.1.2.2.1.2.i — это описание интерфейса i. Таким образом, я делаю вывод, что нам нужна 1 строчка. И отсюда узнаю, что в запросе будет учавствовать интрфейс под номером 28.
Вот таким вот нехитрым образом можно делать предварительные запросы snmp прямо из командной строки.
Допустим, мы узнали уже всё, что нам нужно. И мы бы хотели всё это дело завести в мониторинг.
Заходим
Настройка -> узы сети
Выбираем требуемую для нас cisco (в моём случаи это ciscoo 7201)
И выбираем элементы данных
в верхнем правом углу выбираем
Создать элемент данных
И перед нами открывается от такое вот окошечко.
Теперь, что и как мы вносим в поля.
ОПИСАНИЕ — пусть будет KANAL in (мы же смотрим входящий трафик)
Тип — SNMPv2 агент (ну я пользую второй. хотя первый тоже подходит)
SNMP OID — вносим эти загадочные циферки ( у меня .1.3.6.1.2.1.2.2.1.10.48 вносим как есть с точкой впереди)
SNMP community — пароль. В данном мануале это tRaLiVali (регистр имеет значение)
Ключь — ifInOctets.48 (знакомое что-то верно?)
Тип информации — числовой (целое)
Тип данных — Десятиричный
Единица измерения — bps (мы же скорость мерим)
Использовать множитель — Пользовательский множитель
Пользовательский множитель — 8
Интервал обновления — 15 (я понял, что раз в 15 сек. это для меня то, что нужно. Некоторым и раз в 5 мин. — это норм)
Состояние — Активен
Хранить значения — Дельта (скорость в секунду)
Обратите внимание что я указал только нужные для изминения поля. Если вы что-то не так написали, то и скорость у вас не так будет мериться, и график будет показывать невесть что. Пользовательский множитель, потому что в байте 8 бит.
Нажимаем кнопку сохранить
По аналогии делаем данные и для ifOutoctets.48
Теперь рисуем график.
Настройка -> узы сети
Выбираем требуемую для нас cisco (в моём случаи это ciscoo 7201)
И выбираем элементы данных графики (да-да вместо элементы данных выбираем графики в той же строчке, только правее)
Потом в правом верхнем углу нажимаем кнопочку Создать график
Сначало создаём для входящего трафика.
В появившемся окне нажимаем кнопку
Добавить
потом в строке параметры выбрать
Выбираем элемент данных, который мы недавно создали.
По вкусу настраиваем (я напишу что выбираю я)
Тип — простой
Функция — среднее
Способ черчения — заполение
Цвет — 009900 (зелёный) (000099 — синий)
Расположение оси Y — право
Порядок сортировки (0->100) — 0
сохранить
Аналогично делаем и для исходящщего.
После всего этого любуемся графиками
Мониторинг -> Графики
Вот так вот несложно создаются элементы данных. И строятся графики. Самое основное и принцип работы я вам описал. Как видите, это совсем не сложно. Но когда у вас объём работы большой, то это просто долго и нудно. Но что поделать, такая вот у нас работа. Зато потом красиво и наглядно всё видно. На этом эту часть мы закончим.
Раздел с картами, я думаю, вы осилите сами. К сожалению, я не смогу вам показать какую красоту можно сделать, используя карты. У одного провайдера я разрисовал всю его сеть по домам. И вывел это в отдельный отчет. Очень круто было, группа подержки мгновенно реагировала, потому что видела сразу где есть свет или какие проблемы происходят на том или ином участке. Но, к сожалению, сервер приказал долго жить. И то, что я делал в течении 3 месяцев нужно будет делать с 0. Вот такие вот случаи тоже бывают. Но думаю, что вы разберётесь сами. Там правда все очень-очень просто.
P.S. я хотел было вынести рисование графиков в отдельную главу, но решил объединить с этой. И, наверно, это будет последняя часть мануала по введению. Я и так слишком долго уже пишу этот мануал (уже год как), просто физически нет на это времени. Но думаю, что благодаря ему администрация откроет ещё один раздел. И, думаю, я буду не единственным, кто напишет заметочки про Zabbix. Если что будет попадаться у меня интересное в настройках мониторинга, я обязательно буду выкладывать статьи. Желаю удачи.
Zabbix и Mikrotik, мониторинг по SNMP.
Итак, ранее мы установили Zabbix на виртуальную машину на Centos7. Теперь нам необходимо добавить в систему мониторинга Mikrotik для снятия показаний с устройства. Как добавить Mikrotik в Zabbix:
1. Настроить SNMP Mikrotik.
Zabbix по протоколу SNMP собирает данные с оборудования, поэтому в первую очередь настроим SNMP на Mikrotik.
Для любителей работать через консоль заходим в терминал и пишем команду:
Где 192.168.100.0/24 – указываем подсеть в котором находится Zabbix;
adminwin.ru – пароль;
name=adminwin.ru – имя SNMP;
Если вам удобнее настраивать через графический режим, тогда:
IP – SNMP.
1.Ставим галочку Enabled;
2.Trap Version – 2;
3.Нажимаем на кнопку Communities, после чего откроется еще одно окно.
4. В новом окне:
Name – Имя;
Address – указываем подсеть в котором находится Zabbix;
Security: none;
Read Acces – ставим галочку;
Authentication Protocol: MD5;
Encryprion Protocol: DES;
Authentication И Encryprion Password – пароль SNMP;
Настройка Mikrotik на этом закончена, переходим в Zabbix;
2. Добавим Mikrotik в Zabbix.
Осталось завести устройство в мониторинг, открываем Zabbix:
1. Переходим по меню Настройка → Узлы сети – кнопка Создать. Откроет окно настройки узла.
Имя узла сети: Mikrotik;
Группы: можете выбрать любую из существующих или же создать отдельно;
Интерфейсы SNMP: вводим ip адрес Микротик, который мы собираемся опрашивать и на котором мы настраивали SNMP, порт оставляем 161;
Описание: для удобства можете добавить описание;
Сохраняем.
2. Переходим в Узлы сети (Все узлы сети).
Перед настройкой данного раздела, вам пригодится статья OID SNMP для Mikrotik.
Вы видите окно с вашим единственным узлом Mikrotik, в находим столбец Элементы данных со значение 0 – проваливаемся в него (жмем на строку Элемент данных) и в открывшемся окне нажимаем Создать элемент данных.
Для примера будем слушать входящий трафик на одном из портов Микротик.
Заполняем поля:
Имя – Имя интерфейса на котором будем собирать информацию по трафику.
Тип – выбираем SNMPv2 агент:
Ключ: Можете задать удобное вам название ключа.
Интерфейс узла сети: 192.168.25.1:161 ip Mikrotik
SNMP OID: ключ , который позволяет с устройства забрать данные, запрашивать у производителя.
Snmp Community: пароль , который мы устанавливали на Микротике в разделе SNMP (Ithelp21);
Тип информации: Числовой (целое положительное);
Тип данных: Десятичный;
Интервал обновления (в сек): 1;
Период хранения данных на ваше усмотрение;
Группы элементов данных: Traffic;
Сохраняем.
3. Теперь мы можем посмотреть график загрузки трафика на порту Mokrotik.
Переходим в Мониторинг – Последние данные – находим наш интерфейс – справа жмем на График.
Если устройство не опрашивается, проверьте настройки iptables , о которых мы рассказывали ранее.
Пользователь в vCenter 7
В vCenter 7 нужно создать пользователя, под которым zabbix будет логиниться в vCenter, естественно, с правами только на чтение. В Menu > Administration > Single Sign On > Users and Groups.
Добавляем нового пользователя. Add User. Запоминаем логин и пароль.
Даём юзеру права на чтение на vCenter 7 с вложениями (Hosts and Clusters > ваш vCenter > Permissions).
Zabbix
Zabbix — это решение для мониторинга с открытым исходным кодом корпоративного класса для мониторинга сети и приложений.
Zabbix-server может быть установлен на любом сервере. Выделенный сервер или сервер с Astra
- Перейдите на сайт Zabbix: https://www.zabbix.com/download
- Выберите Zabbix v.5.4
- Выберите Вашу платформу
- Выполните команды по установке из инструкции на сайте
Более подробную информацию можно найти на официальном сайте: https://www.zabbix.com/manuals
Как мониторить работу службы через Zabbix
На предыдущей работе я довольно напользовался тем, что в моей системе мониторинга Zabbix использовал разобранную возможность мониторить статусы установленных служб в системах. К примеру есть важный процесс и его нужно мониторить , как он только выключится, то нужно сразу же смотреть почему такое произошло, а не ждать когда тебе начнут звонить . Караул — почему сервисы не работают как и должны работать. А потому данная заметка будет своеобразной пошаговой напоминалкой самому себе, как в кратчайшие сроки поставить те или иные сервисы Windows на мониторинг в универсальный конструктор мониторинга Zabbix.
У меня Zabbix развернут на Ubuntu 12.04.5 Server amd64 версии 2.2.11
ekzorchik@srv-mon:~$ apt-cache show zabbix-server-mysql | grep Version
Первое условие на станции Windows которую нужно мониторить на предмет статуса запущенного сервиса должен стоят Zabbix—агент и заведен на Zabbix-сервер.
Задача: мониторить буду службу: FusionInventory-Agent
это агент GLPI посредством которого происходит инвентаризация рабочей станции: Какая ось, какой софт, какое железо, кто сейчас работает, IP-адрес станции и т. д.
Теперь создаю новый элемент данных в дефолтном шаблоне Template OS Windows:
http://IP&DNS — Configuration — Templates — Template OS Windows — Items — Create Item
Name: GLPI Agent
Type: Zabbix agent
Key: service_state[FusionInventory-Agent]
Update interval (in sec): 60
History storage period (in days): 7
Trend storage period (in days): 365
New Application: Services
Description: Мониторим статус работы службы установленного агента GLPI
Enabled: Отмечаю галочкой
Сохраняю внесенные изменения: Save
На заметку: ключ service_state принимает ответные значения:
State of service. 0 — running, 1 — paused, 2 — start pending, 3 — pause pending, 4 — continue pending, 5 — stop pending, 6 — stopped, 7 — unknown, 255 — no such service
Теперь создаю Trigger ( описание тревоги на этот элемент данных ), в этом же Template OS Windows — Triggers — Create Trigger
Name: Service State — GLPI Agent on
Expression: — Add находим нужно правило, в моем случаем правило следующее:
Severity: High
Enabled: Отмечаю галочкой
Сохраняю внесенные изменения: Save
Теперь проверяю, сейчас на хосте (W7X86) выключаю/останавливаю службу и в Zabbix’е – Monitoring у меня в где Windows Stations обозначена среагированная проблема:
Перехожу в группу и вижу на каких хоста сработало уведомление о неполадках:
Тип уведомление: Высокий
Время последнего изменения статуса
Продолжительность недоступности сервиса в связи с выключенным состояние службы FusionInventory-Agent
вернув сервис в режим “Старт” , уведомление в Zabbix о сработанных триггерах вернулось в норму:
Если ведем какие-либо работы, то можно на сработанных триггер по этому хосту поставить комментарий (Acknowledge) или же когда сервис в строю:
Message: Работа сервиса восстановлена
После нажимаю: Acknowledge and return
По такому принципу можно настроить свой шаблон и свои элементы данных которые нужно отслеживать.
На этом собственно пока все, до новых встреч на моем блога, с уважением автор блога – ekzorchik.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще 🙂
Карта МКБ: 4432-7300-2472-8059
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.