Архитектура ELK(OpenDistro)-роли серверов

  • 22 July 2019
  • taku

Так как уже ELK(OpenDistro) развернул и товарищи просят выложить доки решил создать раздел под ELK начинаю серию статей по разворачиванию стека ELK от амазона OpenDistro

Цели ЕЛК (Централизованный сбор логов для быстрого поиска по тысячам серверов( в разрезе АС-стенд и тип JVM) и графическое отображение ошибок, типов ошибок с WebSphere, FileNet, MQ, Kafka, WildFly, Weblojic

У всех свой лог и свой таймштамп :( 

Ознакомительный этап

Минимум для HA три железных хоста со своими VM
Какие ноды нужно создавать
1)Elasticsearch (Nodes) HeapSize 50%, но не более 32Гб
1.1)DataNodes(3шт+3шт) CPUv4(8)/memory(32gb/64Gb) - Все DataNodes должны быть одинаковыми т.к. кластер работает по самому слабому серверу.
node.data:true служит для хранения и агрегации данных
1.2)MasterNode(3шт) CPUv4/memory4Gb/20GbDisk
node.master:true служит для управления кластером
1.3)Ingest(3шт в контейнере вместе с мастернодой) CPUv4/memory4Gb/40GbDisk
node.ingest:true служит для обработки документов перед индексированием (не обязательное)
1.4)Coordinator CPUv4/memory4Gb/20GbDisk (2шт) служит для выполнения запросов и построения маршрутов к данным, если будет много, то может увеличить нагрузку на кластер можно исспользовать вместе с кибаной
node.data:false
node.master:false
node.ingest:false
search.remote.connect: false

На текущий момент стек состоит из
DataNodes-5шт CPUv8/memory(64gb)/5Tb рекомендуется не больше 6-7Тб на сервер(пока без хот и варм)
MasterNode-3шт CPUv4/memory4Gb/40Gb
Coordinator-2шт CPUv4/memory4Gb/40Gb
Logstash-2шт CPUv4/memory4Gb/40Gb
HAPROXY-2шт CPUv2/memory4Gb/40Gb

2)Kibana-2шт Ставиться на Coordinator и подключается к localhost:9200
3)Логи
3.1)Logstash (отправляет структурированные данные в elastic) работает с тремя цепочками(INPUT-FILTER-OUTPUT) нужен поставщик логов на стороне клиента
3.1.1)FileBeat(в настройках filebeat-daemonset.yml
---------------------------
filebeat.yml
scan_frequency - scan disk влияет на CPU
---------------------------
Ограничение скорости передачи данных(TrafficControl) с клиента на сервер настраивается на клиенте на линуксе
tc qdisc add dev $DEV root handle 1: htb
tc class add dev $DEV parent 1:1 classid 1:10 htb rate 256kbps ceil 256kbps
tc filter add dev $DEV parent 1:0 prio 1 protocol ip handle 10 fw flowid 1:10
iptables -A OUTPUT -t mangle -p tcp --dport 5044 -j MARK --set-mark 10

3.2)еще как вариант
HEKA & HINDSIGHT(DOCKER) (клиент-серверный вариант) HEKA ставиться на клиента и на сервер Elastic в конфиге можно отконфигурировать кол. ядер cpu задейстованных на работу - проект нужно собирать из исходнтков
http://mozilla-services.github.io/hindsight/
3.3)Fluent под windows отсутствует замена nxlog
---------------------------
Мониторинг состояния
для мониторинга индексов cerebro is an open source(MIT License) elasticsearch web admin tool built using Scala, Play Framework, AngularJS and Bootstrap.
https://github.com/lmenezes/cerebro
для управления и базового мониторинга ElasticHQ бесплатный для личного с одним репозиторием
http://www.elastichq.org/features.html
https://hub.docker.com/r/elastichq/elasticsearch-hq/

Комментарии

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.