我使用 Docker Compose 文件进行 ELK 设置,并使用最新版本(7 以上)进行 Kibana。现在我在
xpack.encryptedSavedObjects.encryptionKey
中设置 kibana.yml
参数,以便我可以使用警报和操作功能。但即使在那之后我也无法创建警报。有人可以帮我吗?
我使用 Python uuid 模块生成了 32 个字符的加密密钥。
我尝试在 docker-compose.yml 文件中使用环境变量作为
kib01:
image: docker.elastic.co/kibana/kibana:${VERSION}
container_name: kib01
depends_on: {"es01": {"condition": "service_healthy"}}
ports:
- 5601:5601
environment:
SERVERNAME: localhost
ELASTICSEARCH_URL: https://es01:9200
ELASTICSEARCH_HOSTS: https://es01:9200
XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY: "743787217A45432B462D4A614EF35266"
volumes:
- /var/elasticsearch/config/certs:$CERTS_DIR
networks:
- elastic
我们已将 xpack.encryptedSavedObjects.encryptionKey 的字符串格式更改为环境变量格式 XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY,方法是将 .与 _ 和全部大写。
根据https://github.com/elastic/kibana/issues/57773,kibana 配置中缺少环境变量
XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY
。 2020 年 2 月,它被合并,现在正在运行。
加密密钥
XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY
必须为32个字符或更长。 https://www.elastic.co/guide/en/kibana/current/using-kibana-with-security.html
工作配置可能如下所示:
...
kibana:
depends_on:
- elasticsearch
image: docker.elastic.co/kibana/kibana:8.0.0-rc2
container_name: kibana
environment:
- ...
- SERVER_PUBLICBASEURL=https://kibana.stackoverflow.com/
- XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=a7a6311933d3503b89bc2dbc36572c33a6c10925682e591bffcab6911c06786d
- ...
...
也许挂载文件有问题,我选择了 docker-compose 文件中的环境变量。
services:
kibana:
...
environment:
...
XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY: abcd...
警报需要
xpack.encryptedSavedObjects.encryptionKey
才能工作,我将其全部大写,例如:
XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY
并作为 ENV 变量传递。参考示例:
kibana-primary-1:
image: docker.elastic.co/kibana/kibana:${STACK_VERSION}
volumes:
- certs:/usr/share/kibana/config/certs
- kibana/data:/usr/share/kibana/data
environment:
- SERVERNAME=kibana-primary-1
- ELASTICSEARCH_HOSTS=https://master-hot-1:9200
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD}
- ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=config/certs/ca/ca.crt
- XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=${ENCRYPTION_KEY}
- SERVER_PUBLICBASEURL=${KIBANA_BASEURL}
并放入
.env
文件:
#BASE URL
KIBANA_BASEURL=https://elk.thequickdesk.com/
#KEYS
ENCRYPTION_KEY=123456789033Ewwrew32