Bosun HA и масштабируемость
У меня есть небольшая настройка bosun и сбор метрик от многочисленных сервисов, и мы планируем масштабировать эти сервисы в облаке. Это будет означать, что в bosun поступает больше данных, и, следовательно, влияет нагрузка / эффективность / масштаб bosun.
Я боюсь потерять данные из-за перегрузки сети и в случае сбоев.
Я ищу отчеты о тестах производительности для bosun или какие-либо материалы по тестированию и тестированию bosun для масштаба и HA.
Кроме того, будут полезны любые материалы о передовой практике, которые следует использовать для масштабирования бозун.
В настоящее время я думаю о том, чтобы запустить множество двоичных файлов bosun как кластер, поддерживаемый распределенной настройкой opentsdb. Кроме того, я думаю, стоит ли запускать некоторых исполнителей босунов в качестве простых "сборщиков" данных сколлектора (с bosun -n
команда), а некоторые просто рассчитать оповещения.
Проблема этого подхода заключается в том, что одни и те же оповещения могут запускаться из нескольких экземпляров bosun (без опций -n
). Есть ли лучший способ удалить дубликаты предупреждений?
1 ответ
Текущие лучшие практики:
- Используйте https://godoc.org/bosun.org/cmd/tsdbrelay для пересылки метрик в opentsdb. Это выводит двоичный файл Босуна из "критического пути". Он также должен пересылать метрики в bosun для индексации и может дублировать поток метрик в несколько центров обработки данных для резервного копирования / восстановления.
- Убедитесь, что ваш кластер hadoop / opentsdb имеет как минимум 5 узлов. Вы не можете выполнять оперативное обслуживание в кластере с 3 узлами, а hadoop обычно работает на дюжине или более узлов. Мы используем Cloudera Manager для управления кластером hadoop, а другие рекомендуют Apache Ambari.
- Используйте балансировщик нагрузки, такой как HAProxy, чтобы разделить трафик записи / api / put на несколько экземпляров tsdbrelay в активном / пассивном режиме. Мы запускаем один экземпляр на каждом узле (с переадресацией tsdbrelay на локальный экземпляр opentsdb) и направляем весь трафик записи на первичный узел записи (с несколькими вторичными / резервными узлами).
- Разделите трафик / api / query между оставшимися узлами, указанными непосредственно на opentsdb (нет необходимости проходить через ретранслятор) в активном / активном режиме (так называемая круговая схема или маршрутизация на основе хеша). Это повышает производительность запросов, балансируя их между узлами без записи.
- Мы запускаем только один экземпляр bosun в каждом центре обработки данных, при этом сайт DR использует флаг только для чтения (любое аварийное переключение будет ручным). Он действительно не предназначен для HA, но в будущем может позволить двум узлам совместно использовать экземпляр redis и разрешить активный / активный или активный / пассивный HA.
Используя tsdbrelay для дублирования потоков метрик, вам не нужно иметь дело с репликацией opentsdb / hbase, и вместо этого вы можете настроить несколько изолированных систем мониторинга в каждом центре данных и дублировать метрики для любых подходящих сайтов. У нас есть основной сайт и сайт аварийного восстановления, и мы решили дублировать все показатели в обоих центрах обработки данных. Я фактически использую сайт DR ежедневно для запросов Grafana, так как он ближе к месту моего проживания.
Вы можете найти более подробную информацию о производственных настройках на http://bosun.org/resources включая копии всех файлов конфигурации haproxy/tsdbrelay/etc, которые мы используем в Stack Overflow.