Docker 下安装 ES, Kibana
记录在 Docker 中安装 Elasticsearch 7.14.2 及 Kibana 7.14.2, 构建一个单机的实验环境。
环境配置
1. vm.max_map_count
vm.max_map_count 最小设置为 262144,
1 | vi /etc/sysctl.conf |
或临时生效:sysctl -w vm.max_map_count=262144
创建网络
1 | docker network create elastic |
安装 Elasticsearch 7.14.2
1 |
|
说明:
- TAKE_FILE_OWNERSHIP=true:使用文件挂载之后,容器可能没有访问宿主机的权限,设置该环境变量,可以解决该问题;
- elasticsearch.yml:将该文件挂载到宿主机,可以方便进行配置;
- 安装目录:elasticsearch 默认安装在 /usr/share/elasticsearch 目录下。
elasticsearch.yml 内容:
1 | # 集群名称 |
安装 Kibana 7.14.2
1 | docker pull docker.elastic.co/kibana/kibana:7.14.2 |
说明:
- kibana.yml:将该文件挂载到宿主机,可以方便进行配置;
- 目录挂载:使用文件挂载之后,容器可能没有访问宿主机的权限,可以将宿主机目录授权为所有用户访问(生产环境不建议使用);
kibana.yml 内容:
1 | # |
停止容器
1 | docker stop es01-test |
启动容器
1 | docker start es01-test |
删除容器
1 | docker network rm elastic |
访问地址 (URL)
1 | # es: |
设置安全账号
使用基本和试用许可证时,默认情况下会禁用 Elasticsearch 安全功能。开启安全功能之后,在单结点模式下可以不用开启 SSL. 在集群模式同时需要开启结点间的 SSL, 否则不能启动。最终配置的结果是通过 url 及 kibana 访问集群需要输入用户名及密码。
开启 Elastic 安全功能
操作之前先停止 Kibana 及 Elasticsearch 服务。
1. 开启 xpack.security.enabled
在 ES_PATH_CONF/elasticsearch.yml 文件中加入如下配置:
1 | xpack.security.enabled: true |
2. 启用 single-node 发现模式
在 ES_PATH_CONF/elasticsearch.yml 文件中加入如下配置:
1 | discovery.type: single-node |
3. 重启 Kibana 及 ElElasticsearch
完成以上两项配置之后重启 Kibana 及 Elasticsearch.
为内置用户编辑创建密码
使用 /bin/elasticsearch-setup-passwords 设置内置用户的密码,这些用户用于特定的管理目的:apm_system,beats_system,elastic,kibana,logstash_system 和 remote_monitoring_user.
1 | # 进入容器 |
按照提示可以为每一个内置用户生成一个密码。完成之后使用 http://ip:9200/
访问集群,需要输入 elastic 用户的密码。
为 Kibana 添加内置用户
启用 Elasticsearch 安全功能后,用户必须使用有效的用户 ID 和密码登录 Kibana。
Kibana 还执行一些需要使用内置 kibana 用户的任务。
如果对安全没有强烈要求的话,可以 kibana.yml 文件中配置 kibana 用户名及密码。
1 | elasticsearch.username: "kibana" |
另外也可以通过 创建 Kibana 密钥库来保存密码,或在启动参数中加入用户名/密码。
参考: