Docker 启动Kibana服务 (ES 开启SSL认证的情况下)
Elasticsearch 服务配置说明
- full:它验证所提供的证书是否由受信任的权威机构(CA)签名,并验证服务器的主机名(或IP地址)是否与证书中识别的名称匹配
- certificate:它验证所提供的证书是否由受信任的机构(CA)签名,但不执行任何主机名验证
- none:它不执行服务器证书的验证
http.port: 9200 # http端口
transport.tcp.port: 9300 # tcp端口
xpack.security.enabled: true # 启用节点上ES的XPACK安全功能
# xpack.security.transport.ssl 传输层的认证设置
xpack.security.transport.ssl.enabled: true #启用https
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12 # 密钥存储库文件的存放位置
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12 # 信任存储库文件的存放位置
# xpack.security.http.ssl 开启https的
xpack.security.http.ssl.enabled: true #启用https
xpack.security.http.ssl.verification_mode: certificate
xpack.security.http.ssl.keystore.path: elastic-certificates.p12 # 密钥存储库文件的存放位置
xpack.security.http.ssl.truststore.path: elastic-certificates.p12 # 信任存储库文件的存放位置
http.cors.allow-headers: Authorization
http.cors.enabled 是否支持跨域,默认为false
http.cors.allow-origin 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.max-age 浏览器发送一个“预检”OPTIONS请求,以确定CORS设置。最大年龄定义多久的结果应该缓存。默认为1728000(20天)
http.cors.allow-methods 允许跨域的请求方式,默认OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers 跨域允许设置的头信息,默认为X-Requested-With,Content-Type,Content-Length
http.cors.allow-credentials 是否返回设置的跨域Access-Control-Allow-Credentials头,如果设置为true,那么会返回给客户端。
Kibana docker 启动命令
docker run -d -e ELASTICSEARCH_USERNAME=elastic -e ELASTICSEARCH_PASSWORD=petsAWgNI5WuC9NED2QK -e ELASTICSEARCH_HOSTS=https://10.0.3.151:9220/ --name=kibana-151-9220 -p 5601:5601 -e I18N_LOCALE="zh-CN" --log-opt max-size=100m --log-opt max-file=5 kibana:7.16.2
如果遇到elasticsearch密码是123456 报错要求密码是个string 可以不设置环境变量
- 先启动docker
docker run -d --name=kibana-151-9220 -p 5601:5601 -e I18N_LOCALE="zh-CN" --log-opt max-size=100m --log-opt max-file=5 kibana:7.16.2
- 停止容器
docker stop kibana-151-9220
- 拷贝配置文件
docker cp kibana-151-9220:/usr/share/elasticsearch/config/elasticsearch.yml /path/to/your/workspace/elasticsearch.yml
- 手动配置
elasticsearch.hosts: [ "http://10.0.7.161:9200/" ]
elasticsearch.username: "elastic"
elasticsearch.password: "your_password"
- 再次拷贝文件到容器
docker cp /path/to/your/workspace/kibana.yml kibana-151-9220:/usr/share/kibana/config/kibana.yml
注意事项
- docker网络采用桥接 host方式会占用端口(不推荐使用)
- 如果es开启了ssl 那么ELASTICSEARCH_HOSTS应该改为https请求
- 如果es开启了证书校验 需要在kibana.yml中增加如下配置
#kibana启动会warning 如果不配置以下三个配置
#如果没指定加密密钥,Kibana会在启动时自动生成一个随机密钥。这样每次重启无法解密上次的加密数据,所以要指定
xpack.encryptedSavedObjects.encryptionKey: bbd204891a2da0de5ad1d7e215a8bffa
#设置为任意文本字符串,默认情况下,Kibana在启动时生成一个随机键,这会导致重新启动时挂起的报表失败,将此设置配置为在重启时使用相同的键
xpack.reporting.encryptionKey: 020ce81c5ce77455324bc1a96746b87e
xpack.security.encryptionKey: 16f1cd3c32b65763df9c0f4e693b114c
#用于指定Elasticsearch实例的CA证书文件路径,以便Kibana能够通过SSL加密的连接安全地连接到Elasticsearch。
#elasticsearch.ssl.certificateAuthorities: ["/usr/share/kibana/config/elastic-certificates.p12"]
#不进行任何证书校验
elasticsearch.ssl.verificationMode: none