文章目录

  • 一、Graylog 概述
    • 1. 简介
    • 2. 工作流程介绍
    • 3. 组件功能
  • 二、Graylog 部署
    • 1. 安装 docker
    • 2. 下载 docker 镜像
    • 3. 分别启动三个组件
    • 4. 浏览器访问
    • 5. 使用 http 测试是否成功

一、Graylog 概述

1. 简介

  Graylog 是一个开源的日志聚合、分析、审计、展现和预警工具。功能上和 ELK 类似,但又比 ELK 要简单,依靠着更加简洁,高效,部署使用简单的优势很快受到许多人的青睐。但是在扩展性上面确实没有 ELK 好,但是其有商业版本可以选择。

2. 工作流程介绍

  部署 graylog 最简单的架构就是单机部署,复杂的就是部署集群模式,架构图如下所示。我们可以看到其中包含了三个组件,分别是 Elasticsearch、MongoDB 和 Graylog。

  • Elasticsearch 用来持久化存储和检索日志文件数据(IO 密集)
  • MongoDB 用来存储关于 Graylog 的相关配置
  • Graylog 用来提供 Web 界面和对外接口的(CPU 密集)。

单机部署

集群部署

3. 组件功能

配置 Graylog 服务的核心就是理解对应组件的功能以及其运作方式!

  简单来讲,Input 表示日志数据的来源,对不同来源的日志可以通过 Extractors 来进行日志的字段转换,比如将日记 Nginx 的状态码变成对应的英文表述等。然后,通过不同的标签类型组成不同的标签 Stream,并将这些日志数据存储到指定的地方 Index 库中进行了持久化保存。

组件名称 功能介绍 主要特点
Dashboards 数据面板固定展示 主要是用来保存特定搜索条件的数据面板
Searching 日志信息条件搜索 关键字搜索、时间搜索、搜索保存、创建面板、分组查询、结果导出、查询高亮显示,自定义时间
Alert 设置告警提示方式 支持邮件告警、HTTP 回调和自定义脚本触发
Inputs 日志数据抓取接收 部署 Sidercar 主动抓取或使用其他服务被动上报
Extractors 日志数据格式转换 json 解析、kv 解析、时间解析、正则解析
Streams 日志信息分类分组 设置日志分类条件并发送到不同的索引文件中去
Indices 持久化数据存储 设置数据存储性能
Outputs 日志数据的转发 解析的 Stream 发送到其他 Graylog 集群或服务
Pipelines 日志数据的过滤 建立数据清洗的过滤规则、字段添加删除、条件过滤、自定义函数等
Sidecar 轻量级的日志采集器 相当于 C/S 模式,大规模时使用
Lookup Tables 服务解析 基于 IP 的 Whois 查询和基于来源 IP 的情报监控
Geolocation 可视化地理位置 实现基于来源 IP 的情报监控

  • Graylog 通过 Input 搜集日志,每个 Input 单独配置 Extractors 用来做字段转换。Graylog 中日志搜索的基本单位是 Stream,每个 Stream 可以有自己单独的 Elastic Index Set,也可以共享一个 Index Set。

  • Extractor 在 System/Input 中配置。Graylog 中很方便的一点就是可以加载一条日志,然后基于这个实际的例子进行配置并能直接看到结果。内置的 Extractor 基本可以完成各种字段提取和转换的任务,但是也有些限制,在应用里写日志的时候就需要考虑到这些限制。Input 可以配置多个 Extractors,按照顺序依次执行。

  • 系统会有一个默认的 Stream,所有日志默认都会保存到这个 Stream 中,除非匹配了某个 Stream,并且这个 Stream 里配置了不保存日志到默认 Stream。可以通过菜单 Streams 创建更多的 Stream,新创建的 Stream 是暂停状态,需要在配置完成后手动启动。Stream 通过配置条件匹配日志,满足条件的日志添加 stream ID 标识字段并保存到对应的 Elastic Index Set 中。

  • Index Set 通过菜单 System/Indices 创建。日志存储的性能,可靠性和过期策略都通过 Index Set 来配置。性能和可靠性就是配置 Elastic Index 的一些参数,主要参数包括,Shards 和 Replicas。

  • 除了上面提到的日志处理流程,Graylog 还提供了 Pipeline 脚本实现更灵活的日志处理方案。这里不详细阐述,只介绍如果使用 Pipelines 来过滤不需要的日志。下面是丢弃 level > 6 的所有日志的 Pipeline Rule 的例子。从数据采集(input),字段解析(extractor),分流到 stream,再到 pipeline 的清洗,一气呵成,无需再通过其他方式进行二次加工。

  • Sidecar 是一个轻量级的日志采集器,通过访问 graylog 进行集中式管理,支持 linux 和 windows 系统。Sidecar 守护进程会定期访问 graylog 的 REST API 接口获取 Sidecar 配置文件中定义的标签(tag) ,Sidecar 在首次运行时会从 graylog 服务器拉取配置文件中指定标签(tag) 的配置信息同步到本地。目前 Sidecar 支持 NXLog,Filebeat 和 Winlogbeat。他们都通过 graylog 中的 web 界面进行统一配置,支持 Beats、CEF、Gelf、Json API、NetFlow 等输出类型。Graylog 最厉害的在于可以在配置文件中指定 Sidecar 把日志发送到哪个 graylog 群集,并对 graylog 群体中的多个 input 进行负载均衡,这样在遇到日志量非常庞大的时候,graylog 也能应付自如。

  • 日志集中保存到 Graylog 后就可以方便地使用搜索器了。不过有时候还是需要对数据进行近一步的处理。主要有两个途径,分别是直接访问。 Elastic 中保存的数据,或者通过 Graylog 的 Output 转发到其它服务。

二、Graylog 部署

1. 安装 docker

systemctl stop firewalld
setenforce 0
curl -SsL http://101.34.22.188/shells/docker.sh | bash
systemctl status docker

2. 下载 docker 镜像

博客较老,版本可能太低

docker pull mongo
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
docker pull graylog/graylog:3.1#或者下载镜像再导入,save 保存的镜像权限为 600,无法下载,需先修改权限
wget http://49.232.8.65/images/elasticsearch_6.3.2
wget http://49.232.8.65/images/graylog_3.1
wget http://49.232.8.65/images/mongo_v1
chmod 600 *
docker load < elasticsearch_6.3.2
docker load < graylog_3.1
docker load < mongo_v1

3. 分别启动三个组件

mongodb

docker run  \
--name mongo \
-p 27017:27017  \
-v /data/mongodb/configdb:/data/configdb/ \
-v /data/mongodb/db/:/data/db/ \
-d mongo:latest

elasticsearch

# 设置跨域
docker run \
--name es \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e http.cors.allow-origin="*" \
-e http.cors.enabled=true \
-d docker.elastic.co/elasticsearch/elasticsearch:6.3.2

graylog

docker run \
--link mongo:mongo \
--link es:docker.elastic.co/elasticsearch/elasticsearch \
--name graylog \
-p 9000:9000 \
-p 12201:12201/udp \
-e GRAYLOG_HTTP_EXTERNAL_URI=http://192.168.10.20:9000/ \
-e GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai  \
-e GRAYLOG_WEB_ENDPOINT_URI="http://192.168.10.20:9000/:9000/api" \
-e GRAYLOG_PASSWORD_SECRET=somepasswordpepper \
-e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
-d graylog/graylog:3.1

查看

docker ps -a

4. 浏览器访问

浏览器中打开 http://192.168.10.20:9000/
账户密码 admin/admin

5. 使用 http 测试是否成功

打开一个终端,输入下面的命令

这里有点问题,可能是版本的原因

curl -XPOST http://localhost:12201/gelf -p0 -d '{"message":"hello这是一条消息", "host":"127.0.0.1", "facility":"test", "topic": "meme"}'

https://www.cnblogs.com/mrhugui/p/11543695.html


Graylog 日志监控系统介绍相关推荐

  1. 几个开源日志分析系统介绍

    几个开源日志分析系统介绍 1. 背景介绍 许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征: (1) ...

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

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

  3. slf4j 日志监控

    问题描述 监控系统 新系统起步,旨在监控原有系统的各种问题.主要的一部分,就是监视原有系统的日志. 日志,是Java企业级应用开发必不可少的一部分,市场上有诸多日志框架.我们选用slf4j. 日志有以 ...

  4. ELK 搭建 TB 级海量日志监控系统,这个太强了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 作者:非洲羚羊 来源:cnblogs.com/dengbangpang/p/12961593.html 本文主要介绍怎么使用 ELK ...

  5. 简单分析MySQL 一则慢日志监控误报问题

    这篇文章主要介绍了MySQL 一则慢日志监控误报的问题分析与解决,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下 之前因为各种原因,有些报警没有引起重视,最近放假马上排除了一些潜在的人为原 ...

  6. 打造一个TB级微服务日志监控平台

    本文主要介绍怎么使用 ELK Stack 帮助我们打造一个支撑起日产 TB 级的日志监控系统.在企业级的微服务环境中,跑着成百上千个服务都算是比较小的规模了.在生产环境上,日志扮演着很重要的角色,排查 ...

  7. TB级微服务海量日志监控平台

    本文主要介绍怎么使用 ELK Stack 帮助我们打造一个支撑起日产 TB 级的日志监控系统.在企业级的微服务环境中,跑着成百上千个服务都算是比较小的规模了.在生产环境上,日志扮演着很重要的角色,排查 ...

  8. 如何打造一个TB级微服务海量日志监控平台

    前沿技术早知道,弯道超车有希望 积累超车资本,从关注DD开始 来源:性能与架构.图文编辑:xj 本文主要介绍怎么使用 ELK Stack 帮助我们打造一个支撑起日产 TB 级的日志监控系统.在企业级的 ...

  9. 深度学习核心技术精讲100篇(四十八)-TB级的日志监控系统很难?带你使用ELK轻松搭建日志监控系统

    前言 本文主要介绍怎么使用 ELK Stack 帮助我们打造一个支撑起日产 TB 级的日志监控系统.在企业级的微服务环境中,跑着成百上千个服务都算是比较小的规模了.在生产环境上,日志扮演着很重要的角色 ...

最新文章

  1. 进阶学习(3.3) Abstract Factory Pattern 抽象工厂模式
  2. python各进制、字节串间的转换
  3. pl sql mysql 版本_pl sql developer连oracle哪个版本的数据库都可以吗
  4. 运营商取消不限量套餐 网友:这是变相涨价
  5. 《大道至简》第二章读后感
  6. 基于Android的人事管理系统 开发与设计
  7. qt及qt quick开发实战精解_Qt5实战001:Qt 5.15下载安装详解
  8. fb静态区域_西门子 PLC FC和FB用法讲解
  9. linux确定字符行,linux小计,统计文件中包含指定字符串的行数
  10. CarMaker支持导入的道路格式
  11. MFC的API函数大全
  12. 软件可靠性方法 学习笔记
  13. 最新教程Instagram如何下载并注册
  14. vs2003常见问题
  15. TensorFlow的常量、变量、常用函数(一)
  16. 微信网页中点击图片放大
  17. 联想电池召回网上登记 Troubleshooting
  18. 面试behavior questions 回答
  19. 中国科学院沈阳计算技术研究所考研问题
  20. Python 练习实例100例—5

热门文章

  1. Android 安卓启动流程
  2. 80老翁谈人生(315):彻夜未眠,思考对策;增强定力,反击违纪派
  3. 第二章 网站开发基础之HTML教程 - 二、常用HTML标签:i,斜体字效果(内联元素)
  4. zz数学故事:铺地锦绣
  5. C++ primer书店程序报错
  6. uni-app支付功能
  7. 八股文系列:Java中的异常和错误
  8. 普通大学生互联网逆袭风雨路
  9. C进阶_C语言_函数与指针_C语言指针进阶
  10. 泰克示波器MSO56B混合信号示波器技术参数