部署ES(Elasticsearch)+kibana
1.ES暴露的端口很多
2.ES十分消耗内存
3.ES的数据一般需要挂载出去,放在安全目录(挂载)
elastic
前往官方手册
1.下载运行elasticsearch的
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch
这里不用--net somenetwork这个参数,这是docker网络,暂时不用
用下面这个
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch
用docker ps -a 看到elasticsearch已经是推出状态
我又重新启动一个elasticsearch01容器
然后看了日志,原来是因为我的服务器不够elasticsearch占有内存导致
这样的话,设置它的启动后占有的内存
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" elasticsearch
再用docker ps查看
这里我用的Xterminal软件,所以可以很直观的看到很占内存。
也可以用docker stats
验证是否运行成功,curl localhost:9200
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" elasticsearch
这个内存占用还是太大
在修改为
docker run -d --name elasticsearch04 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" elasticsearch
参数含义:
-e "discovery.type=single-node" 设置环境变量 指定 Elasticsearch 以单节点模式运行(无需集群)
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 设置 JVM 堆内存参数 -Xms512m 初始堆内存,-Xmx512m 最大堆内存
安装Kibana镜像
docker pull kibana
docker run -d --name kibana01 -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://elastissearch04:9200" --link elasticsearch:elasticsearch04 kibana
我这里准备kibana连接ES,发现不成功
说是容器不存在,没有启动
检查发现两处错误
启动成功
尝试curl loclhost:5601验证
去web页面访问一下。
这并没有来连接成功
应该是我的容器名地址错误
上面的命令应该是没有给我配置,下面是我的思路
命令:
# 进入 Kibana 容器 docker exec -it kibana /bin/bash # 检查配置文件是否存在 ls /usr/share/kibana/config/ # 如果不存在,创建配置目录和文件 mkdir -p /usr/share/kibana/config/ echo "elasticsearch.url: 'http://elasticsearch:9200'" > /usr/share/kibana/config/kibana.yml echo "server.host: '0.0.0.0'" >> /usr/share/kibana/config/kibana.yml # 退出并重启 Kibana exit docker restart kibana
尝试ping
能够ping
理论上可以了
页面去成功访问。
设置密码
# 进入容器 docker exec -it elasticsearch /bin/bash # 编辑配置文件(使用 vi/nano 或直接追加配置) echo "xpack.security.enabled: true" >> /usr/share/elasticsearch/config/elasticsearch.yml echo "xpack.security.http.ssl.enabled: false" >> /usr/share/elasticsearch/config/elasticsearch.yml # 开发环境禁用 HTTPS exit
重启es服务
docker restart elasticsearch
这里重启之后,ES就挂掉了,大概率是因为内存的原因
# 进入 Kibana 容器 docker exec -it kibana /bin/bash # 编辑配置文件 echo "elasticsearch.username: 'elastic'" >> /usr/share/kibana/config/kibana.yml echo "elasticsearch.password: '你刚设置的密码'" >> /usr/share/kibana/config/kibana.yml exit
重启
docker restart kibana
如果是Kibana挂掉了,又2种方法,
第一种就是通过挂载卷修复(适合生产环境)
第二种就是直接修改 Kibana 配置(推荐)生产环境慎用!完成后需重新启用认证。
目前没有学挂载,使用第二种