docker部署Elasticsearch 7.16.2、kibana、cerebro、Logstash

Elasticsearch中文官方网站
版本以官网为准,因为是7.x版本开始才支持的docker部署,原则上我们更推荐学习7.x版本
此例中部署的版本为7.16.2
注意,Elasticsearch、Kibana、Logstash的版本必须一致,否则无法配合使用

Elasticsearch

官方教程
拉取官方镜像

docker pull elasticsearch:7.16.2

创建es用户

adduser elasticsearch
passwd elasticsearch

输入密码,自己记住
将你要存放es数据的目录的所有者设置为elasticsearch用户

chown -R elasticsearch 你的目录

然后启动es容器

docker run --name es --restart always -d -p 9200:9200 -p 9300:9300 -v 你的目录:/usr/share/elasticsearch/data -e "discovery.type=single-node" elasticsearch:7.16.2
参数范例值备注
-d启动后不在当前界面打印日志,你也可以不写这个参数
–namees容器名,你也可以自己命名或着不命名
–restartalways自动高可用,死了自动拉起来,你也可以直接不写这个参数
-p宿主机端口号:容器内端口号将容器内的端口映射到宿主机的端口,根据你的需要可以自行调整宿主机的端口号
-v宿主机路径:容器内路径将容器内指定路径映射到宿主机的路径,用于将数据存储到宿主机以便在容器重启或关闭时保留es中的数据
-e传入容器内的配置项,根据需要填写

跑完等一下,Elasticsearch的启动需要一些时间
另外注意你的防火墙要开启9200和9300端口
如果你机器的内存只有2G,是有可能起不来的,我自己测试有时能起来有时起不来。不推荐在内存只有2G的机器上这样起ES

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

Kibana

官方教程
拉取官方镜像

docker pull kibana:7.16.2

跑容器

docker run --name kibana -d --restart always --link es:elasticsearch -p 5601:5601 kibana:7.16.2
参数范例值备注
-d启动后不在当前界面打印日志,你也可以不写这个参数
–linkES容器名或容器ID:elasticsearch将Kibana连接到ES,冒号前面可写你自己命名的ES容器名
–namekibana容器名,你也可以自己命名或着不命名
–restartalways自动高可用,死了自动拉起来,你也可以直接不写这个参数
-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.4版本

docker pull lmenezes/cerebro:0.9.4

拉取官方镜像
自己新建一个文件,命名随意,本例中命名为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
#  - %s@domain.com => 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.4
参数范例值备注
-d启动后不在当前界面打印日志,你也可以不写这个参数
–env-file你的配置文件加载配置文件
–namecerebro容器名,你也可以自己命名或着不命名
–restartalways自动高可用,死了自动拉起来,你也可以直接不写这个参数
-p宿主机端口号:容器内端口号将容器内的端口映射到宿主机的端口,根据你的需要可以自行调整宿主机的端口号

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

Logstash

官方教程
拉取官方镜像

docker pull logstash:7.16.2

跑容器

docker run --rm -it -v ~/pipeline/:/usr/share/logstash/pipeline/ logstash:7.16.2
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于部署ELK(Elasticsearch, Logstash, Kibana7.16.1的Docker环境,可以按照以下步骤进行操作: 1. 安装DockerDocker Compose:确保系统上已经安装了DockerDocker Compose。可以通过官方文档或适用于您操作系统的其他资源来完成安装。 2. 创建Docker Compose文件:创建一个名为docker-compose.yml的文件,并添加以下内容: ```yaml version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.16.1 environment: - discovery.type=single-node ports: - 9200:9200 - 9300:9300 networks: - elk logstash: image: docker.elastic.co/logstash/logstash:7.16.1 volumes: - ./logstash/config:/usr/share/logstash/config - ./logstash/pipeline:/usr/share/logstash/pipeline ports: - 5000:5000 networks: - elk kibana: image: docker.elastic.co/kibana/kibana:7.16.1 environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 ports: - 5601:5601 networks: - elk networks: elk: ``` 3. 创建配置文件和管道文件夹:在与docker-compose.yml相同的目录中创建名为`logstash/config`和`logstash/pipeline`的文件夹。 4. 配置Logstash:在`logstash/config`文件夹中创建一个名为`logstash.yml`的文件,并添加以下内容: ```yaml http.host: "0.0.0.0" ``` 5. 创建Logstash管道:在`logstash/pipeline`文件夹中创建一个名为`pipeline.conf`的文件,并根据您的需求配置Logstash的管道。例如,以下是一个简单的例子: ```conf input { tcp { port => 5000 codec => json } } output { elasticsearch { hosts => ["elasticsearch:9200"] index => "logs-%{+YYYY.MM.dd}" } } ``` 6. 启动ELK容器:在终端中导航到包含docker-compose.yml文件的目录,并运行以下命令启动容器: ```shell docker-compose up -d ``` 7. 等待一段时间,直到容器启动完毕。然后,您可以通过浏览器访问Kibana界面,地址为`http://localhost:5601`,查看和分析日志。 请注意,这只是一个基本的ELK部署示例,您可以根据自己的需求进行进一步的配置和定制化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值