docker搭建elasticsearch+kibana
工作中需要对公司的es服务器进行配置,小白不敢直接在公司的开发机上直接修改。故需要在测试机上临时搭建一个es+kibana环境。
为了避开基础的环境问题和快速搭建,docker是我们非常好的伙伴
# elasticsearch安装
docker pull elasticsearch:6.6.1
1
创建配置文件
# vim /etc/elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 允许任何端口访问
transport.host: 0.0.0.0
1
2
3
4
5
2
3
4
5
启动容器
docker run -di --name=es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /etc/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:6.6.1
1
- 开放了9300端口
- 挂载配置文件:/usr/share/elasticsearch/config/elasticsearch.yml
查看容器是否启动,以及端口是否正常开放
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
acc39c54a0d8 elasticsearch:6.6.1 "/usr/local/bin/dock…" 18 hours ago Up 18 hours 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp es
1
2
3
2
3
更加直观的判断是否启动成功的提示是,直接访问 9200
端口号。成功的话,会返回如下信息。
# 这里假设一个公网的ip http://111.111.111.111:9200/
{
"name" : "cWz9ZWm",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "5v3SilrTQyCjjQO-a5heBA",
"version" : {
"number" : "6.2.4",
"build_hash" : "ccec39f",
"build_date" : "2018-04-12T20:37:28.497551Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# kibana安装
docker pull kibana:6.6.1
1
接下来,如果我们手里没有kibana配置文件的信息的话,需要先从容器中copy一份过来。
# 启动容器 temp
docker run -di -p 5601:5601 --name temp kibana:6.6.1
# 创建文件夹存放配置文件
mkdir -p /etc/kibana
# 从容器中复制过来,注意配置文件地址是 /usr/share/kibana/config
docker cp temp:/usr/share/kibana/config /etc/kibana/config
# 删除临时的temp文件,强制删除
docker container rm -f temp
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
注意挂载的配置文件地址为: /usr/share/kibana/config
修改本地配置文件
# vim /etc/kibana/config/kibana.yml
server.name: kibana
# 允许所有地址访问
server.host: "0.0.0.0"
# elasticsearch的地址,注意这里我直接填写的公网ip。
# 有的教程里面填写elasticsearch,127.0.0.1,localhost 等
# docker容器的网络问题是我的弱项,采用上述方案,需要在docker容器互联,网络方面有一定的知识,不然会出问题。
elasticsearch.url: http://111.111.111.111:9200
xpack.monitoring.ui.container.elasticsearch.enabled: true
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
启动容器
docker run -di --name=kibana -p 5601:5601 -v /etc/kibana/config:/usr/share/kibana/config kibana:6.6.1
1
这里开放了新的端口 5601
验证是否成功,直接访问 http://111.111.111.111:5601
就可以看到如下界面
# 注意点
elasticsearch 和 kibana 的版本最好保持一致,这里我都使用了 6.6.1
elasticsearch 和 kibana 都是比较吃内存的家伙,所以如果你的服务器的内存少于4G,可能就会出很多问题。
kibana 端口可能会被封掉。注意你的服务器有没有打开
5601
端口,若是没有的话,换一个端口映射即可。-p 7899:5601
配置修改后可能会需要重启服务/容器
# 重启/查看 服务状态 service kibana restart/status systemctl restart/status kibana # 容器重启 docker restart kibana
1
2
3
4
5
# TODO
如果是搭建ELK,我们可能还需要 Filebeat 和 Logstash 的配和,这些还要后续的进行搭建。
ELK
是好东西,只是太吃内存了。如果不是公司基本的项目,只是做的玩票性质的小服务,估计买服务器的开销就不小,所以我暂时不太会用 ELK
搭建日志系统。
# 参考资料
编辑 (opens new window)
上次更新: 2022/10/25, 02:40:54