docker部署Elasticsearch 7.11.2、kibana、cerebro、Logstash

Elasticsearch中文官方网站

版本以官网为准,因为是7.x版本开始才支持的docker部署,原则上我们更推荐学习7.x版本

此例中部署的版本为7.11.2

注意,Elasticsearch、Kibana、Logstash的版本必须一致,否则无法配合使用

Elasticsearch

官方教程

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

拉取官方镜像

docker run --name es --restart always -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.11.2
参数 范例值 备注
-d 启动后不在当前界面打印日志,你也可以不写这个参数
--name es 容器名,你也可以自己命名或着不命名
--restart always 自动高可用,死了自动拉起来,你也可以直接不写这个参数
-p 宿主机端口号:容器内端口号 将容器内的端口映射到宿主机的端口,根据你的需要可以自行调整宿主机的端口号
-e 传入容器内的配置项,根据需要填写

跑完等一下,Elasticsearch的启动需要一些时间

另外注意你的防火墙要开启9200和9300端口

如果你机器的内存只有2G,是有可能起不来的,我自己测试有时能起来有时起不来。不推荐在内存只有2G的机器上这样起ES

启动后可以浏览器访问服务器ip:9200【或者你自己映射的9200端口】,能够看到ES信息的json就是部署成功了

Kibana

官方教程

docker pull docker.elastic.co/kibana/kibana:7.11.2

拉取官方镜像

docker run --name kibana -d --restart always --link es:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.11.2
参数 范例值 备注
-d 启动后不在当前界面打印日志,你也可以不写这个参数
--link ES容器名或容器ID:elasticsearch 将Kibana连接到ES,冒号前面可写你自己命名的ES容器名
--name kibana 容器名,你也可以自己命名或着不命名
--restart always 自动高可用,死了自动拉起来,你也可以直接不写这个参数
-p 宿主机端口号:容器内端口号 将容器内的端口映射到宿主机的端口,根据你的需要可以自行调整宿主机的端口号

跑完等一下,Kibana的启动比Elasticsearch还慢

注意防火墙的5601端口需要打开

启动后浏览器访问服务器ip:5601【或者你自己映射的5601端口】,能够看到Kibana主页就是部署成功了

docker部署Kibana默认是英文版

docker exec -it kibana /bin/bash
vi /opt/kibana/config/kibana.yml

在最后加上一句

i18n.locale: zh-CN

注意冒号后面一定要有一个空格

保存后重启容器即可

docker restart kibana

重启完刷新5601的页面,能够看到界面语言已经改为中文

【注意,Kibana的汉化没有做得很彻底,部分界面文字仍旧会是英文】

cerebro

官方README

官方版本号

在github上查看官方版本号,根据需要选择对应版本,本例中使用0.9.3版本

docker pull lmenezes/cerebro:0.9.3

拉取官方镜像

自己新建一个文件,命名随意,本例中命名为env-ldap

写入以下内容

# Set it to ldap to activate ldap authorization
AUTH_TYPE=basic

BASIC_AUTH_USER=admin
BASIC_AUTH_PWD=admin

# Your ldap url
LDAP_URL=ldap://10.0.220.205:389

LDAP_BASE_DN=OU=users,DC=example,DC=com

# Usually method should  be "simple" otherwise, set it to the SASL mechanisms
LDAP_METHOD=simple

# user-template executes a string.format() operation where
# username is passed in first, followed by base-dn. Some examples
#  - %s => leave user untouched
#  - %[email protected] => append "@domain.com" to username
#  - uid=%s,%s => usual case of OpenLDAP
LDAP_USER_TEMPLATE=%s@本机ip

# User identifier that can perform searches
LDAP_BIND_DN=admin@本机ip
LDAP_BIND_PWD=adminpass

# Group membership settings (optional)

# If left unset LDAP_BASE_DN will be used
# LDAP_GROUP_BASE_DN=OU=users,DC=example,DC=com

# Attribute that represent the user, for example uid or mail
# LDAP_USER_ATTR=mail

# If left unset LDAP_USER_TEMPLATE will be used
# LDAP_USER_ATTR_TEMPLATE=%s

# Filter that tests membership of the group. If this property is empty then there is no group membership check
# AD example => memberOf=CN=mygroup,ou=ouofthegroup,DC=domain,DC=com
# OpenLDAP example => CN=mygroup
# LDAP_GROUP=memberOf=memberOf=CN=mygroup,ou=ouofthegroup,DC=domain,DC=com

其实最主要是第2行,第4行和第5行,还有两个写ip的地方

第2行写basic代表基础模式

第4、5行设置账号和密码【其实没什么用

想详细了解配置请移步官方github

官方的基础模式配置介绍

官方的配置范例

docker run --name cerebro --restart always -d -p 9000:9000 --env-file env-ldap  lmenezes/cerebro:0.9.3
参数 范例值 备注
-d 启动后不在当前界面打印日志,你也可以不写这个参数
--env-file 你的配置文件 加载配置文件
--name cerebro 容器名,你也可以自己命名或着不命名
--restart always 自动高可用,死了自动拉起来,你也可以直接不写这个参数
-p 宿主机端口号:容器内端口号 将容器内的端口映射到宿主机的端口,根据你的需要可以自行调整宿主机的端口号

跑完应该就可以了,访问你服务器ip:9000【或者你自己映射的9000端口】就能看到界面了,输入刚才配置文件中写入的账号和密码,然后填写你ES的ip和端口【记得带http://】点击连接,就能连上ES了

Logstash

官方教程

docker pull docker.elastic.co/logstash/logstash:7.11.2

拉取官方镜像

docker run --rm -it -v ~/pipeline/:/usr/share/logstash/pipeline/ docker.elastic.co/logstash/logstash:7.11.2

你可能感兴趣的:(docker部署Elasticsearch 7.11.2、kibana、cerebro、Logstash)