• 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脚本实现预警了,踩完再来补充。

  • 相关阅读:
    WEB前端工程师 – 职业生涯规划
    求Sn=a+aa+aaa+…+aaa…a的值
    输入一行字符,分别统计出其中英文字母 空格 数字和其他字符的个数
    getchar()的用法!
    求1+2+…+n的和不大于1000的最大自然数n
    编程打印输出*金字塔
    从键盘输入一个整数,判断该数是否回文数.
    编程求"水仙花数"
    编程求出1000以内的完全数
    输入两个正整数,求它们的最大公约数和最小公倍数.
  • 原文地址:https://www.cnblogs.com/lfwolf/p/6660340.html
Copyright © 2020-2023  润新知