大家好,欢迎来到IT知识分享网。
一、GrayLog简介
作为一位合格的后端开发程序员,说起ELK,即便没用过肯定也听说过这玩意了,在后端是真的流行。而GrayLog 可以算是轻量级ELK。
GrayLog是一个轻量型的分布式日志管理平台,一个开源的日志聚合、分析、审计、展示和预警工具。在功能上来说,和 ELK类似,但又比 ELK要简单轻量许多。依靠着更加简洁,高效,部署使用简单的优势很快受到许多公司的青睐。
GrayLog包含 Elasticsearch、MongoDb 和 Graylog三个模块。其中,Elasticsearch用来持久化存储和检索日志文件数据,MongoDb 用来存储关于 Graylog的相关配置,而 Graylog用来提供 Web 界面和对外接口。
- 单机部署
- 集群部署
官方文档:https://docs.graylog.org/docs
二、部署Graylog
大概介绍了一下Graylog ,我们直接上docker-compose 部署,之前的文章里我们介绍了很多了,相比大家也并不生疏。
创建一个文件夹,在文件夹中创建文件docker-compose.yml
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=8c6976e5bbde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 - GRAYLOG_HTTP_EXTERNAL_URI=http://www.xiong.com: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/udp networks: graylog: driver: bridge
这个文件里唯一需要改动的就是 ip(本来的端口是9000的,由于我已经占用了9000端口,所以我这里把端口改成了9009,大家可以随意)
写完docker-compose.yml文件,直接docker-compose up -d 它就启动起来咯。
启动以后,我们就可以通过ip:port访问对应的Graylog后台地址了,默认的账号和密码是admin/admin
随后,我们配置下 inputs 的配置,找到GELF UDP,然后点击Launch new input,只需要填写Title字段,保存就完事了(其他不用动)。
到这里,我们的GrayLog设置就完成了。
三、SpringBoot使用GrayLog
1、引入依赖:
<dependency> <groupId>de.siegmar</groupId> <artifactId>logback-gelf</artifactId> <version>3.0.0</version> </dependency>
2、在logback.xml配置graylog相关的信息:
<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的地址,到这里接入就完毕了,我们再打开控制台,就能看到日志的信息啦。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132488.html