Создание кластера OpenDistro

  • 29 November 2019
  • taku

1) определяемся с ролью сервера для нас это ALLinOne без warm, с двумя репликами, важно определиться до того как пойдет поток потому, что прийдется сперва сделать шаблон с названиями и настройкой сколько будет реплик и шард. 
Кучу шард под один небольшой сервис делать нет смысла, но и один большой тоже, важно придерживаться правила один шард около 30Гб.

mcedit /etc/elasticsearch/elasticsearch.yml
прописываем кластерное имя оно одно для всех нод в кластере
cluster.name: ct01
имя ноды уникальное желательно чтобы несла смысловую нагрузку удобно мониторить в кластере
node.name: nd01
прописываем где сервер находится для отказоустойчивости мол полка 1 это нужно что бы еластик понимал, что реплики на одной полке не держать
node.attr.rack: r1
путь где будут храниться данные, можно через запятую указать несколько путей
path.date: /elstore
Для ТЕСТА!! можно оставлять еластик на всех адресах
network.host: 0.0.0.0
http.port: 9200
Для кластера прописываем хосты которые будут в кластере
#discovery.zen.ping.multicast.enabled: false #отключаем в целях ошибочных подключений
discovery.zen.ping.unicast.hosts: ["10.xx.xx.x1" , "10.xx.xx.x2" , "10.xx.xx.x3"]
action.destructive_requires_name: true #запрещает удаление всех индексов сразу, только по одному

bootstrap.memory_lock: true

discovery.zen.minimum_master_nodes: 1 #показывает минимальное кол. серверов для кластера ( из трех серверов нужно мин 2 мастерноды! данный параметр можно поменять через put /cluster/settings без перезапуска сервиса)
node.max_local_storage_nodes: 1 #разрашает различным нодам подключаться к общей шаре в прод. не используется у нас своя шара для своего сервера
#gateway.recover_after_nodes: 3 #настройка влияет на то, что кластер будет считаться работоспособным, когда будет доступно 3 ноды 
#восстановление кластера начнется через 5 минут когда появится 3 ноды или сразу когда появится 5 нод
#gateway.expected_nodes: 5
#gateway.recover_after_time: 5m

------------

Для того что бы зарезервировать всю память под сервер необходимо:

добавить в раздел [Service]
mcedit /usr/lib/systemd/system/elasticsearch.service
LimitMEMLOCK=infinity

LimitNOFILE=500000

раскоментируем
mcedit /etc/sysconfig/elasticsearch
MAX_LOCKED_MEMORY=unlimited

MAX_OPEN_FILES=500000

systemctl daemon-reload && systemctl restart elasticsearch

watch tail -20 /var/log/elasticsearch/ct01.log

------------
Настраиваем jvm.options
Прописываем Xms & Xmx 50% от общей памяти, но не более 32Gb

---меняем пароль от admin, kibanaserver, logstash-----------
cd /usr/share/elasticsearch/plugins/opendistro_security/tools
sh hash.sh генерируем три хеша bcrypt для трех паролей
вносим новый хеш пароля в internal_users.yml
mcedit /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml

после внесения изменений запускаем из 

sh /usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh -cd /usr/share/elasticsearch/plugins/opendistro_security/securityconfig -cn ct01 -arc -nhnv -cacert /etc/elasticsearch/root-ca.pem -cert /etc/elasticsearch/kirk.pem -key /etc/elasticsearch/kirk-key.pem

Включаем автостарт сервиса

systemctl enable elasticsearch.service

------------------
Настраиваем Кибану
mcedit /etc/kibana/kibana.yml
правим elasticsearch.url: https://10.xx.xx.xx1:9200
elasticsearch.password: новый пароль
server.host: "0.0.0.0"
------------------

после 
service kibana.service restart
systemctl enable kibana.service

заходим по адресу http://10.xx.xx.xx1:5601

----------------------------------------------
Далее настраиваем оставшиеся ноды в таком же ключе повторяем n е кол. раз. с учетом ролей нод
поднимаем 10.xx.xx.xx2
hostname vm02 CPUv4/32Gb/118Gb
cat /proc/cpuinfo && free -m && df -h
записываем данне в ТТХ
ставим ПО
настраиваем elasticsearch.yml
копируем с предыдущего и изменяем параметры
node.name: vm02
node.attr.rack: r2

--------------------
Настраиваем Кибану
mcedit /etc/kibana/kibana.yml
правим elasticsearch.url: https://10.xx.xx.xx2:9200
elasticsearch.password: пароль с первой ноды # база пользователей одна т.е. необходимо произвести первоначальные настройки на первом сервере после того как остальные сервера подключаются к кластеру рабочие индексы настроек синхронизируются между собой по порту 9300

server.host: "0.0.0.0"

Далее настраиваем оставшиеся ноды в таком же ключе повторяем n е кол. раз. с учетом ролей нод
поднимаем 10.xx.xx.xx5
hostname vm03 CPUv4/32Gb/118Gb
cat /proc/cpuinfo && free -m && df -h
записываем данне в ТТХ
ставим ПО
настраиваем elasticsearch.yml
копируем с предыдущего и изменяем параметры
node.name: vm03
node.attr.rack: r3

----------

ВАЖНО !!!Настраиваем количество шард и реплик в DevTools веб кибаны шарды изменить нельзя если индекс уже создан, но так как индексы создаются каждый день, то новые правила будут применяться уже при создании нового индекса см раздел curator

POST _template/default
{
"index_patterns": ["*"],
"template": ["*"],
"order": -1,
"settings": {
"number_of_shards": "3",
"number_of_replicas": "2"
}
}

Комментарии

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

Plain text

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