ELK stack

ELK stack — стандартное решение для сбора логов с серверов, их анализа и визуализации.


Elasticsearch — пакет, отвечающий за поиск и хранение, основа системы.


Kibana — веб-интерфейс для Elasticsearch

Logstash — компонент, позволяющий обрабатывать логи с серверов.

Filebit — клиент, который используется для передачи логов на центральный сервер.



Чтобы стэк работал все компоненты обязательно должны быть одной версии. Основой является Elasticsearch. Клиентские приложения могут работать напрямую с Elasticsearch обмениваясь с ним информацией по RESTapi. Без других компонентов.



Краткое описание Elasticsearch

Эластик основан на библиотеке Apache Lucene. В нем есть 3 типа объектов: Document, Type и Index.

Document — аналог записи в реляционных базах данных

Type — аналог таблицы в реляционных базах данных (Schema)

Index — аналог базы в реляционных БД



Эти 3 типа объектов представлены один за другим в URL при запросе.

Особенности Elasticsearch

Дает RESTfull APIs (GET, POST, PUT)

Представляет собой NoSQL базу

Передает через piplyne syslog на центральный сервер.

shard — один экземпляр приложения, Lucene контейнер с ролью — Primary. Для каждого Primary может быть одна или более реплик (Replica)




Релевантность поиска определяется по такой формуле

Relevance = Term Frequency/ Document Frequency




PUT /testindex
{"settings":
{"number_of_shards": 3,
"number_of_replicas": 1
}
}

Всего 6 серверов.

На Primary выполняется запись, чтение всегда со случайно выбранной реплики. Данные с Primary реплицируются на реплики. В случае выхода из строя одного из серверов роли автоматически меняются, конечный пользователь не замечает каких-либо изменений.

Запись опубликована автором в рубрике ELK.