Upload
ontico
View
188
Download
3
Embed Size (px)
Citation preview
ElasticSearch и Heka: какмы учились просеиватьслона через сито
Адель Сачков, Яндекс.Деньги
Проблемы:
Разные платформы (Java, C, NodeJS, PHP, …)
Разные системы (Nginx, PostgreSQL, Jira, Mail, …)
Разное окружение (Bare-Metal, OpenStack, LXC, Docker, …)
Объёмы (over 9000)
Разные форматы
Требования
Нетребовательность к окружению
Нетребовательность к ресурсам
Большой объём данных
Real-time
Не терять данные при обрывах связи
Фильтрация данных on-the-fly
Heka!
Почему Heka
GO!
Скорость
Регулярные выражения
Плагины на Lua/Go
Фильтрация чувствительных данных
Обработчик и транспорт в одном
Буферизация
Настройки
Input: logstreamer
Rescan interval: 2500
Decoder: PayloadRegexDecoder
Output buffers: 1Gb/service
Buffer policy: Block
habrahabr.ru/company/yamoney
Logs-cluster: Incoming records per sec (7d)
ElasticSearch это:
Lucene
Полнотекстовый мультииндексный поиск
Kibana
REST API
Небольшие объёмы
Шардирование и репликация
Кластер
Состав:
4 х Intel Xeon, 2xE5-2640 v3; 512 ГБ ОЗУ, 3x16 ТБ RAID-10• 3 x Master Nodes• 2 x Client Nodes• 8 x Data Nodes
2 x Intel Xeon 2x E5-2640 v3; 128 ГБ ОЗУ, 150 ГБ RAID-1• 4 x Heka Pools (Haproxy + 3 x Heka)
LXC-контейнеры
Настройки
1 индекс – 1 приложение
Новый индекс каждый день
Number of shards = Number of data-nodes: 8
Number of replicas: 2
es_index_from_timestamp = false
Shard Allocation Awareness …
No Shard Allocation Awareness
node.attr.rack_id: lxc.host.X"allocation": "awareness": "attributes": "rack_id"
Результаты
Статистика за сутки
3ТБ 2.7 млрд 40к 250 ms
Трафик Записи Запросы к Kibana
Времязапроса
Суммарно
21 день 60 млрд. 66 ТБ
Период хранения
Записи Объём
Мониторинг
Zabbix
Уровень сервера (CPU, Memory, I/O, Network)
Приложение
Сервис (Буферы Heka, Haproxy connections)
JMX / Jolokia (Heap, потоки)
ElasticSearch API …
+
Logs (Heka, ElasticSearch)
ElasticSearch Metrics
Status (Green/Yellow/Red) Relocating shards Number of initializing shards Unassigned shards Number of pending tasks Task Max Waiting in queue (ms) Active Shards Percent Thread pool – Bulk Rejected
Безопасность
Требования
Авторизация в LDAP
Раздельные доступы на индексы
Read/Write-права для приложений
Ограничение доступа к настройкам в Kibana
Anomaly Detector
X-Pack? (спойлер: нет)
ReadonlyREST:
Авторизация в LDAP
R/W-доступ к индексам через API
Уровни доступа к Kibana
Аудит событий
X-Pack (basic license):
Мониторинг и статистика
ElastAlert:
Алерты по spike/freq/flat
Уведомления в Jira, Slack, Telegram
Итог