Назад | Перейти на главную страницу

Как лучше отслеживать логсташ?

Я видел этот вопрос в списке рассылки несколько раз, но не получил удовлетворительного ответа.

Как лучше всего следить за тем, чтобы трубопровод не завис? Клиенты -> logstash -> elasticsearch.

Logstash и особенно elasticsearch подвержены нехватке ресурсов. Они оба отлично умеют продолжить с того места, на котором остановились, но как именно люди смотрят на своих наблюдателей?

Мнения приветствуются.

Я использую zabbix в своей среде, но полагаю, что этот метод может работать и в других настройках. Я настроил следующую команду, которую разрешено использовать zabbix:

UserParameter=elasticsearch.commits,/usr/bin/curl -s 'localhost:9200/_cat/count?v' | /bin/sed -n '2p' | /bin/awk '{print $3}'

Это вернет общее количество зафиксированных записей elasticsearch. Поэтому я беру это значение и делю на количество секунд, прошедших с тех пор, как я взял последний образец (я проверяю каждую минуту), если это число упадет ниже произвольного предела, я могу предупредить об этом. Я также использую zabbix, чтобы проверить, не умер ли PID logstash, и предупредить об этом, и запускаю следующую команду:

UserParameter=elasticsearch.health,/usr/bin/curl -s 'http://localhost:9200/_cluster/health?pretty=true' | /bin/sed -n '3p' | /bin/awk -F'\"' '{print $4}' | /bin/sed s/yellow/0/ | /bin/sed s/green/0/ | /bin/sed s/red/1/

Это вернет 1, если состояние кластера стало красным (желтый и зеленый в порядке), о чем я также могу предупредить.

Лично я действительно проверяю, что redis все еще удаляется из очереди на центральном хосте ведения журнала, который находится выше LS + ES.

то есть: redis-cli llen logstash меньше некоторого фиксированного числа.

Это может не указывать на то, что журналы вообще появляются в Redis, но я думаю, это тоже можно проверить.

Что-то вроде проверки этого redis-cli info | grep total_commands_processed продолжает расти, может быть?

Убедитесь, что количество журналов в секунду в вашей последней конечной точке (например, elasticsearch) превышает некоторый базовый уровень.

То есть выполните сквозную проверку, если ваш конечный результат работает правильно, вы знаете, что все шаги в конвейере работают правильно.

Если у вас часто возникают проблемы или вам нужен лучший самоанализ, начните инструментировать каждую часть конвейера, например redis, как было предложено выше.

Мы используем несколько подходов:

  1. Монит, чтобы прослушивать порты Elastic и Logstash и перезапускать их
  2. Для случаев, когда произошло что-то плохое и все на месте с точки зрения мониторинга, но журналы не потребляются / не сохраняются, существует простой сценарий, который проверяет активный индекс каждый час и предупреждает, если количество документов не изменилось за последний час.