zoukankan      html  css  js  c++  java
  • ELK日志平台

    什么是ELK?

    ELK指的是ElasticSearch,Logstash,Kibana这三个工具的首字母缩写,中文指南很详细,按其步骤来,入门基本没啥问题。

    解决什么问题?

    公司产品EDI平台的主要任务就是将各个数据源的文件信息处理后再发送第三方,没有实时监控,文件发送不成功时,运维相当被动。

    ELK的强项就是实时的日志分析,通过对日志文件的分析(秒级)对比,及时将异常情况通知运维。

    计划步骤如下:

    1)制定日志规范,在程序中增加日志,记录处理过程。

    2)部署Logstash监控日志文件。

    3)开发服务程序,定时查询elasticsearch,按文件名比对处理状态,例如:有发送记录,但设定时间内无接收的记录则报警。

    计划架构如下:

    logstash -> elasticsearch -> kibana

    踩坑之旅

    其实也不算坑,主要还是不了解。

    1)指南中说Logstash在windows环境下可能不靠谱,所以替换成Filebeat,研究一圈后发现居然没有字段提取功能,所以架构又变成

    Filebeat -> Logstash -> ElasticSearch -> Kibana

    2)指南中看到了Kibana的watcher插件,貌似可以替代计划的3),研究一圈后要实现定时查询后遍历再匹配很难,性能估计也扛不住。

    3)重新审视计划,更好的方案应该是在日志写入时就匹配,匹配上后更新发送记录状态,watcher只要实现定时查询没有匹配状态的发送记录即可。

    4)准备开发logstash的插件,研究后发现通过logstash-input-beats/logstash-filter-grok/logstash-filter-elasticsearch/logstash-output-elasticsearch插件可实现该功能。

    5)logstash-filter-elasticsearch插件,原打算通过此步获取_id并在output中更新发送的日志记录,但其他值都能取到,就是没有_id,查看github源码发现

    只能获取'hits']['hits'][_source]中的内容,而_id为['hits']['hits']['_id'],修改代码后OK.

    6)logstash-out-elasticsearch插件,通过设置document_id及action=update后可以更新成功,但把所有的接收日志信息都更新到了发送日志记录,只有

    另取其他插件实现了。

    7)logstash-out-http插件,通过该插件直接post更新语句可以实现。

    8)原料准备完毕,下一步该写wacher脚本实现预警了,踩完再来补充。

  • 相关阅读:
    CodeForces 745C Hongcow Builds A Nation 并查集
    hdu 1542 Atlantis 矩形面积并
    CodeForces 741C Arpa’s overnight party and Mehrdad’s silent entering
    上海五校联赛 H 调和序列
    C++学习笔记之泛型算法
    hdu 6016 Count the Sheep
    操作系统 银行家算法
    计蒜之道复赛 B D F
    hdu 2966 In case of failure kdtree模板题
    poj 3468 A Simple Problem with Integers 降维线段树
  • 原文地址:https://www.cnblogs.com/lfwolf/p/6660340.html
Copyright © 2011-2022 走看看