背景:使用docker安装 elasticsearch 、kibana。
目的:主要是使用kibana 来简单写一些 es的命令
环境:已经安装过docker了
一、环境搭建
1、安装elasticsearch
# 下载elasticsearch镜像
docker pull elasticsearch:7.7.0
# 查看docker的镜像 查看是否下载成功
docker images
2、运行es的容器
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.7.0
命令解释:
-d: 在后台运行容器。
--name elasticsearch: 为容器指定一个名称,这里是“elasticsearch”。
-p 9200:9200: 将主机的9200端口映射到容器的9200端口,这是Elasticsearch HTTP服务的默认端口。
-p 9300:9300: 将主机的9300端口映射到容器的9300端口,这是Elasticsearch节点之间通信的默认端口。
-e "discovery.type=single-node": 设置Elasticsearch的发现类型为“单节点”,这将禁用节点发现和群集形成。
elasticsearch:7.7.0: 指定要运行的Docker映像名称和版本号。在这里,我们使用Elasticsearch的7.7.0版本。
总之,这个命令会在Docker容器中运行一个Elasticsearch实例,并将主机的9200和9300端口映射到容器中的相应端口,以便可以通过HTTP和节点之间通信进行访问。
验证es是否运行成功。
# 这个是通过本机ip验证的 这个后面和 kibana交互很重要 因为通过kibana连接es就是这个ip
# 本机ip获取命令(注意是mac) ifconfig en0 | grep inet| awk '{print $2}'
curl 'http://192.168.31.141:9200'
# 以下两个也能验证
curl 'http://127.0.0.1:9200'
curl 'http://localhost:9200'
注意: 如果不涉及kibana连接es 其实上面效果都一样
3、下载kibana
docker pull docker.elastic.co/kibana/kibana:7.7.0
4、运行kibana!!!重点
# 1、先找到本机的 ip 下面是mac环境的命令 我的是 192.168.31.141 为例
ifconfig en0 | grep inet| awk '{print $2}'
# 2、开始运行 kibana
docker run --name kibana -e ELASTICSEARCH_URL=http://192.168.31.141:9200 -p 5601:5601 -d docker.elastic.co/kibana/kibana:7.7.0
命令解释:
--name kibana: 为容器指定一个名称,这里是“kibana”。
-e ELASTICSEARCH_URL=http://192.168.31.141:9200: 设置环境变量ELASTICSEARCH_URL,将其值设置为Elasticsearch的HTTP地址,这里是http://192.168.31.141:9200。这个地址是Elasticsearch实例的地址,Kibana将使用它来连接到Elasticsearch。
-p 5601:5601: 将主机的5601端口映射到容器的5601端口,这是Kibana的默认端口。
-d: 在后台运行容器。
docker.elastic.co/kibana/kibana:7.7.0: 指定要运行的Docker映像名称和版本号。在这里,我们使用Kibana的7.7.0版本。
然后使用 ``实时查看运行的日志。发现一直在报警 日志如下。
{"type":"log","@timestamp":"2024-02-18T14:56:24Z","tags":["warning","elasticsearch","admin"],"pid":8,"message":"Unable to revive connection: http://elasticsearch:9200/"}
{"type":"log","@timestamp":"2024-02-18T14:56:24Z","tags":["warning","elasticsearch","admin"],"pid":8,"message":"No living connections"}
{"type":"log","@timestamp":"2024-02-18T14:56:25Z","tags":["warning","elasticsearch","data"],"pid":8,"message":"Unable to revive connection: http://elasticsearch:9200/"}
意思很明显 连接不到elasticsearch。你通过浏览器访问 http://localhost:5601/
或者 http://127.0.0.1:5601/
或者 http://192.168.31.141:5601/
。
会返回信息。
Kibana server is not ready yet
5、解决kibana连接不上es的办法
1、进入到kibana容器中 我直接用的是 docker可视化界面进入的 当然也可以用命令进入。
2、修改config/kibana.yml配置
vi config/kibana.yml
配置内容:
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
其实就是修改http://elasticsearch:9200
为 http://192.168.31.141:9200
3、重启kibana
docker restart kibana
查看实时日志docker logs kibana -f
发现不报错了
4、访问 http://192.168.31.141:5601/
即可发现进入 Kibana页面