Добрый день! Я только начал знакомиться с функционалом.
Если задача: 2 документа - документ1 содержит список событий с временными метками, документ2 содержит некий список сочетаний событий.
Возможно ли как-то сравнить эти два документа, так что бы если в некий промежуток времени в документе1 появляются два или больше события, которые есть в документе2, приходит алерт или отражаются любым другим способом?
Например:
В документе2 указано "server start" и "server stop" = alert
И когда в документе1 оба события появляются с разницей в 5 минут, приходит алерт.
Я не совсем понимаю структуру ваших документов. Хотелось бы также понять в каком порядке они индексируются, как часто обновляются, и в какой момент должен происходить алерт. Сложно что-то конкретное порекомендовать на основе предоставленной информации.
Документ2 может быть любым, содержащим примерно такую информацию
Report Start, Report => Alert
Server stop, User change => Critical
И при повялении в течении некоторого времени в документе1 обоих событий из одной строчки документа2, происходит алерт.
Документ1 может обновляться раз в несколько минут или чаще, документ2 может не обновляться месяцами.
Частота алерта устроит как и в реальном времени, так и проверки через промежутки времени.
Собственно неизменным остается только формат данных документа1 - остальное может быть изменене для удобства решения задачи.
Конкретно сейчас меня интересует реализуемо ли это средствами ELK и, если да, в какую сторону копать.
Спасибо за ответ.
То есть Документ1 это лог, который индексируется как одна записей на строку в elasticsearch с помощью logstash по мере возрастания. И вам надо отреагировать, если один документ содержащий определенную строку находиться близко по времени от другого документа, который содержит другую строку, я правильно понял?
Должна ли эта система игнорировать вот такую ситуацию?
server start
server start
... прошло 10 минут ...
server stop
server stop
Другими словами между "server start" и "server stop" больше 5 минут, но есть два "server start" близко к друг другу.
Да, Документ1 это лог и он индексируется по мере возрастания при помощи Logstash. Каждая строка документа1 это отедльне событие. Одно событие из документа1 должно находится близко по времени к другому событию из этого же документа1.
Документ2 не содержит ничего кроме вариантов сочетаний событий и их критичности.
И да, по прошествии времени реакции уже быть не должно.
Я думаю, самый простой способ это создать поиск по всем событиям в Документ2. Каждое событие завернуть в should в одном большом запросе с типомbool, и еще добавить фильтр, чтобы запрос возвращал только документы созданные с момента прошлого запроса - 5 минут и отсортировать по дате. После исполнения запроса в вашем приложении проверить на сколько близки события.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.