- Импорт ключа GPG
Elasticsearch
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
- Добавление репозитория
sudo vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=0 autorefresh=1 type=rpm-md
- Устанавливаем Kibana
sudo dnf install --enablerepo=elasticsearch kibana -y
- Активируем сервис Kibana
sudo systemctl enable kibana
- Устанавливаем
java
. Совместимость версий можно проверить тутsudo dnf install java-1.8.0-openjdk -y
Конфигурация Kibana
Правим файл конфигурации по стандартному пути /etc/kibana/kibana.yml.
- Добавляем доменное имя и порт, который будет слушать kibana
server.host: elk-kibana.my.lan server.port: 5601
- Указываем имя сервера (должно совпадать с именем хоста)
server.name: "elk-kibana"
- Указываем хосты кластера
elasticsearch
elasticsearch.hosts: ["http://elk-node1.my.lan:9122", "http://elk-node2.my.lan:9122", "http://elk-node3.my.lan:9122" ]
- Стартуем kibana
sudo systemctl start kibana sudo systemctl status kibana
- Получаем доступ к по url
Включаем TLS
Если нужно использовать htpps
, то выполняем следующее
- Получаем сами сертификаты ( у меня в формате
pfx
) - Экспортируем публичный сертификат
openssl pkcs12 -in /tmp/elk-kibana.my.lan.pfx -clcerts -nokeys -out /tmp/elk-kibana.my.lan.crt
- Экспортируем приватный ключ
openssl pkcs12 -in /tmp/elk-kibana.my.lan.pfx -nocerts -nodes -out /tmp/elk-kibana.my.lan.key
- Копируем сертификаты в директорию конфигураций kibana.
sudo cp /tmp/elk-kibana.my.lan.crt /etc/kibana/elk-kibana.my.lan.crt sudo cp /tmp/elk-kibana.my.lan.key /etc/kibana/elk-kibana.my.lan.key sudo cp /etc/pki/ca-trust/source/anchors/root-ca.crt /etc/kibana/root-ca.crt sudo chmod 660 /etc/kibana/elk-kibana.my.lan.crt /etc/kibana/elk-kibana.my.lan.key
- Настраиваем
TLS
sudo vim /etc/kibana/kibana.yml
server.ssl.enabled: true server.ssl.certificate: /etc/kibana/elk-kibana.my.lan.crt server.ssl.key: /etc/kibana/elk-kibana.my.lan.key
- Перезапускаем kibana
sudo systemctl restart kibana
- Получаем доступ к по url
Авторизация в кластере Elasticsearch
Если у вас требуется аутентификация на узлах elasticsearch
, то указываем логин и пароль для авторизации. Как задавать пароли стандартным пользователям кластера я уже писал ранее.
- Назначаем логин и пароль
sudo vim /etc/kibana/kibana.yml
elasticsearch.username: kibana_system elasticsearch.password: pwd
- Если кластер с использованием
ssl
sudo vim /etc/kibana/kibana.yml
elasticsearch.ssl.certificateAuthorities: /etc/kibana/root-ca.crt
- Перезапускаем kibana
sudo systemctl restart kibana
- Получаем доступ к по url и авторизуемся под
elastic
, который является пользователем кластера.
Балансировка нагрузки между несколькими узлами Elasticsearch
Для снижения нагрузки на узлы кластера, которые являются хранилищами данных рекомендуется использовать узел с ролью сoordinating only
вместе с kibana. Узлы с ролью сoordinating only
- это, по сути, интеллектуальные балансировщики нагрузки, которые являются частью кластера и находятся между kibana и кластером elasticsearch
.
- Устанавливаем elasticsearch на ноду с kibana
sudo dnf install elasticsearch -y
- Устанавливаем роль только
сoordinating only
sudo vim /etc/elasticsearch/elasticsearch.yml
node.master: false node.data: false node.ingest: false
- Назначаем имя кластера и другие базовые параметры
sudo vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-cluster http.port: 9122 transport.tcp.port: 9322 discovery.zen.ping.unicast.hosts: ["elk-node3.my.lan", "elk-node2.my.lan","elk-node1.my.lan","elk-kibana.my.lan"]
-
Естественно список хостов в
discovery.zen.ping.unicast.hosts
нужно привести к одному виду на всех узлахelasticsearch
. Чтобы понять о чём речь можно прочитать мои предыдущие статьи. - Перезапускаем все ноды
elastcisearch
в кластереsudo systemctl restart elasticsearch
- Проверяем статус кластера
elastcisearch
(должно стать на одну ноду больше)sudo curl http://elk-node3.my.lan:9122/_cluster/health
{"cluster_name":"my-cluster","status":"green","timed_out":false,"number_of_nodes":4,"number_of_data_nodes":3,"active_primary_shards":8,"active_shards":16,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":0,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,"task_max_waiting_in_queue_millis":0,"active_shards_percent_as_number":100.0
- Теперь меняем
elasticsearch.hosts
для kibana (elk-kibana.my.lan потому, что нода с рольюсoordinating only
на том же хосте что и kibana)sudo vim /etc/kibana/kibana.yml
elasticsearch.hosts: ["https://elk-kibana.my.lan:9122:9122"]
- Перезапускаем kibana
sudo systemctl restart kibana
Комментарии