Skip to content

Instantly share code, notes, and snippets.

@monolithed
Last active September 4, 2019 06:50
Show Gist options
  • Save monolithed/a3c417665e1d8bf9e9b5c8064a9b1001 to your computer and use it in GitHub Desktop.
Save monolithed/a3c417665e1d8bf9e9b5c8064a9b1001 to your computer and use it in GitHub Desktop.
Kibana + Elasticsearch

Kibana + Elasticsearch

Установка

➜ brew tap elastic/tap
➜ brew install elastic/tap/kibana-full
➜ brew install elastic/tap/elasticsearch-full

Можно собрать OSS версии Kibana и Elasticsearch с модулем безопасности от AWS, но тогда Canvas не будет доступен.

Задать пароли:

➜ elasticsearch-setup-passwords interactive

Директории:

После установки у вас появятся следующие директории.

# Данные
/usr/local/var/lib/elasticsearch/elasticsearch_<$USER>

# Логи
/usr/local/var/lib/elasticsearch/elasticsearch_<$USER>.log

# Плагины
/usr/local/var/elasticsearch/plugins/

# Конфиги
/usr/local/etc/elasticsearch/

# Исходные JS модули для Kibana
/usr/local/var/homebrew/linked/kibana-full/node_modules/

Конфигурирование

  1. Внесите изменения в конфигурационный файл kibana.yml:
elasticsearch.username: "kibana"
elasticsearch.password: "******"
  1. Активируейте модуль безопасности в файле elasticsearch.yml:
xpack.security.enabled: true

Запуск:

➜ elasticsearch
➜ kibana
➜ open http://localhost:5601

Для авторизации в роли администратора используйте учетную запись elastic и пароль, который был задан с elasticsearch-setup-passwords. Информацию по остальным ролям смотрите здесь.

Если управление будет осуществляться в Docker, то используйте следующие команды:

docker-machine start
docker-machine env
eval "$(docker-machine env default)"
docker-compose up

Лицензия:

Перейдите по раздел управления лицензиями, чтобы убедиться, что используется Basic license.

Безопасность

Информацию о настройке SSL смотрите здесь.

Настройка

Read-Only Dashboards

Для настройки Read-Only режима используйте роль kibana_dashboard_only_user

Для того, чтобы вставлять дэшборды во фрейме в конфигурационном файле kibana.yml должно быть следующее:

csp.rules:
  - "script-src 'self'"
  - "frame-src 'self'"
  - "worker-src blob:"
  - "child-src blob:"

Экспорт дэшбордов

Используйте кнопку Share, чтобы поделиться дэшбордом.

  1. Создайте пользователя guest c ролью "kibana_dashboard_only_user".

Если после авторизации этим пользователем возникнет следующая ошибка:

[security_exception] action [indices:data/read/search] is unauthorized for user [guest]

Идите дальше по шагам:

  1. Перейдите в управление ролями.
  2. Выберите Create Role.
  3. В названии роли укажите "read_only_user".
  4. В Секции Cluster privileges выберите "all".
  5. В Секции Run As privileges выберите "guest".
  6. В Indices выберите заранее созданный индекс.
  7. В Privileges выберите "read".
  8. Перейдите в разделе Kibana в секцию Space privileges (кликнуть Add space privilege).
  9. В секции Spaces выберите "* Global (all spaces)".
  10. В секции Privilege выберите "Read".
  11. Вернитесь в редактирование пользователя guest.
  12. В секции Roles выберите "kibana_dashboard_only_user" и "read_only_user".
  13. Авторизуйтесь пользователем guest (например, в анонимном режиме).
  14. Перейдите на владку с дэшбордами.
  15. В верхнем меню выберите "Share -> Embed Code -> Snapshot -> Copy iFrame code".

Если все сделано правильно и возникает ошибка:

User with limited privileges is allowed to create an index pattern with `.kibana`

Выполните:

curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment