Я видел этот вопрос в списке рассылки несколько раз, но не получил удовлетворительного ответа.
Как лучше всего следить за тем, чтобы трубопровод не застревал? Клиенты -> logstash -> эластичный поиск.
Logstash и особенно эластичный поиск подвержены истощению ресурсов. Они оба прекрасно понимают, где остановились, но как, собственно, люди следят за своими наблюдателями?
Мнения приветствуются.
monitoring
elasticsearch
logstash
Дэн Гартвейт
источник
источник
Ответы:
Лично я на самом деле проверяю, что redis все еще находится в очереди на центральном хосте регистрации, который находится выше по потоку от LS + ES.
то есть:
redis-cli llen logstash
меньше некоторого фиксированного числа.Это может не указывать на то, что журналы вообще появляются в redis, но это тоже можно проверить, я думаю.
redis-cli info | grep total_commands_processed
Может быть, что-то вроде проверки, которая продолжает расти?источник
total_commands_processed
всегда будет увеличиваться, если не из logstash, а затем из самойinfo
команды?Я использую zabbix в своей среде, но я полагаю, что этот метод может работать и в других установках. Я настроил следующую команду, которую zabbix разрешено использовать:
Это вернет количество зафиксированных записей эластичного поиска. Поэтому я беру это значение и делю на количество секунд, прошедшее с момента, когда я взял последний образец (проверяю каждую минуту), если это число падает ниже произвольного предела, я могу предупредить его. Я также использую zabbix, чтобы проверить, не умер ли PID logstash, и отключить его, а также выполнить следующую команду:
Это вернет 1, если состояние кластера стало красным (желтый и зеленый в порядке), что я также могу предупредить.
источник
Убедитесь, что журналы в секунду в вашей конечной точке (например ,asticsearch) выше некоторого базового уровня.
То есть выполните сквозную проверку, если ваш конечный результат работает правильно, вы знаете, что все шаги в конвейере работают правильно.
Если вы часто сталкиваетесь с проблемами или вам требуется более тщательный анализ, начните инструктировать каждый участок конвейера, например, redis, как предложено выше.
источник
Мы используем несколько подходов:
источник