【图文详解】Docker搭建 ELK Stack (elk) [使用es-logstash-filebeat-kibana]

31 篇文章 2 订阅
10 篇文章 1 订阅

        如果您对 elk 还不了解,那么可以先直戳下方官方链接,官方通过图形化界面很形象地介绍了elk stack(Elastic  Stack)。

 ELK Stack:Elasticsearch 的开发者倾心打造 | Elastic

| 准备工作(统一版本7.16.1)

本文使用软件(centos7,moba)

| 拉取es镜像

docker pull elasticsearch:7.16.1

|| 拉取kibana镜像 

docker pull kibana:7.16.1

||| 拉取logstash镜像

docker pull logstash:7.16.1

|||| 拉取filebeat镜像

docker pull docker.elastic.co/beats/filebeat:7.16.1

拉取完成后使用命令查看镜像信息,如下所示:

docker images

| 设置elk的网络

这里取名为elbk-net(都是首字母啦)

docker network create elbk-net

 若你拥有可视化界面portainer,则可在network中查看

| 分别启动各容器

1.启动es(本文以单节点演示)

docker run \
-d --name es \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
--net elbk-net \
elasticsearch:7.16.1

2.启动 kibana

docker run \
-v /opt/docker/elbk/kibana:/usr/local/etc/elbk/kibana/config \
-p 5601:5601 -d \
--net elbk-net \
--name kibana \
kibana:7.16.1

若您等待了很长时间访问kibana见到如下界面,请参考:

【解决】Kibana server is not ready yet:Docker启动kibana迟迟未成功_hah杨大仙的博客-CSDN博客

启动成功可看到如下界面

3.配置启动logstash

| 添加如下两个文件,需将文件中 ip地址 修改为 你的ip地址 

目录结构如下图所示:

logstash.yml

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: 192.168.21.128:9200

logstash.conf

input {
  beats {
    port => 5678
  }
}
filter {
  # Only matched data are send to output.
}
output {
  elasticsearch {
    hosts  => ["http://192.168.21.128:9200"]    # ElasticSearch host, can be array.
    index  => "mylog-%{+YYYY.MM}"         		# The index to write data to.
  }
}
  • input:输入
    • beats是我们后面要启动的filebeat,filebeat通过port:5678将收集的日志发送给logstash
  • filter:过滤
  • output:输出

启动 logstash

docker run -d \
-p 5678:5678 --net elbk-net \
--name logstash -p 5066:5066 -p 5067:5067 \
-v /opt/docker/elbk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-v /opt/docker/elbk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
logstash:7.16.1

使用docker ps查看正在运行的容器,启动成功 

4.配置启动filebeat

  • 新建需要收集的日志文件:
  • 内容大致如下(springcloud微服务中的网关模块启动日志,这里仅做demo演示)

创建filebeat文件夹并创建 filebeat.yml 文件,目录如下图所示(规范一点多多益善啦)

filebeat.yml 内容如下

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /opt/docker/elbk/test/elbk-test.log
output.logstash:
    hosts: ["192.168.21.128:5678"]
  • paths:测试日志的存放位置
  • hosts:你的ip地址,5678端口是与上面启动的logstash对应

启动filebeat

同样记得修改ip为你的ip

docker run \
-u root \
-v /opt/docker/elbk/test:/opt/docker/elbk/test:rw \
-v /opt/docker/elbk/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro \
-e setup.kibana.host=192.168.21.128:5601 -d \
--name filebeat --net elbk-net \
docker.elastic.co/beats/filebeat:7.16.1
  •  ro:
    • 文件:容器内不能修改,会提示read-only
    • 文件夹:容器内不能修改、新增、删除文件夹中的文件,会提示read-only
  • rw:
    • 文件:不管是宿主机还是容器内修改,都会相互同步,但容器内不允许删除,会提示Device or resource busy;宿主机删除文件,容器内的不会被同步

    • 文件夹:不管是宿主机还是容器内修改、新增、删除文件,都会相互同步

启动成功后查看正在运行的容器

docker ps

也可通过可视化界面查看

全部启动成功!!

接下来我们使用 kibana 看一下效果

| 测试

1.使用您的ip地址加5601(启动kibana指定的端口)即可看到如下界面 

2.点击可看到如下界面

3.这里还是切回英文版演示(ps:kibana是可以设置为中文的,找找度娘,很简单,在这里不是重点,就不操作啦)

4.选择堆栈管理

5.选择索引配置

6.点击后关闭弹出框

7.该界面告诉你已有数据,点击创建索引进入 正则选择索引库,若如下图所示匹配到上面logstash.conf定义的索引即代表成功!!

8.即可进入如下界面 

9.此时再使用es-head头插件查看即可看到已生成索引库!!

10.且已存入数据~

11.接下来如下图所示操作即可看到创建时写入的数据!!

12.根据条件筛选

13.此时在该日志文件再写入一条信息

14.回到kibana查看

15.ok,至此 elk stack 搭建 及 demo测试 就到此结束啦!!good luck!!

..


Thanks 

..

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hah杨大仙

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值