在Docker上运行ELK(Elastic Logstash Kibana)

作者 : IT 大叔 本文共1141个字,预计阅读时间需要3分钟 发布时间: 2020-10-10

ELK(Elastic Logstash Kibana)是一组软件组件,它们是Elastic堆栈的一部分。

ELK是做什么的?

用外行的话解释一下他们每个人都做什么

  • Elasticsearch主要是一个数据存储
  • Logstash是一种数据解析软件,它以所需格式将数据存储在Elasticsearch中
  • Kibana是可用于查询/可视化Elasticsearch中存储的数据的UI

如何运行ELK?

由于上述每个组件都是单独的软件,因此运行它们的一种方法是前往安装说明并分别运行每个组件。

运行它们的一种更简单,更方便的方法是使用Docker

如果您发现自己正在尝试使用此堆栈,则很可能希望将所有这3个命令一起运行。有什么比使用docker和更好的方法docker-compose

Docker撰写

在撰写本文时,我正在尝试ELK堆栈版本6.6。因此,以下docker-compose.yml是指图像版本6.6

如果您注意到上面的要点,它将按名称引用目录logstash-conf。该目录的内容是一个logstash配置文件,该文件指示如何解析数据。

该文件的内容为:

我们在Logstash中配置什么?

下一节说我们将获得logstash的输入,beats这是Elastic我将尝试在另一篇文章中解释的另一种软件。

我们配置为通过端口获取数据,5044并且我们希望数据采用json格式

input {
    beats {
        port => "5044"
        codec => "json"
    }
}

在这里,我们声明我们正在jsonlogstash中使用插件,并尝试jsonmessage日志消息中的字段中提取数据。我知道这听起来有些神秘,但希望您对此充满信心。

filter {
  json {
    source => "message"
  }
}

最后我们有了输出。我们基本上是将数据传递给elasticsearch,以将数据存储在由"%{[fields][project]}-%{[fields][application]}-%{+YYYY.MM.dd}"

output {
    elasticsearch {
        hosts => "${ELASTIC_HOST}"
        index => "%{[fields][project]}-%{[fields][application]}-%{+YYYY.MM.dd}"
        codec => json
    }
}

如何运行呢?

  • docker本地机器开始
  • docker-compose up在您拥有目录的目录中运行docker-compose.yml

如何导航到Kibana?

  • 将浏览器指向 http://localhost:5601/
  • 请注意,这是基于5601kibana图像上提供的端口docker-compose.yml

结论

本教程的主要目的是演示如何使用docker运行ELK堆栈

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » 在Docker上运行ELK(Elastic Logstash Kibana)

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论