从安装docker到部署es集群管理的艰辛之旅

前言

好久没有更新博客了 , 最近也是一直在忙 , 上班搬砖 , 下班深造自己 ;
偶尔打打王者 , 哈哈 , (留言带你们飞 , 哈哈)
最近呢 , 因为加了台新的服务器 , 需要把现有的es集群全部转移至新的服务器上 , 这台服务器专门用来数据检索 (内存还是挺大的 , 够部署好几台了)
刚开始以为挺简单的 , 不就是安装一个docker , 然后pull images , 再去create containers , 接着 配置elasticsearch集群吗 , 天真的我真的被打败了 , 不要以为你以为的以为就是你以为的以为 , 不服走个流程碰一碰
经过一天半的处理终于把服务全部搞起来了 , 感觉走的坑还是不少的 , 仿佛看见风平浪静的水平面下 , 隐藏的大大小小的坑 , 俺可是一个坑一个坑爬过来的 , 以此赶紧记录下来 , 涉及的知识有点多 (看目录就知道挺全的,省的你们再去查资料了) , 没了解过的建议先去了解一下docker、elasticsearch、kibana , 本文针对linux安装
先放运行成功截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面就步入正题

卸载 Docker

卸载docker残余

在安装之前呢,先查看一下linux是否有残余的进程或者没有卸载干净,有的话就继续往下看

卸载离线安装的docker

卸载离线安装的比较麻烦

  1. 停止docker服务
systemctl stop docker
  1. 杀掉docker残余的进程
ps -ef | grep docker | awk ‘{print $2}| xargs sudo kill -s 9

这个命令我就不用多解释了吧 , 敲了这么久的cmd了

  1. 一系列的删除
rm -rf docker
rm -rf /var/run/docker
rm -rf /var/run/docker.sock
rm -rf /var/run/docker.pid
rm -rf /etc/systemd/system/docker.service
rm -rf /etc/docker/daemon.json
rm -rf ~/.docker/

rm -rf docker 这个是我解压docker的目录
以上只是我在本机卸载的命令 , 有可能你们其他地方也有残余的docker

卸载yum安装的docker

通过yum安装的 , 来之匆匆 , 去也匆匆

  1. 查询安装过的包
yum list installed | grep docker
  1. 删除安装的软件包
yum remove docker-client.x86_64 docker-common.x86_64 -y

注: 我这里是 docker-client.x86_64 docker-common.x86_64

  1. 删除镜像/容器等
rm -rf /var/lib/docker

安装 Docker-zip

wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz

通过wget下载 , 没有wget命令的需要安装wget

yum install wget

如果没有需要版本可以访问下面这个链接:
下载docker
自行选择需要的版本,然后上传至服务器指定文件夹下
在这里插入图片描述
解压压缩包

tar -xzvf docker-18.06.3-ce.tgz

会得到一个docker文件夹
在这里插入图片描述
将解压好的 docker 文件复制到 /usr/bin 目录下

cp docker/* /usr/bin/

编辑docker.service文件 , 将 docker 注册为服务

vim /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

赋予权限

chmod +x /etc/systemd/system/docker.service

重载配置

systemctl daemon-reload

启动docker

systemctl start docker

查看docker状态

systemctl status docker

设置开机启动

systemctl enable docker.service

镜像加速 (俺不小心忘记配置了)

vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"]
}

修改完或者增加完 , 别忘了重载配置

daemon.json 笔记:

{
 "api-cors-header":"", 
 "authorization-plugins":[],
 "bip": "",
 "bridge":"",
 "cgroup-parent":"",
 "cluster-store":"",
 "cluster-store-opts":{},
 "cluster-advertise":"",
 "debug": true,                     #启用debug的模式,启用后,可以看到很多的启动信息。默认false
 "default-gateway":"",
 "default-gateway-v6":"",
 "default-runtime":"runc",
 "default-ulimits":{},
 "disable-legacy-registry":false,
 "dns": ["192.168.1.1"],             # 设定容器DNS的地址,在容器的 /etc/resolv.conf文件中可查看。
 "dns-opts": [],                     # 容器 /etc/resolv.conf 文件,其他设置
 "dns-search": [],               # 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的 主机时,DNS不仅搜索host,还会搜索host.example.com 。 注意:如果不设置, Docker 会默认用主机上的 /etc/resolv.conf 来配置容器。

"exec-opts": [],
 "exec-root":"",
 "fixed-cidr":"",
 "fixed-cidr-v6":"",
 "graph":"/var/lib/docker",              #已废弃,使用data-root代替,这个主要看docker的版本
 "data-root":"/var/lib/docker",          #Docker运行时使用的根路径,根路径下的内容稍后介绍,默认/var/lib/docker
 "group": "",                            #Unix套接字的属组,仅指/var/run/docker.sock
 "hosts": [],                           #设置容器hosts
 "icc": false,
 "insecure-registries": [],       #配置docker的私库地址
 "ip":"0.0.0.0",
 "iptables": false,
 "ipv6": false,
 "ip-forward": false,          #默认true, 启用 net.ipv4.ip_forward ,进入容器后使用 sysctl -a | grepnet.ipv4.ip_forward 查看

  "ip-masq":false,
 "labels":["nodeName=node-121"],   # docker主机的标签,很实用的功能,例如定义:–label nodeName=host-121

 "live-restore": true,
 "log-driver":"",
 "log-level":"",
 "log-opts": {},
 "max-concurrent-downloads":3,
 "max-concurrent-uploads":5,
 "mtu": 0,
 "oom-score-adjust":-500,
 "pidfile": "",                    #Docker守护进程的PID文件
 "raw-logs": false,
 "registry-mirrors":["xxxx"],      #镜像加速的地址,增加后在 docker info中可查看。
 "runtimes": {
 "runc": {
 "path": "runc"
 },
 "custom": {
 "path":"/usr/local/bin/my-runc-replacement",
 "runtimeArgs": [
 "--debug"
 ]
 }
 },
 "selinux-enabled": false, #默认 false,启用selinux支持

 "storage-driver":"",
 "storage-opts": [],
 "swarm-default-advertise-addr":"",
 "tls": true,                      #默认 false, 启动TLS认证开关
 "tlscacert": "",                  #默认 ~/.docker/ca.pem,通过CA认证过的的certificate文件路径
 "tlscert": "",                    #默认 ~/.docker/cert.pem ,TLS的certificate文件路径
 "tlskey": "",                     #默认~/.docker/key.pem,TLS的key文件路径
 "tlsverify": true,                #默认false,使用TLS并做后台进程与客户端通讯的验证
 "userland-proxy":false,
 "userns-remap":""
 }

安装 Docker-yum

yum -y install docker

查看是否安装成功
在这里插入图片描述
设置开机启动

systemctl enable docker

简单吧 哈哈哈

安装 Docker Portainer

Portainer是一个可视化的Docker操作界面 , 解放了小伙伴们输入复杂的cmd命令
看到这里 , docker服务应该启动的差不多了 , 那么接下来安装docker控制面板
先去镜像仓库里找一下

docker search portainer

在这里插入图片描述
之前装的一直都是英文版的 , 汉化版都出来了 , 是我落后了

咱们把他pull下来到本地

docker pull 6053537/portainer-ce

通过下面这个命令去查看images

docker images

在这里插入图片描述
可以看到已经拉取下来了 , 先忽略那个 es , 后面会教怎么制作的 , 有些服务还是自己制作的好 , 因为每个需求不一样 , 个人建议哈
有了镜像 , 就要创建容器了 , cmd命令看来还是要学的 , 没有面板啥也不是

docker run -d -p 9111:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce

因为其他端口被占用了 , 就只能设置 9111:9000 , 你们没有被占用的话 , 可以设置为 9000:9000
命令在这解释一下吧 , 省的你们查资料

-a stdin: #指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: #后台运行容器,并返回容器ID;
-i: #以交互模式运行容器,通常与 -t 同时使用;
-P: #随机端口映射,容器内部端口随机映射到主机的端口
-p: #指定端口映射,格式为:主机(宿主)端口:容器端口
-t: #为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": #为容器指定一个名称;
--dns 8.8.8.8: #指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: #指定容器DNS搜索域名,默认和宿主一致;
-h "mars": #指定容器的hostname;
-e username="ritchie": #设置环境变量;
--env-file=[]: #从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": #绑定容器到指定CPU运行;
-m :#设置容器使用内存最大值;
--net="bridge": #指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: #添加链接到另一个容器;
--expose=[]: #开放一个端口或一组端口;
--volume , -v: #绑定一个卷

安利一下docker常用的其他命令

# 进入容器内部
docker exec -it 容器ID /bin/bash
# 查看运行的容器
docker ps
# 查看所有的容器
docker ps -a
# 查看所有的镜像
docker images
# 查找仓库的镜像
docker search 镜像名字
# 拉取 镜像
docker pull 镜像名字
# 删除容器
docker rm 容器ID
# 停止容器
docker stop 容器ID
# 启动容器
docker start 容器ID
# Dockerfile 创建容器
docker build -t 容器名 .

通过下面这个命令查看容器是否启动

docker ps

在这里插入图片描述
可以看到已经启动了 , 打开浏览器 访问
http://ip:port/
<port为你们运行容器映射出来的端口>
首次登录需要设置密码
假装有截图

安装 Elasticsearch

docker portainer 安装完了 , 就该到重点了 , 在这踩了很多坑
俺的 elasticsearch 镜像是用Dokcerfile制作的 , 不是从仓库pull滴呦 , 如果不想自己制作 , 从仓库pull下来也是一样的 , 只是需求不一样而已
我制作这个涉及的东西、文件有点多 , 不方便展示了 , 特殊需要
Dockerfile 文档
感兴趣的可以去了解看一下
有了es镜像 , 就要制作容器了 , 通过portainer创建容器有点 小bug , 什么内存不够了 , 什么内存无法锁定了 等等 , 哎 , 但愿您们不会遇到 , 搞死个人 , 修改一堆配置还不如直接用docker命令呢!!!

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "bootstrap.memory_lock=true" --ulimit memlock=-1:-1 es

name port images-name 如果不同请修改

启动完后就需要修改配置 , 最重要的是内存 , 进入docker容器内部

docker exec -it 你的容器ID /bin/bash

进入elasticsearch 的 config 文件夹下 , 编辑 jvm.options

vi jvm.options

官方建议31G

-Xms31g
-Xmx31g

然后修改elasticsearch.yml 最详细的配置详解在下面(省的你们去查)
单机版:

cluster.name: es
node.name: es-01
#path.data: /home/elasticsearch-data/data
network.host: 0.0.0.0
cluster.initial_master_nodes: ["es-01"]

bootstrap.memory_lock: true

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.http.ssl.client_authentication: none
xpack.http.ssl.verification_mode: none
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

集群版:

#集群名称,保证唯一
cluster.name: es
#节点名称,必须不一样
node.name: es-01
# 此处的地址 是外部映射进来的 方便后期移动修改
path.data: /home/elasticsearch-data/data
network.host: 0.0.0.0
network.bind_host: 0.0.0.0
network.publish_host: 您的Ip
http.port: 9200
transport.tcp.port: 9300
#设置集群自动发现机器ip集合
discovery.seed_hosts: ["您的Ip:9300","您的Ip:9301"]
cluster.initial_master_nodes: ["es-01","es-02"]
gateway.recover_after_nodes: 2
bootstrap.memory_lock: true
discovery.zen.minimum_master_nodes: 2

discovery.zen.ping_timeout: 120s

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.http.ssl.client_authentication: none
xpack.http.ssl.verification_mode: none
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
cluster.name: es
node.name: es-02
path.data: /home/elasticsearch-data/data
network.host: 0.0.0.0
network.bind_host: 0.0.0.0
network.publish_host: 您的Ip
http.port: 9201
transport.tcp.port: 9301
discovery.seed_hosts: ["您的Ip:9300","您的Ip:9301"]
cluster.initial_master_nodes: ["es-01","es-02"]
gateway.recover_after_nodes: 2
#设置集群中N个节点启动时进行数据恢复,默认为1
bootstrap.memory_lock: true
discovery.zen.minimum_master_nodes: 2
#设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值

discovery.zen.ping_timeout: 120s

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.http.ssl.client_authentication: none
xpack.http.ssl.verification_mode: none
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

官方建议设置集群的数量为(n+1)/2的规则设置防脑裂 , 上面只展示了两个 , 自行增加

详细的配置详解:

cluster.name: elasticsearch
配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。

node.name: "Franz Kafka"
节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。

node.master: true
指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。

node.data: true
指定该节点是否存储索引数据,默认为true。

index.number_of_shards: 5
设置默认索引分片个数,默认为5片。

index.number_of_replicas: 1
设置默认索引副本个数,默认为1个副本。

path.conf: /path/to/conf
设置配置文件的存储路径,默认是es根目录下的config文件夹。

path.data: /path/to/data
设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,例:
path.data: /path/to/data1,/path/to/data2

path.work: /path/to/work
设置临时文件的存储路径,默认是es根目录下的work文件夹。

path.logs: /path/to/logs
设置日志文件的存储路径,默认是es根目录下的logs文件夹

path.plugins: /path/to/plugins
设置插件的存放路径,默认是es根目录下的plugins文件夹

bootstrap.mlockall: true
设置为true来锁住内存。因为当jvm开始swapping时es的效率 会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。 同时也要允许elasticsearch的进程可以锁住内存,linux下可以通过`ulimit -l unlimited`命令。

network.bind_host: 192.168.0.1
设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。


network.publish_host: 192.168.0.1
设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。

network.host: 192.168.0.1
这个参数是用来同时设置bind_host和publish_host上面两个参数。

transport.tcp.port: 9300
设置节点间交互的tcp端口,默认是9300。

transport.tcp.compress: true
设置是否压缩tcp传输时的数据,默认为false,不压缩。

http.port: 9200
设置对外服务的http端口,默认为9200。

http.max_content_length: 100mb
设置内容的最大容量,默认100mb

http.enabled: false
是否使用http协议对外提供服务,默认为true,开启。

gateway.type: local
gateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,hadoop的HDFS,和amazon的s3服务器,其它文件系统的设置方法下次再详细说。

gateway.recover_after_nodes: 1
设置集群中N个节点启动时进行数据恢复,默认为1。

gateway.recover_after_time: 5m
设置初始化数据恢复进程的超时时间,默认是5分钟。

gateway.expected_nodes: 2
设置这个集群中节点的数量,默认为2,一旦这N个节点启动,就会立即进行数据恢复。

cluster.routing.allocation.node_initial_primaries_recoveries: 4
初始化数据恢复时,并发恢复线程的个数,默认为4。

cluster.routing.allocation.node_concurrent_recoveries: 2
添加删除节点或负载均衡时并发恢复线程的个数,默认为4。

indices.recovery.max_size_per_sec: 0
设置数据恢复时限制的带宽,如入100mb,默认为0,即无限制。

indices.recovery.concurrent_streams: 5
设置这个参数来限制从其它分片恢复数据时最大同时打开并发流的个数,默认为5。

discovery.zen.minimum_master_nodes: 1
设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)

discovery.zen.ping.timeout: 3s
设置集群中自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以高点的值来防止自动发现时出错。

discovery.zen.ping.multicast.enabled: false
设置是否打开多播发现节点,默认是true。

discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。

下面是一些查询时的慢日志参数设置
index.search.slowlog.level: TRACE
index.search.slowlog.threshold.query.warn: 10s
index.search.slowlog.threshold.query.info: 5s
index.search.slowlog.threshold.query.debug: 2s
index.search.slowlog.threshold.query.trace: 500ms

index.search.slowlog.threshold.fetch.warn: 1s
index.search.slowlog.threshold.fetch.info: 800ms
index.search.slowlog.threshold.fetch.debug:500ms
index.search.slowlog.threshold.fetch.trace: 200ms

当es集群或者单个es启动成功 , 咱就该配置elasticsearch密码了(集群和单机一样 , 只修改其中一台即可)
同样的方法进入容器内部

docker exec -it 你的容器ID /bin/bash

在修改密码前需要在配置文件中开启x-pack验证 , 修改config目录下面的elasticsearch.yml文件 , 在里面添加如下内容 , 并重启 , 如果你是直接复制的俺上面的配置 , 这个就略过吧 , 俺在里面已经配置过了

xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

然后在elasticsearch目录下敲入 , 如果修改了elasticsearch.yml文件 , 别忘了重启

bin/elasticsearch-setup-passwords interactive

在这里插入图片描述
然后等他修改完 Changed password for user 巴拉巴拉一堆 , 就可以了
打开浏览器 , 访问 你的IP:你的es端口 输入用户名 密码就可以了
不知道用户名的可以看上面图片的日志信息
在这里插入图片描述
出现这个就说明配置完了
在这里插入图片描述
有时候启动es报错 , 错误信息为

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

什么意思呢 , 大概就是拥有的内存权限太小,至少需要262144
就需要编辑宿主机 , 也就是你本机的 /etc/sysctl.conf 文件

vim /etc/sysctl.conf
vm.max_map_count=262144
vm.swappiness=0

在这里插入图片描述
然后就可以启动了

安装 Kibana

唔~ , 终于配置完elasticsearch了 , 接着咱就开始配置kibana了 , 咱们可以在这个界面里面配置新的用户名 , 密码
重复同样的步骤 , 这个安装就简单多了
search images ☞ pull images ☞ create Containers 或者 直接自己Dockerfile一个也行
启动 kibana后 , 需要修改一下kibana.yml配置 , 进入容器下先 , 然后找到config目录
在这里插入图片描述

server.name: "名字"
server.port: 访问kibana端口 , 不需要引号 # 9211
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://IP:你的es端口"]
kibana.index: ".kibana"
elasticsearch.username: "账户"
elasticsearch.password: "密码"
i18n.locale: "zh-CN"

配置详解:

# Kibana由后端服务器提供服务。此设置指定要使用的端口。
#server.port: 5601

# 指定Kibana服务器将绑定到的地址。IP地址和主机名都是有效值。
# 默认值为“localhost”,这通常意味着远程计算机将无法连接。
# 要允许来自远程用户的连接,请将此参数设置为非环回地址。
#server.host: "localhost"

# 如果您在代理后面运行,您可以指定装载Kibana 的路径。
#使用“服务器.重写基路径”设置来告诉Kibana 它是否应该删除基路径
#从它收到的请求,并防止在启动时出现拒绝警告。
#此设置不能以斜杠结束。
#server.basePath: ""

# 指定Kibana是否应该重写前缀为的请求
# `server.basePath '或要求它们由您的反向代理重写。
# 在Kibana 6.3和will之前,这个设置实际上总是“错误的”
# 从Kibana 7.0开始默认为“真”。
#server.rewriteBasePath: false

# 传入服务器请求的最大有效负载大小(以字节为单位)。
#server.maxPayloadBytes: 1048576

# Kibana服务器的名称。这用于显示目的。
#server.name: "your-hostname"

# 用于所有查询的弹性搜索实例的网址。
#elasticsearch.hosts: ["http://localhost:9200"]

# 当该设置的值为真时,Kibana使用服务器中指定的主机名
# 设置。当该设置的值为假时,Kibana使用主机的主机名
# 连接到这个Kibana实例。
#elasticsearch.preserveHost: true

# Kibana使用Elasticsearch中的索引来存储保存的搜索、可视化和
# 仪表板。如果索引不存在,Kibana会创建一个新索引。
#kibana.index: ".kibana"

# 要加载的默认应用程序。
#kibana.defaultAppId: "home"

# 如果您的弹性搜索受到基本身份验证的保护,这些设置将提供
# Kibana服务器用来在Kibana上执行维护的用户名和密码
# 启动时的索引。您的Kibana用户仍然需要使用弹性搜索进行身份验证,这
# 通过Kibana服务器代理。
#elasticsearch.username: "kibana"
#elasticsearch.password: "pass"

# 分别启用SSL和PEM格式的SSL证书和SSL密钥文件的路径。
# 这些设置为从Kibana服务器到浏览器的传出请求启用SSL。
#server.ssl.enabled: false
#server.ssl.certificate: /path/to/your/server.crt
#server.ssl.key: /path/to/your/server.key

# 可选设置,提供PEM格式的SSL证书和密钥文件的路径。
# 这些文件验证您的弹性搜索后端使用相同的密钥文件。
#elasticsearch.ssl.certificate: /path/to/your/client.crt
#elasticsearch.ssl.key: /path/to/your/client.key

# 可选设置,使您能够为证书指定PEM文件的路径
# 弹性搜索实例的权威。
#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]

# 要忽略SSL证书的有效性,请将此设置的值更改为“无”。
#elasticsearch.ssl.verificationMode: full

# 等待弹性搜索响应pings的时间(毫秒)。默认为的值
# elasticsearch.requestTimeout设置。
#elasticsearch.pingTimeout: 1500

# 等待后端或弹性搜索响应的时间(毫秒)。这个值
# 必须是正整数。
#elasticsearch.requestTimeout: 30000

# 要发送到弹性搜索的Kibana客户端头列表。要发送*no*客户端标头,请将此值设置为[](一个空列表)。
#elasticsearch.requestHeadersWhitelist: [ authorization ]

# 发送到弹性搜索的标题名称和值。不能覆盖任何自定义标题
# 通过客户端头,而不考虑elasticsearch.requestHeadersWhitelist白名单配置。
#elasticsearch.customHeaders: {}

# Elasticsearch等待碎片响应的时间(毫秒)。置0禁用。
#elasticsearch.shardTimeout: 30000

# 重试之前在Kibana启动时等待弹性搜索的时间(毫秒)。
#elasticsearch.startupTimeout: 5000

# 记录发送到弹性搜索的查询。需要日志记录,verbose设置为true。
#elasticsearch.logQueries: false

# 指定kibana创建进程标识文件的路径。
#pid.file: /var/run/kibana.pid

# 允许您指定Kibana存储日志输出的文件。
#logging.dest: stdout

# 将该设置的值设置为true以抑制所有日志记录输出。
#logging.silent: false

# 将此设置的值设置为true,以抑制除错误消息之外的所有日志记录输出。
#logging.quiet: false

# 将此设置的值设置为true以记录所有事件,包括系统使用信息和所有请求。
#logging.verbose: false

# 设置采样系统和过程性能的时间间隔(毫秒)
# 指标。最小值为100毫秒。默认为5000。
#ops.interval: 5000

# 指定用于所有可本地化字符串、日期和数字格式的区域设置。
# 支持的语言如下:English - en,默认为Chinese - zh-CN。
# i18n.locale: "zh-CN"

修改完配置 , 就可以启动kibana了
在这里插入图片描述
咱还可以通过kibana设置新的用户 , 按照下图进入用户界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
角色这里 , 俺设置的是全选 , 你们可以看一下自己需要的 , 然后创建用户就可以了
在这里插入图片描述
最后 您也可以通过刚才设置的用户名密码登录es 或者 kibana了 , 外部连接也可以使用这个用户名和密码 , 以上都是本人经历的 , 哎 , 在黑暗中摸索着前进 , 大大小小的坑 , 本文只是回忆记录 , 可能有的地方不足 , 请评论留言 , 看到后会及时修改更正的 , 如您在配置的时候遇到其他问题 , 也可以留言 , 俺会及时帮助并回复的!!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GG_com

1分也是爱!!!!!!!!!!

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

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

打赏作者

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

抵扣说明:

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

余额充值