当前位置:首页 > 科技  > 软件

ELK太重?试试轻量级分布式日志框架GrayLog

来源: 责编: 时间:2024-04-29 16:18:07 138观看
导读在微服务架构中,一个服务通常都会有多个实例,而这些服务实例可能会被部署到不同的机器或虚拟容器上。此时对于日志数据的查看和分析就会变得困难起来,因为这些服务的日志数据都散落在各自实例所在的机器或容器上。例如,我

在微服务架构中,一个服务通常都会有多个实例,而这些服务实例可能会被部署到不同的机器或虚拟容器上。此时对于日志数据的查看和分析就会变得困难起来,因为这些服务的日志数据都散落在各自实例所在的机器或容器上。例如,我现在要在订单服务里查找一个订单id为1的日志,而订单服务有10个实例并且部署在10台不同的机器上,那么我就得一台台的去找这个日志数据。所以这时候我们就需要有一个可以实现日志聚合的工具,将所有实例的日志数据都聚合在一个地方,那么我们就不需要到每个实例去找日志了,而本文将使用的日志聚合工具为GraylogLZD28资讯网——每日最新资讯28at.com

部署Graylog

老样子,直接上docker-compose,如果一直跟着我的步伐,应该对着不陌生了。docker-compose.yml 的内容其实我也是抄官网的,这里还是贴下吧(就不用你们翻了)LZD28资讯网——每日最新资讯28at.com

version: '3'services:    mongo:      image: mongo:4.2      networks:        - graylog    elasticsearch:      image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2      environment:        - http.host=0.0.0.0        - transport.host=localhost        - network.host=0.0.0.0        - "ES_JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=true -Xms512m -Xmx512m"      ulimits:        memlock:          soft: -1          hard: -1      deploy:        resources:          limits:            memory: 1g      networks:        - graylog    graylog:      image: graylog/graylog:4.2      environment:        - GRAYLOG_PASSWORD_SECRET=somepasswordpepper        - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918        - GRAYLOG_HTTP_EXTERNAL_URI=http://ip:9009/ # 这里注意要改ip      entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 --  /docker-entrypoint.sh      networks:        - graylog      restart: always      depends_on:        - mongo        - elasticsearch      ports:        - 9009:9000        - 1514:1514        - 1514:1514/udp        - 12201:12201        - 12201:12201/udpnetworks:    graylog:      driver: bridg

这个文件里唯一需要改动的就是 ip (本来的端口是 9000 的,我由于已经占用了 9000 端口了,所以我这里把端口改成了 9009 ,你们可以随意)LZD28资讯网——每日最新资讯28at.com

嗯,写完 docker-compose.yml 文件,直接 docker-compose up -d 它就启动起来咯。LZD28资讯网——每日最新资讯28at.com

启动以后,我们就可以通过 ip:port 访问对应的Graylog后台地址了,默认的账号和密码是 admin/adminLZD28资讯网——每日最新资讯28at.com

图片图片LZD28资讯网——每日最新资讯28at.com

随后,我们配置下 inputs 的配置,找到 GELF UDP ,然后点击 Launch new input ,只需要填写 Title 字段,保存就完事了(其他不用动)。LZD28资讯网——每日最新资讯28at.com

图片图片LZD28资讯网——每日最新资讯28at.com

Spring Boot 集成GrayLog

首先创建一个SpringBoot项目,SpringBoot默认自带的日志框架是Logback,我们可以到 Graylog组件市场查找Logback相应的组件。LZD28资讯网——每日最新资讯28at.com

添加依赖如下:LZD28资讯网——每日最新资讯28at.com

<dependency>  <groupId>de.siegmar</groupId>  <artifactId>logback-gelf</artifactId>  <version>3.0.0</version></dependency>

接着在项目的resources目录下,新建一个logback.xml文件,编辑文件内容如下:LZD28资讯网——每日最新资讯28at.com

<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">  <!-- Graylog服务的地址 -->  <graylogHost>ip</graylogHost>  <!-- UDP Input端口 -->  <graylogPort>12201</graylogPort>  <!-- 最大GELF数据块大小(单位:字节),508为建议最小值,最大值为65467 -->  <maxChunkSize>508</maxChunkSize>  <!-- 是否使用压缩 -->  <useCompression>true</useCompression>  <encoder class="de.siegmar.logbackgelf.GelfEncoder">    <!-- 是否发送原生的日志信息 -->    <includeRawMessage>false</includeRawMessage>    <includeMarker>true</includeMarker>    <includeMdcData>true</includeMdcData>    <includeCallerData>false</includeCallerData>    <includeRootCauseData>false</includeRootCauseData>    <!-- 是否发送日志级别的名称,否则默认以数字代表日志级别 -->    <includeLevelName>true</includeLevelName>    <shortPatternLayout class="ch.qos.logback.classic.PatternLayout">      <pattern>%m%nopex</pattern>    </shortPatternLayout>    <fullPatternLayout class="ch.qos.logback.classic.PatternLayout">      <pattern>%d - [%thread] %-5level %logger{35} - %msg%n</pattern>    </fullPatternLayout>    <!-- 配置应用名称(服务名称),通过staticField标签可以自定义一些固定的日志字段 -->    <staticField>app_name:austin</staticField>  </encoder></appender>

在这个配置信息里,唯一要改的也只是 ip 的地址,到这里接入就完毕了,我们再打开控制台,就能看到日志的信息啦。LZD28资讯网——每日最新资讯28at.com

图片图片LZD28资讯网——每日最新资讯28at.com

配置完成后启动项目,启动完成后正常情况下可以在Graylog的Search界面中查看日志信息:LZD28资讯网——每日最新资讯28at.com

图片图片LZD28资讯网——每日最新资讯28at.com

点击一条日志信息会展开详细的字段:LZD28资讯网——每日最新资讯28at.com

图片图片LZD28资讯网——每日最新资讯28at.com

以上是最简单的日志配置,如果希望对更多配置项进行自定义的话,可以参考该组件的GitHub文档,上面有具体的配置项说明LZD28资讯网——每日最新资讯28at.com

现在我们已经成功将项目的日志数据发送到了Graylog服务,如果我们想在Graylog上检索日志也很简单,只需要使用一些简单的语法即可,例如我要查询包含Mapping的日志信息:LZD28资讯网——每日最新资讯28at.com

图片图片LZD28资讯网——每日最新资讯28at.com

还可以使用一些条件表达式,例如我要查询message字段包含http,并且日志级别为INFO的日志信息:LZD28资讯网——每日最新资讯28at.com

图片图片LZD28资讯网——每日最新资讯28at.com

常用的日志搜索语法如下:LZD28资讯网——每日最新资讯28at.com

  • 模糊查询:直接输入要查询的内容,例如:orderid
  • 精确查询:要查询的内容加上引号,例如:"orderid: 11"
  • 指定字段查询:message:http 或 message:"http"
  • 多字段查询:message:(base-service base-web)
  • 多条件查询:message:http AND level_name:ERROR OR source:192.168.0.4

本文链接:http://www.28at.com/showinfo-26-86513-0.htmlELK太重?试试轻量级分布式日志框架GrayLog

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Google 孵化了三个Go安全库,推荐使用!

下一篇: 如何在Java中高效处理和编码Emoji表情,包括编码、解码和过滤方法

标签:
  • 热门焦点
  • Find N3入网:最高支持16+1TB

    Find N3入网:最高支持16+1TB

    OPPO将于近期登场的Find N3折叠屏目前已经正式入网,型号为PHN110。本次Find N3在外观方面相比前两代有很大的变化,不再是小号的横向折叠屏,而是跟别的厂商一样采用了较为常见的
  • K60至尊版刚预热 一加Ace2 Pro正面硬刚

    K60至尊版刚预热 一加Ace2 Pro正面硬刚

    Redmi这边刚如火如荼的宣传了K60 Ultra的各种技术和硬件配置,作为竞品的一加也坐不住了。一加中国区总裁李杰发布了两条微博,表示在自家的一加Ace2上早就已经采用了和PixelWo
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 帅气纯真少年!日本最帅初中生选美冠军出炉

    帅气纯真少年!日本最帅初中生选美冠军出炉

    日本第一帅哥初一生选美大赛冠军现已正式出炉,冠军是来自千叶县的宗田悠良。日本一直热衷于各种选美大赛,从&ldquo;最美JK&rdquo;起到&ldquo;最美女星&r
  • K6:面向开发人员的现代负载测试工具

    K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • 不容错过的MSBuild技巧,必备用法详解和实践指南

    不容错过的MSBuild技巧,必备用法详解和实践指南

    一、MSBuild简介MSBuild是一种基于XML的构建引擎,用于在.NET Framework和.NET Core应用程序中自动化构建过程。它是Visual Studio的构建引擎,可在命令行或其他构建工具中使用
  • 一篇文章带你了解 CSS 属性选择器

    一篇文章带你了解 CSS 属性选择器

    属性选择器对带有指定属性的 HTML 元素设置样式。可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。一、了解属性选择器CSS属性选择器提供了一种简单而
  • 年轻人的“职场羞耻感”,无处不在

    年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元&ldquo;人在职场,应该选择什么样的着装?&rdquo;近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 冯提莫签约抖音公会 前“斗鱼一姐”消失在直播间

    冯提莫签约抖音公会 前“斗鱼一姐”消失在直播间

    来源:直播观察提起&ldquo;冯提莫&rdquo;这个名字,很多网友或许听过,但应该不记得她是哪位主播了。其实,作为曾经的&ldquo;斗鱼一姐&rdquo;,冯提莫在游戏直播的年代影响力不输于现
Top