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