docker-compose.yml
yml
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.14.0
container_name: elasticsearch
environment:
- node.name=elasticsearch
- cluster.name=es-docker-cluster
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- xpack.security.enabled=false
- xpack.security.enrollment.enabled=false
- xpack.security.http.ssl.enabled=false
- xpack.security.transport.ssl.enabled=false
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./data/elasticsearch:/usr/share/elasticsearch/data
- ./elasticsearch/plugins:/usr/share/elasticsearch/plugins
ports:
- "9200:9200"
- "9300:9300"
networks:
- elk
restart: unless-stopped
logstash:
image: docker.elastic.co/logstash/logstash:8.14.0
container_name: logstash
volumes:
- ./logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
- ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
ports:
- "5044:5044"
- "15000:5000/tcp"
- "15000:5000/udp"
- "9600:9600"
environment:
- LS_JAVA_OPTS=-Xms256m -Xmx256m
networks:
- elk
depends_on:
- elasticsearch
restart: unless-stopped
kibana:
image: docker.elastic.co/kibana/kibana:8.14.0
container_name: kibana
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- NODE_OPTIONS=--openssl-legacy-provider
- SERVER_NAME=kibana
- SERVER_HOST=0.0.0.0
- ELASTICSEARCH_USERNAME= # 留空以禁用安全
- ELASTICSEARCH_PASSWORD= # 留空以禁用安全
- XPACK_SECURITY_ENABLED=false
- XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=fhjskloppd678ehkdfdlliverpoolfcr
- I18N_LOCALE=zh-CN
- XPACK_FLEET_ENABLED=false
- XPACK_SPACES_ENABLED=false
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- NODE_OPTIONS=--openssl-legacy-provider
networks:
- elk
depends_on:
- elasticsearch
restart: unless-stopped
networks:
elk:
driver: bridge
elasticsearch/config/elasticsearch.yml
yml
cluster.name: "es-docker-cluster"
network.host: 0.0.0.0
# 单节点配置
discovery.type: single-node
# 关闭安全特性(开发环境)
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
# 禁用 HTTPS
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false
# 允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
elasticsearch/plugins
sh
wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.14.0.zip
unzip elasticsearch-analysis-ik-8.14.0.zip -d analysis-ik
rm elasticsearch-analysis-ik-8.14.0.zip
kibana/config/kibana.yml
yml
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://elasticsearch:9200"]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
xpack.security.enabled: false
xpack.encryptedSavedObjects.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcr'
# 添加缺失的 xpack.security 相关配置
xpack.security.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcr'
logstash/config/logstash.conf
conf
input {
tcp {
port => 5000
codec => json
}
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
stdout {
codec => rubydebug
}
}
logstash/config/logstash.yml
yml
http.host: "0.0.0.0"
path.config: /usr/share/logstash/pipeline