文档章节

分布式日志管理graylog安装及使用

o
 osc_isezqdgg
发布于 2019/09/18 17:05
字数 1361
阅读 25
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

1 环境准备

2 安装

下载docker镜像

docker pull mongo
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
docker pull graylog/graylog:3.1

分开启动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 \
# 访问URL
-e GRAYLOG_HTTP_EXTERNAL_URI=http://10.211.55.6:9000/ \
# 设置时区,不然会时间不对
-e GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai  \
-e GRAYLOG_WEB_ENDPOINT_URI="http://10.211.55.6:9000/:9000/api" \
-e GRAYLOG_PASSWORD_SECRET=somepasswordpepper \
# 密码:admin
-e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
-d graylog/graylog:3.1

3 参数配置

3.1 docker 查看容器

输出内容: image.png

3.2 浏览器中打开http://localhost:9000/,账户密码:admin/admin

image.png

3.3 使用http测试是否成功 (可选)

3.3.1 新建input http input

image.png

3.3.2 打开一个终端,输入下面的命令
curl -XPOST http://localhost:12201/gelf -p0 -d '{"message":"hello这是一条消息", "host":"127.0.0.1", "facility":"test", "topic": "meme"}'

打开浏览器观察信息,看到如下消息,证明安装成功

4 SpringBoot集成graylog

4.1 创建 gref udp input

image.png

4.2 SpringBoot项目修改

4.2.1 在pom.xml的dependency加入的如下依赖:
    <dependency>
		<groupId>biz.paluch.logging</groupId>
		<artifactId>logstash-gelf</artifactId>
		<version>1.13.0</version>
	</dependency>
4.2.2 配置日志输出

在配置文件logback.xml中,添加如下appender,并启用:

    <appender name="GELF" class="biz.paluch.logging.gelf.logback.GelfLogbackAppender">
        <!-- 改为自己的IP-->
        <host>udp:192.168.1.101</host>
        <port>12201</port>
        <version>1.1</version>
        <!-- 这里可以定义为服务名等-->
        <facility>blockchain-module</facility>
		<!-- 手动添加字段 -->
		<additionalFields>version=4.1.0,module=blockchain</additionalFields>
        <extractStackTrace>true</extractStackTrace>
        <filterStackTrace>true</filterStackTrace>
        <mdcProfiling>true</mdcProfiling>
        <timestampPattern>yyyy-MM-dd HH:mm:ss,SSS</timestampPattern>
        <maximumMessageSize>8192</maximumMessageSize>
        <!-- This are fields using MDC -->
        <mdcFields>mdcField1,mdcField2</mdcFields>
        <dynamicMdcFields>mdc.*,(mdc|MDC)fields</dynamicMdcFields>
        <includeFullMdc>true</includeFullMdc>
    </appender>
    
    <root level="INFO">
        <appender-ref ref="GELF" />
        <appender-ref ref="STDOUT"/>
    </root>

除来上面的配置外,还可以手动添加静态字段,详细可以看插件的github官网

4.2.3 启动SpringBoot项目,观察浏览器graylog

image.png 到此graylog的基础配置就算完成了,已经可以收到日志数据,但是在实际工作中,服务日志会非常多,这么多的日志,如果不进行存储限制,那么不久就会占满磁盘,查询变慢等等,而且过久的历史日志对于实际工作中的有效性也会很低,graylog则自身集成了日志数据限制的配置,可以通过如下进行设置: image.png

这里提供了三种方式进行限制,可根据自己的实际情况进行设置。

  1. 限定日志数据量,数据量达到是便会自动删除最旧的历史数据,以维持数据量恒定。
  2. 限定大小,指定数据文件总容量大小。
  3. 限定时间,删除超时的日志数据。 image.png

5 Graylog进阶使用

上面介绍的都是graylog的基础使用和配置,在配置了之后,已经可以实现对日志的采集,日志的监控报警。下面就简单演示一下如何创建仪表盘,在过程中熟悉一下graylog中的搜索,流,索引,管道,装饰器等等。

5.1 搜索

在有了日志数据后,在web界面的search中,就可以搜索到日志数据了,如下图: image.png 上图中就是搜索界面,最上面可以选择时间端,默认是最近5分钟,第二行是搜索的语法,这个语法很简单,最常用的如,搜索level为3的日志,就是 level:3,就这么简单,多条匹配规则可以通过AND,OR(连接词必须大写)进行连接。要搜索包含abc的日志,就直接输入 abc 就行了。整体来说相对于elk要简单很多。具体的完整用法,参考官方文档: http://docs.graylog.org/en/3.0/pages/extended_search.html

5.2 仪表盘

首先创建一个仪表盘,只需要输入标题和说明 image.png 创建完仪表盘后你会发现,没发直接在仪表盘中添加部件,也就是添加数据图形等。仪表盘中的部件只能通过在search页面中通过生产图形后,然后点击 add to dashboard 来添加到仪表盘中,添加后可以进行修改删除。详细的可以参考官网文档:仪表盘 这里演示一下:在search页面中,选择字段,字段下面会有4个选项,可以生产4个不同的图形分析,如图: image 其中,最后一个是地图map分析,这个需要额外添加地图信息插件等。这里暂时不说。其他三个都是可以直接出来分析徒刑的。比如我想要知道环境-微服务的总数,因为上面整合springboot的时候,配置中将facility地段自定义为 环境-微服务,如test-device 。所以我直接点击facility下的Statistics,就会生产如下表格: image.png 如图,Cardinality就是环境-微服务不同的数量,也就是接收到日志的环境-微服务总数。点击add to dashboard就能添加到仪表盘,添加之前需要特别注意一点: 时间段,搜索的时间段会影响图形的数据量,添加到仪表盘后会作为默认的时间段来展示数据。当然也可以在添加后,再修改部件属性中修改时间等。 最后,看一下仪表盘的效果: image.png image.png

5.3 未完待续......

参考文档: https://blog.csdn.net/weixin_41004350/article/details/87253316 http://docs.graylog.org/en/3.0

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
CDH5: 使用parcels配置lzo

一、Parcel 部署步骤 1 下载: 首先需要下载 Parcel。下载完成后,Parcel 将驻留在 Cloudera Manager 主机的本地目录中。 2 分配: Parcel 下载后,将分配到群集中的所有主机上并解压缩。 3 激...

cloud-coder
2014/07/01
6.8K
1
树莓派(Raspberry Pi):完美的家用服务器

自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但树莓派( RPi )最明显却又是最不吸引人的用处是:创建你的完美家用...

异次元
2013/11/09
6.6K
8
5分钟 maven3 快速入门指南

前提条件 你首先需要了解如何在电脑上安装软件。如果你不知道如何做到这一点,请询问你办公室,学校里的人,或花钱找人来解释这个给你。 不建议给Maven的服务邮箱来发邮件寻求支持。 安装Mav...

fanl1982
2014/01/23
1.2W
7
DNS 管理系统--NamedManager

NamedManager 是一个基于 Web 的 DNS 管理系统,可用来添加、调整和删除 DNS 的 zones/records 数据,支持 Bind 作为后端的 DNS 服务,支持 IPv4 和 IPv6。...

匿名
2013/01/23
8.7K
0
Web开发组件管理器--Bower

Bower 是一个针对Web开发的包管理器。该工具主要用来帮助用户轻松安装CSS、JavaScript、图像等相关包,并管理这些包之间的依赖。 功能有些类似于Component。不同之处是,Component是围绕Git...

匿名
2013/02/01
1.2W
2

没有更多内容

加载失败,请刷新页面

加载更多

听说你还不会jwt和swagger-饭我都不吃了带着实践项目我就来了

前言 哈喽,大家好,我是asong,这是我的第八篇原创文章。听说你们还不会jwt、swagger,所以我带来一个入门级别的小项目。实现用户登陆、修改密码的操作。使用GIN(后台回复Golang梦工厂:g...

sunsong2020
今天
0
0
python合并excel的多个sheet

简介 因为,每天都会有的大量excel报表汇总处理任务,所以写了一个脚本来处理。 就是找出每一个excel中特定的sheet,把这些sheet的特定列读取出来合并到一个sheet中。 因为每一个sheet的数据...

trayvon
17分钟前
0
0
如何设计一个幂等接口

什么叫幂等接口 幂等性,就是只多次操作的结果是一致的。这里可能有人会有疑问。 问:为什么要多次操作结果都一致呢?比如我查询数据,每次查出来的都一样,即使我修改了每次查出来的也都要一...

贪挽懒月
昨天
0
0
华为阿里下班时间曝光:所有的光鲜,都有加班的味道

点击上方 Z先生点记,加为星标 第一时间收到 Python 技术干货! 来源:GitHubPorn 声明:本文由HR人力资源成长俱乐部整理发布。素材来源程序员之家。如需转载,请务必注明以上信息,侵权必究...

zeroing1
08/06
0
0
Proguard 常用规则

入口 为了决定哪些代码要被保留哪些代码要出丢弃和混淆,必须指定入口点。这些入口点通常是 main方法,activity,service等。 在压缩阶段,Proguard从这些入口点开始递归确定哪些类或类成员要...

佛系编码
24分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部