Graylog开源版官网: https://www.graylog.org/

Graylog 文档:https://docs.graylog.org/docs

GRAYLOG 的架构方向

Graylog 是最接近 Splunk 架构的:

  • Graylog 是从第一行代码单独构建的日志管理系统。 这使得它非常高效且易于使用。

  • graylog-server组件位于中间,解决了 Elasticsearch(全文搜索引擎,而不是日志管理系统)在日志管理方面的缺点。它还在其之上构建了一个抽象层,以使数据访问尽可能容易,而无需选择索引和编写繁琐的时间范围选择过滤器等 - 只需提交搜索查询,Graylog 将为您处理剩下的事情。

  • 系统的所有部分都紧密集成,许多部分相互通信,使您的工作更轻松。

  • 就像 WordPress 使 MySQL 成为一个很好的博客解决方案一样,Graylog 使 Elasticsearch 成为一个很好的日志记录解决方案。您永远不应该直接使用系统或前端查询 Elasticsearch 来进行日志管理,因此我们将其放在graylog-server前面。

Graylog的部署图

最低部署图:

生产集群部署图

Graylog 的部署步骤

graylog 包括四部分:

  1. mongodb

  2. elasticsearch

  3. graylog-server

  4. graylog-web

1. 环境准备

我这里采用的是docker-compose的方式启动

官方提供了多个版本的 docker-compose.yml文件可供选择。

官方连接:https://docs.graylog.org/en/3.3/pages/installation/docker.html

version: '3'
services:# MongoDB: https://hub.docker.com/_/mongo/mongo:image: mongo:4.2networks:- graylog# Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/7.10/docker.htmlelasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2environment:- 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: -1hard: -1deploy:resources:limits:memory: 1gnetworks:- graylog# Graylog: https://hub.docker.com/r/graylog/graylog/graylog:image: graylog/graylog:4.2environment:# CHANGE ME (must be at least 16 characters)!- GRAYLOG_PASSWORD_SECRET=somepasswordpepper# Password: admin- GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918- GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 --  /docker-entrypoint.shnetworks:- graylogrestart: alwaysdepends_on:- mongo- elasticsearchports:# Graylog web interface and REST API- 9000:9000# Syslog TCP- 1514:1514# Syslog UDP- 1514:1514/udp# GELF TCP- 12201:12201# GELF UDP- 12201:12201/udp
networks:graylog:driver: bridge

这里需要注意GRAYLOG_HTTP_EXTERNAL_URI 这个配置项是web页面的路径,如果是本地可以指定localhost或者127.0.0.1。如果是远程访问这里则需要填写外网ip。

2. 启动容器

通过 docker-compose up 启动容器

3.登录控制台

通过前面配置文件中 GRAYLOG_HTTP_EXTERNAL_URI 指定的路径登录页面

springboot 集成Graylog

1. 添加pom 依赖

<!-- 提供logback传输日志到graylog的依赖 --><dependency><groupId>de.siegmar</groupId><artifactId>logback-gelf</artifactId><version>2.0.0</version></dependency>

2. 修改logback.xml

支持tcp 和 udp 两种方式,这里采用udp示例

具体描述信息见官网:https://github.com/osiegmar/logback-gelf

<!-- graylog 日志收集 --><appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender"><graylogHost>localhost</graylogHost><graylogPort>12201</graylogPort><maxChunkSize>508</maxChunkSize><useCompression>true</useCompression><encoder class="de.siegmar.logbackgelf.GelfEncoder"><includeRawMessage>true</includeRawMessage><includeMarker>true</includeMarker><includeMdcData>true</includeMdcData><includeCallerData>false</includeCallerData><includeRootCauseData>false</includeRootCauseData><includeLevelName>true</includeLevelName><shortPatternLayout class="ch.qos.logback.classic.PatternLayout"><pattern>${GRAY_LOG_SHORT_PATTERN}</pattern></shortPatternLayout><fullPatternLayout class="ch.qos.logback.classic.PatternLayout"><pattern>${GRAY_LOG_FULL_PATTERN}</pattern></fullPatternLayout><staticField>app_name:${APP_NAME}</staticField><staticField>os_arch:${os.arch}</staticField><staticField>os_name:${os.name}</staticField><staticField>os_version:${os.version}</staticField></encoder></appender><root level="INFO"><appender-ref ref="GELF" /></root>

3 . 设置来源信息


4. 启动项目

Graylog与ELK之间的主要区别

  • ELK stack;它使用弹性搜索收集、索引和存储数据;logstash 是分析存储在弹性搜索中的所有信息的工具;此信息可能是日志数据。他们所做的所有推论和观察都由 kibana 使用其交互式仪表板进行可视化。ELK stack主要专注于大数据分析,而 Graylog 则专门用于日志分析。与 ELK 不同,它只处理日志数据。

  • 可视化由 ELK 中的 kibana 完成;kibana 必须与其他人一起单独设置。Graylog 是处理和可视化的完整包。它的 GUI 比 kibana 更具交互性和用户友好性。在日志分析方面,Graylog 非常强大。

  • ELK stack和Graylog在一定程度上都是开源工具,用户可以亲身体验,持续支持,所有高级功能都是授权的。

  • Graylog 用于许多安全应用程序中,并且是集中式的。由于所有数据都是集中的,因此可以从多个日志源以及多个地理位置分析大规模(TB)的数据,因此可以在任何地方访问。

ELK中的日志分析流程:

  • 在大多数对日志分析感兴趣的情况下,ELK stack使用 filebeat(一种用于集中所有日志的轻量级工具)将所有日志定向到特定服务器。

  • filebeat正在推送的所有数据都被推送到logstash进行处理。Logstash 非常轻巧且灵活。它可以与多个插件集成,但要以性能为代价。

  • 虽然 logstash 很容易使用,但由于其局限性,处理高流量数据变得困难。

  • 所有logstash处理的数据都会发送到kibana进行可视化。它非常具有交互性,让用户可以定义他们选择的可视化类型。除了数据表示之外,它还提供了一些有关应用程序在生产环境中的行为的统计信息。

Graylog中的日志分析流程:

  • Graylog主要由三个组件组成,分别是MongoDB、Graylog主服务器和Graylog Web界面。

  • Graylog 客户端设置有特定的配置,可以实现服务器-客户端通信。客户端将日志数据推送到服务器,服务器分析并存储在 mongoDB 中。

  • Graylog Web UI 非常用户友好;它提供对用户权限的控制。它使用 RESTful API。

  • Web UI 可以支持多种数据类型,而 Graylog 不支持系统日志。数据应直接发送到 Graylog。这使得仪表板中的日志管理变得困难。

Graylog vs ELK对比表

Graylog ELK
不接受系统日志文件。数据应直接发送。 ELK 支持所有大多数数据类型,如 json 等。可以使用第三方插件进行数据转换。
专为日志管理和日志分析而开发。 ELK 支持日志管理和日志分析以及其他功能。它是一个多用途的工具。
Graylog 在处理日志方面非常强大。 Logstash 是 ELK 的一部分,它进行处理的速度不如 Graylog 快,并且在存在高流量数据时会出现问题。
用java开发,支持GLEF(Graylog扩展日志格式) ELK也是用java开发的,支持json格式。
支持实时 UDP 日志记录/GLEF 日志记录以及直观的搜索。 支持弹性搜索的全文查询搜索分析。
使用 Lucene 语法作为其搜索语言 使用基于 Lucene 作为其搜索语言的 Query DSL。
内置警报可用。警报基于流数据。可以在 Graylog Web 界面中配置自定义警报过滤器。 内置警报不可用,但可以使用 X-pack 等第三方插件向用户发送警报。

日志管理 GrayLog VS ELK相关推荐

  1. elk 日志管理_具有ELK的APIGEE API网关日志管理(弹性搜索,Logstash和Kibana)

    elk 日志管理 在本文中,我们将看到如何使用 Elastic Search , Logstash 和 Kibana 管理APIGEE API网关生成的日志 . 下图突出显示了日志数据如何流经ELK堆 ...

  2. 第 11 章 日志管理 - 089 - 初探 ELK

    在开源的日志管理方案中,最出名的莫过于 ELK 了. ELK 是三个软件的合称:Elasticsearch.Logstash.Kibana. Elasticsearch 一个近乎实时查询的全文搜索引擎 ...

  3. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

  4. 如何使用新一代轻量级分布式日志管理神器 Graylog 来收集日志

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 当我们公司内部部署很多服务以及测试.正式环境的时候,查看日志就变成了一个非常刚需的需求了.是多个环境的日志统一收集 ...

  5. docker(10、日志管理4)5、Graylog 日志系统(1、部署Graylog日志系统,2、Graylog管理日志)

    部署Graylog日志系统 Graylog 是与 ELK 可以相提并论的一款几种式日志管理方案,支持数据收集.检索.可视化Dashboard. 将实践用Graylog来管理Docker日志 Grayl ...

  6. 分布式日志系统Graylog、Loki及ELK的分析和对比

    更多内容关注微信公众号:fullstack888 日志系列: 企业级日志平台新秀Graylog,比ELK轻量多了 日志系统新贵Loki,比ELK轻量多了 1. 为什么需要集中的日志系统? 在分布式系统 ...

  7. 容器日志管理 (2) 开源日志管理方案 ELK/EFK

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章.上一篇<容器日志管理(1)>中介绍了Docker自带的logs子命令 ...

  8. 具有ELK的APIGEE API网关日志管理(Elastic Search,Logstash和Kibana)

    在本文中,我们将看到如何使用 Elastic Search , Logstash 和 Kibana 管理APIGEE API网关生成的日志 . 下图突出显示了日志数据如何流经ELK堆栈以进行数据可视化 ...

  9. 喜闻乐见ELK(日志管理分析系统)

    @[TOC] #  1. 简介 ELK(日志管理分析系统),一款能将系统的日志进行分析处理,并且展示到界面上面.集各种强大功能于一身.妈妈再也不用担心我为查日志感到烦恼了. ELK核心的组件是由ela ...

最新文章

  1. 教你玩转CSS 导航栏
  2. 使用Typescript和React的最佳实践
  3. Python基础-变量作用域
  4. GOF之结构型模式Ⅰ(重点)
  5. JVM知识(三):内存模型和可见性
  6. 鸿蒙系统即将发布,华为鸿蒙商标获转让
  7. 根文件系统定制【ZT】
  8. 思科交换技术之vlan
  9. linux 在文件中增加空行,linux – 在不同组的行之间添加空行
  10. Kotlin系列之枚举类
  11. linux 代码行数统计利器 ——cloc
  12. str_replace()函数
  13. jQuery实现title提示效果
  14. 计算机桌面图标损坏,win7系统的电脑桌面图标受到损坏要如何修复
  15. SIFT算法特征描述子构建---关键点定位原理及代码
  16. html坐标轴填充颜色,ECharts xAxis配置 x坐标轴轴线的样式
  17. 莫安迪2019平面设计作品展示
  18. 伯克利摘得最佳论文,陈丹琦、杨笛一等华人团队获杰出论文,ACL2022奖项公布...
  19. DEDE自动调用轮播图/幻灯片
  20. jquerynbsp;$.fnnbsp;是什么意思

热门文章

  1. 小学老师工资多少一个月_小学教师的工资一个月大约是多少
  2. c++ 右移运算符重载 << 参数个数
  3. springboot 字符串判空 StringUtils.isNotBlank()
  4. 【人工智能】基于蒙特卡洛树搜索和策略价值网络的AI五子棋算法设计
  5. 【python中break、continue 、pass终止循环的区别】
  6. 10-243 A4-5统计职工表中职务的数量
  7. xunsearch mysql 索引_实践中 XunSearch(讯搜)更新索引方案对比
  8. 基于springmvc+mysql+mybatis实现用户登陆功能
  9. 违规私募基金清查启动
  10. html 下拉框设置名称,html下拉菜单怎么做?高手教你如何在HTML和CSS中创建下拉菜单...