资讯专栏INFORMATION COLUMN

基于Docker的日志分析平台(四)平台整合

wthee / 2519人阅读

摘要:会直接把日志发送给,再由进行展示。因为因为会同步把日志传输到,一旦挂掉数据就有可能会丢失。于是,我们考虑利用作为缓冲区,让不受的影响,第一步就是让把日志发送到,这里相当于。至此,我们就成功把加入到日志分析平台的架构中。

在上一篇中我们基本上完成了 ELK 和 Kafka 环境的安装,并且也通过几个简单的例子入门。现在我们就把搭建好的架构中加入 Kakfa 作为缓冲区。再来说一下,首先 Logstash 从日志源读取日志并且存储到 Kafka,然后 Logstash 再从 Kafka 中读取日志存储到 Elasticsearch。所以我们需要两步骤。

Logstash -> Kafka

Logstash 会直接把日志发送给 Elasticsearch,再由 Kibana 进行展示。因为因为 Logstash 会同步把日志传输到 Elasticsearch ,一旦 ElasticSearch 挂掉数据就有可能会丢失。于是,我们考虑利用 Kafka 作为缓冲区,让 Logstash 不受 Elasticsearch 的影响,第一步就是让 Logstash 把日志发送到 Kafka,这里 Logstash 相当于 Producer。直接来看看 Logstash 的配置文件:

input {
    file {
        path => ["/var/log/laravel/storage/logs/*.log"]
    }
}
filter {
   grok {
        match => {
            "message" => "[%{TIMESTAMP_ISO8601:logtime}] %{WORD:env}.%{LOGLEVEL:level}: %{GREEDYDATA:msg}"
        }
    }
}
output {
    kafka {
        bootstrap_servers => "kafka:9092"
        topic_id => "laravellog"
    }
}

这里是用来读取 Laravel 项目的日志文件,我们在 input 和 output 中间加入了一个 filter,这是 Logstash的插件,用户格式化读取进来的数据。一般情况下,Laravel的日志文件大概是这样:

[2017-12-05 17:45:07] production.ERROR: 报错接口 {"api":"/admin/sales"}

分为几个部分,分别是日志的记录时间,产生日志的环境,日志的级别,日志的信息以及额外数据。所以我们进行了一个格式化,最后可以让他以 JSON 的形式存储到 Elasticsearch,默认没有 filter 的情况是直接一行存储进去。格式化后的数据就是这样的(部分):

{
    "msg": "接口参数 {"params":[]} ",
    "path": "/var/log/fenyong/storage/logs/laravel-2017-12-05.log",
    "level": "ERROR",
    "env": "local",
    "logtime": "2017-12-05 17:54:50"
  }
Kafka -> Elasticsearch

利用 Logstash 从 Kafka 读取数据然后存储到 Elasticsearch,这里 Logstash 作为 Consumer,唯一需要注意的地方是要保证 Topic 的名称一致。

input {
    kafka {
        bootstrap_servers => "kafka:9092"
        topics => ["laravellog"]
    }
}

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
        index => "laravellog"
        user => "elastic"
        password => "changeme"
    }
}

这样我们就完成了从 Logstash 到 Kafka 再到 Elasticsearch 的日志存储,接下来就可以用 Kibana 来展示数据了。

至此,我们就成功把 Kafka 加入到日志分析平台的架构中。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27161.html

相关文章

  • 容器化 — 基于Docker技术容器云

    摘要:导读本文介绍了基于技术的企业级应用容器平台,从云的定义云服务分类,到用友云基础平台平台总体架构架构预览部署架构平台核心价值和核心竞争力,阐述基础平台成为广大传统企业数字化转型的一把尖刀。   导读:本文介绍了基于Docker技术的企业级应用容器平台,从云的定义、云服务分类,到用友云PaaS基础平台、平台总体架构、架构预览、部署架构、平台核心价值和核心竞争力,阐述PaaS基础平台成为广大...

    wapeyang 评论0 收藏0
  • Docker企业级管理平台开放下载,免费使用

    摘要:云帮能解决什么问题新一代企业平台让开发人员轻松地开发部署和运维应用,让架构师和运营人员利用熟知和可靠技术打造一个受控的运行环境。有助于加速企业级应用服务于市场,实现内部资源的有效利用。 云帮是什么? 云帮 是一款基于容器技术的应用管理平台。社区版针对个人、企业完全免费,您可以自由的下载与传播,但需要遵循我们的社区版协议。 云帮从哪里来? 云帮是 北京好雨科技有限公司 结合容器技术整合的...

    sumory 评论0 收藏0
  • 写这么多系列博客,怪不得找不到女朋友

    摘要:前提好几周没更新博客了,对不断支持我博客的童鞋们说声抱歉了。熟悉我的人都知道我写博客的时间比较早,而且坚持的时间也比较久,一直到现在也是一直保持着更新状态。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好几周没更新博客了,对不断支持我博客的童鞋们说声:抱歉了!。自己这段时...

    JerryWangSAP 评论0 收藏0

发表评论

0条评论

wthee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<