
Roquie
20.12.2017
18:59:06

Alexey
20.12.2017
18:59:19
Да все готовое есть. Как классический вариант: собирать через collectd, писать в графит

Artem
20.12.2017
19:00:29

targitaj
20.12.2017
19:00:38

Google

Dmitry
20.12.2017
19:00:53

Artem
20.12.2017
19:01:08

Roquie
20.12.2017
19:01:16

Alexey
20.12.2017
19:01:37
Да, конечно. Он что угодно умеет через плагины

Roquie
20.12.2017
19:01:42

targitaj
20.12.2017
19:02:10

Dmitry
20.12.2017
19:03:54
а как надо?
Он в самой просто имплементации раз в N минут для каждого эндпоинта запускает питонячий скрипт который собирает метрики и вываливает их в stdout, вот так наверное не надо делать если хочешь масштабироваться. А как надо хз, я простой одмин.

Roquie
20.12.2017
19:05:20
Интересно, как этот питонячий скрипт сжует 10к айпишников, там-же пока каждый ответит, пройдет 300ms минимум

Dmitry
20.12.2017
19:06:06
Он запускает 10к питонячих скриптов

Roquie
20.12.2017
19:07:22

Alexey
20.12.2017
19:07:24
Нагиос умеет так, как вы хотите. Если напишите плагин, который получит список ip, то этот плагин запустится один раз. Напишите один ip на скрипт - запустит 10к скриптов
Для Collectd можно написать так, чтобы он, например, держал keep-alive, это будет быстрее

Roquie
20.12.2017
19:09:07
Вся соль в том, чтобы уложиться в окно интервала, в 2 минуты. Даже не в 2, а в минуту хотябы. Это надо параллелить запросы…

Google

Alexey
20.12.2017
19:09:24
Хотя и для nagios такое можно сделать. Но лучше не использовать nagios для новых проектов в 2к17

Roquie
20.12.2017
19:11:20

Alexey
20.12.2017
19:11:41
По умолчанию правда collectd (когда я последний раз проверял) скомпилирован под второй python, так что могут быть проблемы
А что требуется от запроса? Про get и ожидать, что пришло 200? Или нужен какой-то процессинг результата?

Roquie
20.12.2017
19:13:53

Alexey
20.12.2017
19:14:41
Просто json-поле взять? Или ещё сложней?

Dmitry
20.12.2017
19:14:52
Вот на этом у меня затык.
Ну выставь таймаут в 2 секунды на каждый запрос, итого за 2 минуты в худшем случае ты обработаешь 60 эндпоинтов.
Вот и запусти в лоб 10000/60=167 тредов которые собирают и пишут куда-нибудь метрики.

Roquie
20.12.2017
19:18:28
Просто json-поле взять? Или ещё сложней?
Архитектурно, я себе это представляю так:
1. layer1 —> frontend
2. layer2 —> nodejs app, который общается с базой и хранит все интервалы, алерты и прочее
3. layer3 —> тупые микросервисы умеющие собирать метрики так, как им скажут и засылать по pub/sub в l2. Сам сборщик умеет только слать запросы и что дали в body отправлять в l2. Обработка минимальная, только в один формат привести.
4. layer4 — железка, которую мучаем

Alexey
20.12.2017
19:19:49
Во-первых, для layer2 есть готовые решения, тут можно не велосипедить, если этого ещё не сделано
С другой стороны, при данном описании, может и не имеет смысла использовать готовое решение. Напрограммировать тут - 100 строчек кода, если честно

Roquie
20.12.2017
19:21:21

Alexey
20.12.2017
19:22:52
Значит, стоит написать свой скриптец
10000 запросов за 2 минуты - это 83 запроса в секунду. Тут вообще ничего сложного вроде нет.

Roquie
20.12.2017
19:24:19

Alexey
20.12.2017
19:24:27
Берёшь любимый язык и ищешь "http-клиент, который умеет параллельно делать запросы и поддерживает keep-alive"

Roquie
20.12.2017
19:25:20
кстати, не понимаю, как тут поможет keep-alive? зачем держать коннект с железкой 2 минуты?

Alexey
20.12.2017
19:26:05
Чтобы заново не создавать. Это необязательно, в целом, но в зависимости от ситуации коннект может занимать определённое время
Я примерно так представляю: каждый сборщик при конфигурации получает список урлов, который мониторит и куда шлёт результаты. Масштабирование - это просто запуск нескольких таких сборщиков.

Google

Roquie
20.12.2017
19:26:48
Да, так и хочу.
Кстати, по roundrobin раскидать каждому сборщику, который умеет обработать, скажем 3000 точек за раз — норм?
Чтобы были на разных машинках и могли уже обработать 10 сек интервал (задел).

Alexey
20.12.2017
19:30:40
А зачем раунд-робин? Просто делим список всех урлов на количество сборщиков и отдаём каждому сборщику

Roquie
20.12.2017
19:33:24
Для распределения нагрузки. Хотя может и оверхед...

Alexey
20.12.2017
19:33:34
Между чем?

Roquie
20.12.2017
19:33:48
ладно, огромное спасибо, +/- я для себя уяснил, что надо написать

Alexey
20.12.2017
19:34:06
Да не за что!

Roquie
20.12.2017
19:38:41
Между чем?
Сборщиками. Я про Weighted Round Robin, когда в зависимости от мощности машинки, давать разное количетво айпишников. Хотя, прочитав спеку еще раз, я догнал, что затупил. Нафиг он тут не нужен.

Alexey
20.12.2017
19:39:27
Да, мудрить не стоит, я думаю. Нагрузки не огромные ожидаются

Roquie
20.12.2017
19:40:19
Кстати, у меня появилась мысль.
Нет, мысль глупая.

Roquie
20.12.2017
19:41:00
?

Alexey
20.12.2017
19:41:06
?

Sergey
20.12.2017
19:47:10

Alexey
20.12.2017
19:50:08
Он не умеет логику парсинга и отправку результатов в кастомное хранилище. Все равно программировать придеться

Sergey
20.12.2017
19:54:06

Alexey
20.12.2017
19:57:14
Ну стандартный curl-плагин умеет регексп и все такое, curl-json и curl-xml соответственно.
А если нужна какая-то логика для обработки? Ну типа в одном поле true, значит сложи два других числовых?
Не уверен, что такое просто реализовать

Sergey
20.12.2017
19:58:15

Google

Alexey
20.12.2017
19:58:44
Да, это то, что я предложил вначале)
И плюс добавится output-плагин для хранилища

Sergey
20.12.2017
19:59:34

Alexey
20.12.2017
20:00:16
Согласен. Я просто не уточнял у автора детали логики, только уточнил, что она есть

Admin
ERROR: S client not available

Alexey
20.12.2017
20:00:33
Output-плагин все равно писать.

Sergey
20.12.2017
20:01:06

Alexey
20.12.2017
20:01:44
Скорее всего) но это уже не нам решать?

Sergey
20.12.2017
20:02:54
такое ТЗ стоит отстреливать на подходе к снаряду

Alexey
20.12.2017
20:04:53
Отвечу классикой.
Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам

Sergey
20.12.2017
20:12:08
господа хорошие, а кто знает, как включить дебаг-лог для графановской лдап-авторизации? оная мозг компостирует и ничего в лог, касающегося лдапа, не пишет.

Alexey
20.12.2017
20:14:34
verbose_logging в ldap.toml вроде
filters = "ldap:debug"
и такую в секции логеров в главном файле

Roquie
20.12.2017
20:15:58

Anton
20.12.2017
20:42:56
Здарова ребят! такой вопрос, кто нибудь встречался с instafeed.js?

Sergey
20.12.2017
20:43:42
такое строки, что самое забавное, в исходниках графаны вообще нет

Alexey
20.12.2017
20:44:10
Это из документации

Sergey
20.12.2017
20:45:15

Google

Alexey
20.12.2017
20:45:34
Ну все, дальше я не знаю))
А ldap:debug помогает?

Sergey
20.12.2017
20:46:08
нет
в этом и проблема

sbog
20.12.2017
20:46:49
Кто-нибудь когда-нибудь делал libvirtd mutual TLS? Чтобы миграции работали?

Alexey
20.12.2017
20:47:02

Sergey
20.12.2017
20:47:50
за три года я уже что только не смотрел.... даже плагин для Шибболета пришлось править джавовский. а теперь очередь и до гошечки докатилась.

Aleksey
20.12.2017
21:00:04
Коллеги, помогите плиз. Что такое модульное (или модельное) окружение применимо к Vagrant? Ну или хотя бы дивапсу в принципе? Гугл не помогает.
И это не про модульное тестирование.

sbog
20.12.2017
21:04:14
Сканворды разгадываешь?

n00b
20.12.2017
23:26:29
https://nplus1.ru/material/2017/12/20/SEvNS так, девочки
был запилен нейтринный детектор компактных размеров
это значит что скоро физический уровень osi может претерпеть определенные изменения
кто что думает?

Anton
20.12.2017
23:39:49
Nemo curat.

Sergey
21.12.2017
07:18:29