Автоматическое обнаружение аномалий в Elasticsearch

Обнаружение аномалий это довольно обширная тема. Тут нужно учитывать множество факторов: время суток, регион, индекс и.т.д. Для начала нужно вообще разобраться, что для вас является аномалией. Для этого необходимо вручную оценить тренд, сделать визуализацию, и посмотреть в логи за то время, когда, как вам казалось, произшло что-то странное. Поиск аномалий Самый простой путь - это накидать небольшой дашборд с поиском и Timelion графиком по q='*'. Далее двигаясь по временной шкале можно визуально оценить те события, которые на наш взгляд кажутся странными.

API поиска на dynamic.lessmore.pw

Поиск на dynamic.lessmore.pw Как это ваще устроено??? На самом деле API – это открытый всем Elasticsearch, который предоставляет гору возможностей для поиска за счет движка Lucene. Давайте что-нибудь найдем! Вот в этом вот комменте я пообещал рассказать как это все сделать. Приступим. Давайте для начала попробуем поискать этот самый коммент: ii://XWShDDcuR4C8PcrTFdGl. Здесь и далее мы будем использовать только curl. curl -XPOST -d '{"query": {"query_string" : {"fields" : ["msgid"], "query" :"XWShDDcuR4C8PcrTFdGl"}}}' https://dynamic.

Отправляем логи в удаленный logstash

Все привыкли пользоваться связкой ELK. А что делать, если хочется отправить логи в уже существующий ELK с хоста на котором памяти в обрез? У меня получилось так, что на виртуалке с сайтиком всего 512Мб памяти и логстешь при запуске просто выжирал ее всю и падал. Никакие Xmx Xms не помогали. Самое интересное, что логи-то nginx я заставил писать в JSON, а значит logstash выступает просто проксей до эластика. Вот так можно заставить писать nginx в JSON.