@devops_ru

Страница 3518 из 4568
Roquie
20.12.2017
18:59:06
10к чеков раз в две минуты даж нагиос вытянет
как там под капотом построен процесс сбора метрик? запускается 10к процессов и все ходят в инет?

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

targitaj
20.12.2017
19:00:38
Грусть
почему

Google
Artem
20.12.2017
19:01:08
почему
Не вдохновляет)

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

targitaj
20.12.2017
19:02:10
Не вдохновляет)
так это не муза же, это big picture

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
Он запускает 10к питонячих скриптов
Это как-то больно, наверно.

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

Вся соль в том, чтобы уложиться в окно интервала, в 2 минуты. Даже не в 2, а в минуту хотябы. Это надо параллелить запросы…
Фишка в правильно написанном сборщике. Например, через python-плагин для collectd делать все запросы асинхронно, или через пул процессов

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

А что требуется от запроса? Про get и ожидать, что пришло 200? Или нужен какой-то процессинг результата?

Roquie
20.12.2017
19:13:53
А что требуется от запроса? Про get и ожидать, что пришло 200? Или нужен какой-то процессинг результата?
Процессинг результата. Его надо закинуть в редис, а там по pub/sub попадет в nodejs приложуху, а от нее на фронтенд. Так чтобы был realtime update на карте.

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
Во-первых, для layer2 есть готовые решения, тут можно не велосипедить, если этого ещё не сделано
У заказчика на это подвязана бизнес логика, очень тесная с базой и его сетью. Без боли не выйдет использовать готовый продукт, да и он сам наотрез отказался.

Alexey
20.12.2017
19:22:52
Значит, стоит написать свой скриптец

10000 запросов за 2 минуты - это 83 запроса в секунду. Тут вообще ничего сложного вроде нет.

Roquie
20.12.2017
19:24:19
С другой стороны, при данном описании, может и не имеет смысла использовать готовое решение. Напрограммировать тут - 100 строчек кода, если честно
Вот и я о том-же. Сам мониторинг простой, но метрики могут по разному собираться. Push/pull варианты. 10к может вырасти в 40к. Лишь бы масштабировалось и не сильно ело ресурсы.

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
ладно, огромное спасибо, +/- я для себя уяснил, что надо написать
Ничего писать не надо. Берёшь collectd, у него плагин для HTTP на нормальном C написан, не падает месяцами, тупо работает без всякого питона, мультипоточен по определнию (искаропки).

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" и такую в секции логеров в главном файле

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
в этом и проблема
а чего мутишь? :)

Страница 3518 из 4568