以下是使用Docker Compose搭建带有认证的单节点Elasticsearch和Kibana的步骤:
创建一个新文件夹,命名为
elk
,在该文件夹下创建一个新文件,命名为docker-compose.yml
编辑
docker-compose.yml
文件,添加以下内容:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1
container_name: elasticsearch
environment:
- xpack.security.enabled=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
volumes:
- data_elasticsearch:/usr/share/elasticsearch/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9200/_cat/health"]
interval: 30s
timeout: 10s
retries: 5
kibana:
image: docker.elastic.co/kibana/kibana:7.15.1
container_name: kibana
depends_on:
- elasticsearch
ports:
- 5601:5601
environment:
ELASTICSEARCH_URL: http://elasticsearch:9200
ELASTICSEARCH_HOSTS: http://elasticsearch:9200
SERVER_NAME: kibana.example.org
XPACK_SECURITY_ENABLED: "true"
ELASTICSEARCH_USERNAME: elastic
ELASTICSEARCH_PASSWORD: changeme
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5601"]
interval: 30s
timeout: 10s
retries: 5
volumes:
data_elasticsearch:
driver: local
- 运行以下命令启动Elasticsearch和Kibana:
docker-compose up -d
- 等待一段时间,直到两个容器正常运行。可以使用以下命令检查状态:
docker-compose ps
访问
http://localhost:5601
,使用用户名elastic
和密码changeme
登录Kibana。配置密钥和证书以实现更安全的通信。这里为了简化步骤,我们没有使用TLS加密,请注意在生产环境中必须使用TLS加密。
完成以上步骤后,您应该拥有一个带有认证的单节点Elasticsearch和Kibana实例。