zoukankan      html  css  js  c++  java
  • 傻瓜也能玩转日志归集

    关注"一猿小讲"的猿友们都知道,前段时间我在《一文讲懂线上应用系统监控》给大家简单提到了日志归集,埋下了伏笔,今天的这篇分享是来给大家还债的,主要从整体到局部,深入了解一下日志归集。如果你正在困惑于每天登录服务器查询业务日志的繁琐,或正在寻找一个业务日志归集的方案,那么就请跟紧我的脚步,莫掉队。

    01. 放空大脑,去思考

     

    众所周知,生活中每做一件大事要有有计划有步骤的进行。日志归集也不例外,就让我们放下陈谷子烂芝麻的琐事,静下来随着我思考一二。

    “日志归集”四个字,从中我们看到操作的对象是:日志;进行的动作是:归集。

    那该如何做呢?

    之前的分享曾讲过,日志采集的方式、采集的日志如何存储、采集的数据展示分析等几个环节,并提了一下当下最流行的开源轮子EFK,如果你是第一次听到这些,建议看看我前段时间分享的《一文讲懂线上应用系统监控》那篇文章。今天主要是实战,理论性的东西点到为止。

    640?wx_fmt=png

     

    02.拒绝空想,就是干,傻瓜也能用 EFK

     

    一切技术轮子都是纸老虎。有时,发现打破纸老虎的最佳方法,莫过于亲身实践。那就让我们行动起来,真枪实弹从 0 到 1 搭建一个轻量级的日志采集服务。

    Filebeat

     

    能轻松地将你关心的数据推送至你想存储的地方,让日志采集的事情变的简单化。

    选择适合自己的,才是最好的Filebeat 对不同的系统提供不同的可执行版本。下载最新版本(Mac系统进行演示):

    wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.1.1-darwin-x86_64.tar.gz

     

    要采集谁。

    vi filebeat-7.1.1-linux-x86_64/filebeat.yml

    640?wx_fmt=png

    往哪儿推。

    vi filebeat-7.1.1-linux-x86_64/filebeat.yml

    640?wx_fmt=png

    由于本次进行本机演示操作,所以默认地址配置就满足需求。

    一键启动。

    ./filebeat -e -c filebeat.yml

    Elasticsearch

     

    可以集中存储我们的数据,而且快到不可思议的查询。

    提供千万款,总有一款适合你。下载最新版本(Mac系统进行演示)

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-darwin-x86_64.tar.gz

     

    一键启动。

    bin/elasticsearch

    640?wx_fmt=png

    论成败。

    curl http://localhost:9200/

    640?wx_fmt=png

    Kibana

     

    能够对 Elasticsearch 中的数据进行可视化。集可点击、可拖动、可挖掘本领于一身的可视化组件高手。

    乐享 Kibana。纵佳丽三千,择其一而终老。下载最新版本(Mac系统进行演示)

    wget https://artifacts.elastic.co/downloads/kibana/kibana-7.1.1-darwin-x86_64.tar.gz

    一键启动。

    bin/kibana

     

    启动初恋的感觉。

     

    640?wx_fmt=png

    一探究竟。

     

    在浏览器中访问 http://localhost:5601,效果图如下。

    640?wx_fmt=png

    640?wx_fmt=png

    640?wx_fmt=png

    到此采用 EFK 简易的日志采集架构就完成了。神奇的是这款技术轮子,还真能把采集的日志展示出来了,自此鸟枪换炮,妈妈再也不用担心我因为查询日志下班晚回家吃饭啦。

    03. 带你牛,带你飞

     

    站在巨人的肩膀上。

     

    由于 Kibana 功能比较多,有太多的功能用不到,相对还是比较笨重。所以公司往往都进行二次开发轻量级的查询组件。

    其中实现思路特别简单:分析 kibana 日志搜索向后台发送的请求;摘取 elasticsearch 请求相关API;按照公司需求提供个性化查询展示页面。

    轻量级 vs 重量级。

     

    如果是轻量级的采集方案,那么 EFK + 定时清理 elasticsearch 的脚本就够用(目前线上采取的方案);如果是重量级 + 高可用,那么在Fliebeat 与 Elasticsearch 中间加上一个队列缓冲组件会比较靠谱。

    04. 写在最后

     

    拒绝温水煮青蛙,拒绝一味的 CRUD,如果平时工作中遇到痛点不妨稍微思考一二,看看有没有更好的技术轮子可以引进,说不定会提高工作效率,那么就可以抽出更多时间去喝咖啡、抽出更多时间去忙点自己的事情。

  • 相关阅读:
    WPF 如何引入外部样式
    jQuery插件-json2.js
    前端js几种加密/解密方法
    asp.net Web项目中使用Log4Net进行错误日志记录
    UpdateProgress
    UpdatePanel的简单用法(非嵌套)
    UpdatePanel的用法详解
    asp.net调用前台js调用后台代码分享
    JVM中的运行参数
    为什么要对jvm进行优化
  • 原文地址:https://www.cnblogs.com/socoool/p/12629802.html
Copyright © 2011-2022 走看看