使用Docker搭建单机ES

本文详细介绍了如何使用Docker在单机环境中部署Elasticsearch(ES),包括初始化目录、配置文件设置、添加ik分词器、设置ES密码、启动容器以及配置Kibana可视化工具。通过这些步骤,读者可以成功搭建一个带有基本安全设置的单节点ES集群,并配合Kibana进行数据可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单机环境部署

初始化相关目录
mkdir -p /home/data/es/{config,plugins,data}
准备配置文件

vim /home/data/es/config/elasticsearch.yml

  • 将下面的内容粘贴到elasticsearch.yml
# 集群名
cluster.name: docker-cluster
# 节点名
node.name: node
# 监听ip
network.host: 0.0.0.0
# 开启x-pack插件,用于添加账号密码
xpack.security.enabled: true
修改系统设置
  • 修改该配置是为了防止es在启动时出现下面的错误

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

echo
<think>我们正在使用Docker在CentOS上安装Elasticsearch和ELK(Elasticsearch, Logstash, Kibana)。以下是步骤: ### 1. 安装Docker 确保系统已安装Docker。如果没有安装,请执行: ```bash sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker ``` ### 2. 安装Docker Compose Docker Compose用于定义和运行多容器应用。安装步骤: ```bash sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version # 验证安装 ``` ### 3. 创建目录和配置文件 为ELK组件创建挂载目录并设置权限: ```bash mkdir -p /usr/local/elk/{es/data,es/plugins,es/config,logstash,kibana/config,kibana/data} chmod -R 777 /usr/local/elk # 确保权限,避免容器启动失败 ``` ### 4. 配置Elasticsearch 创建Elasticsearch配置文件: ```bash vim /usr/local/elk/es/config/elasticsearch.yml ``` 内容如下: ```yaml cluster.name: "my-es" network.host: 0.0.0.0 http.port: 9200 # 单节点模式 discovery.type: single-node ``` ### 5. 配置Kibana 创建Kibana配置文件: ```bash vim /usr/local/elk/kibana/config/kibana.yml ``` 内容如下: ```yaml server.host: "0.0.0.0" server.port: 5601 elasticsearch.hosts: ["http://elasticsearch:9200"] ``` ### 6. 配置Logstash 创建Logstash配置文件: ```bash mkdir -p /usr/local/elk/logstash/config vim /usr/local/elk/logstash/config/logstash.conf ``` 示例配置(简单接收beats输入,输出到Elasticsearch): ```conf input { beats { port => 5044 } } output { elasticsearch { hosts => ["http://elasticsearch:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } } ``` ### 7. 编写docker-compose.yml 在`/usr/local/elk`目录下创建`docker-compose.yml`: ```bash vim /usr/local/elk/docker-compose.yml ``` 内容如下: ```yaml version: '3' services: elasticsearch: image: elasticsearch:7.17.0 container_name: elasticsearch environment: - discovery.type=single-node volumes: - /usr/local/elk/es/data:/usr/share/elasticsearch/data - /usr/local/elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml - /usr/local/elk/es/plugins:/usr/share/elasticsearch/plugins ports: - "9200:9200" - "9300:9300" networks: - elk logstash: image: logstash:7.17.0 container_name: logstash volumes: - /usr/local/elk/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf ports: - "5044:5044" networks: - elk depends_on: - elasticsearch kibana: image: kibana:7.17.0 container_name: kibana volumes: - /usr/local/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml ports: - "5601:5601" networks: - elk depends_on: - elasticsearch networks: elk: driver: bridge ``` ### 8. 启动ELK 在`/usr/local/elk`目录下运行: ```bash docker-compose up -d ``` ### 9. 验证安装 - Elasticsearch: `curl http://localhost:9200` - Kibana: 访问 `http://<服务器IP>:5601` ### 10. 安装IK分词器(可选) 进入Elasticsearch容器安装IK分词器: ```bash docker exec -it elasticsearch bash ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.0/elasticsearch-analysis-ik-7.17.0.zip exit docker restart elasticsearch ``` ### 注意事项 1. 确保CentOS防火墙开放9200、5601、5044等端口。 2. 如果遇到权限问题,检查挂载目录权限(`chmod -R 777 /usr/local/elk`)。 3. 内存要求:ELK需要较多内存,建议服务器内存至少4GB。 通过以上步骤,您可以在CentOS上使用Docker成功搭建ELK环境。 §§相关问题§§ 1. 如何配置Elasticsearch集群(多节点)? 2. 如何通过Filebeat将日志发送到Logstash? 3. Kibana中如何创建索引模式并可视化数据? 4. 如何优化ELK性能?</think>### 在CentOS上使用Docker安装Elasticsearch及ELK环境 #### 1. **安装Docker** ```bash sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker ``` #### 2. **安装Docker Compose** ```bash sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version # 验证安装 ``` #### 3. **创建目录结构** ```bash mkdir -p /usr/local/elk/{es/data,es/plugins,es/config,logstash,kibana/config,kibana/data} chmod -R 777 /usr/local/elk # 解决权限问题 ``` #### 4. **配置Elasticsearch** ```bash vim /usr/local/elk/es/config/elasticsearch.yml ``` 配置文件内容: ```yaml cluster.name: "my-es" network.host: 0.0.0.0 http.port: 9200 discovery.type: single-node # 单节点模式 ``` #### 5. **配置Kibana** ```bash vim /usr/local/elk/kibana/config/kibana.yml ``` 配置文件内容: ```yaml server.host: "0.0.0.0" server.port: 5601 elasticsearch.hosts: ["http://elasticsearch:9200"] ``` #### 6. **创建docker-compose.yml** ```bash vim /usr/local/elk/docker-compose.yml ``` ```yaml version: '3' services: elasticsearch: image: elasticsearch:7.17.0 container_name: elasticsearch environment: - discovery.type=single-node volumes: - /usr/local/elk/es/data:/usr/share/elasticsearch/data - /usr/local/elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml - /usr/local/elk/es/plugins:/usr/share/elasticsearch/plugins ports: - "9200:9200" - "9300:9300" networks: - elk kibana: image: kibana:7.17.0 container_name: kibana volumes: - /usr/local/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml ports: - "5601:5601" networks: - elk depends_on: - elasticsearch networks: elk: driver: bridge ``` #### 7. **启动ELK服务** ```bash cd /usr/local/elk docker-compose up -d ``` #### 8. **验证安装** - Elasticsearch: `curl http://localhost:9200` - Kibana: 访问 `http://<服务器IP>:5601` #### 9. **安装IK分词器(可选)** ```bash docker exec elasticsearch bash -c "./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.0/elasticsearch-analysis-ik-7.17.0.zip" docker restart elasticsearch ``` ### 关键配置说明 1. **权限问题**:必须执行 `chmod -R 777` 避免挂载目录权限错误[^4] 2. **单节点模式**:`discovery.type=single-node` 简化单机部署[^1] 3. **网络配置**:使用自定义网络 `elk` 实现容器间通信 4. **版本一致性**:所有组件使用相同版本(如7.17.0) ### 常见问题解决 - **启动失败**:检查 `docker logs elasticsearch` 查看错误日志 - **端口冲突**:确保9200/5601端口未被占用 - **内存不足**:建议服务器内存≥4GB,可通过 `-e ES_JAVA_OPTS="-Xms1g -Xmx1g"` 调整ES内存
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值