Docker下部署ELK(7.8.0版本)

本文档详细介绍了如何在Docker环境下部署Elasticsearch、Kibana和Logstash。首先,通过docker pull命令拉取相应镜像。接着,针对Elasticsearch启动时遇到的内存限制问题,通过修改sysctl.conf文件并调整vm.max_map_count参数来解决。然后,由于缺少默认配置,需要在Elasticsearch配置文件中添加cluster.name、network.host、transport.host、node.name和cluster.initial_master_nodes等参数。对于Kibana,创建kibana.yml文件并设置相关配置,如server.port、server.host、elasticsearch.hosts和i18n.locale。最后,对于Logstash,配置logstash.conf和logstash.yml文件,并在启动时指定配置文件路径。整个过程详细阐述了每个步骤和解决遇到的问题。

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

elastic

拉取镜像:

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.8.0

启动docker:

docker run --name elasticsearch --net elastic -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:7.8.0

启动报错:

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

系统虚拟内存默认最大映射数为65530,无法满足ES系统要求,需要调整为262144以上。

解决:设置vm.max_map_count参数

#修改文件
sudo vim /etc/sysctl.conf
#添加参数
vm.max_map_count = 262144
#重新加载/etc/sysctl.conf配置
sysctl -p

再次启动报错:

the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

-缺少默认配置,至少需要配置discovery.seed_hosts、discovery.seed_providers、cluster.initial_master_nodes中的一个参数

解决:

在虚拟机w'n创建elasticsearch.yml文件,

并添加配置

cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 访问ID限定,0.0.0.0为不限制,生产环境请设置为固定IP
transport.host: 0.0.0.0
# elasticsearch节点名称
node.name: node-1
# elasticsearch节点信息
cluster.initial_master_nodes: ["node-1"]
# 下面的配置是关闭跨域验证
http.cors.enabled: true
http.cors.allow-origin: "*"

再次启动 使用创建的配置文件:

注意修改配置文件路径

docker run -di -p 9200:9200 -p 9300:9300 --name=elasticsearch -v /usr/liuzl/elk/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:7.8.0

kinba:

拉取镜像:

docker pull kibana:7.8.0

创建配置文件kibana.yml

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://20.20.30.61:9200"]
# 操作界面语言设置
i18n.locale: "zh-CN"

启动kibana:

注意修改配置文件路径

docker run -di --name kibana -p 5601:5601 -v /usr/liuzl/elk/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.8.0

logstash:

拉取镜像:

docker pull logstash:7.8.0

启动:

docker run -itd --name logstash  -p 5044:5044 logstash:7.8.0

拷贝出logstash的配置文件:

docker cp logstash:/usr/share/logstash/pipeline/logstash.conf  /usr/liuzl/elk/logstash.conf
docker cp logstash:/usr/share/logstash/config/logstash.yml /usr/liuzl/elk/logstash.yml

修改配置文件:

logstash.conf

input {
  beats {
    port => 5044
  }
}

output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
        hosts => ["elasticIP:9200"]
        user => "elastic"
        password => "changeme"
  }
}

logstash.yml

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://elastic IP:9200" ]

重启

docker run -itd --name logstash  -p 5044:5044 -e "ELASTICSEARCH_HOSTS=http://20.20.30.61:9200" -v /usr/liuzl/elk/logstash.yml:/usr/share/logstash/config/logstash.yml -v /usr/liuzl/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash:7.8.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只不秃头的小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值