在微服务架构中,一个服务通常都会有多个实例,而这些服务实例可能会被部署到不同的机器或虚拟容器上。此时对于日志数据的查看和分析就会变得困难起来,因为这些服务的日志数据都散落在各自实例所在的机器或容器上。例如,我现在要在订单服务里查找一个订单id为1的日志,而订单服务有10个实例并且部署在10台不同的机器上,那么我就得一台台的去找这个日志数据。所以这时候我们就需要有一个可以实现日志聚合的工具,将所有实例的日志数据都聚合在一个地方,那么我们就不需要到每个实例去找日志了,而本文将使用的日志聚合工具为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=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 ,你们可以随意)
嗯,写完 docker-compose.yml 文件,直接 docker-compose up -d 它就启动起来咯。
启动以后,我们就可以通过 ip:port 访问对应的graylog后台地址了,默认的账号和密码是 admin/admin
随后,我们配置下 inputs 的配置,找到 gelf udp ,然后点击 launch new input ,只需要填写 title 字段,保存就完事了(其他不用动)。
基于 spring boot + mybatis plus + vue & element 实现的后台管理系统 + 用户小程序,支持 rbac 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro 视频教程:https://doc.iocoder.cn/video/ spring boot 集成graylog 首先创建一个springboot项目,springboot默认自带的日志框架是logback,我们可以到 graylog组件市场查找logback相应的组件。
添加依赖如下:
de.siegmar logback-gelf 3.0.0 接着在项目的resources目录下,新建一个logback.xml文件,编辑文件内容如下:
ip 12201 508 true false true true false false true %m%nopex %d - [%thread] %-5level %logger{35} - %msg%n app_name:austin 在这个配置信息里,唯一要改的也只是 ip 的地址,到这里接入就完毕了,我们再打开控制台,就能看到日志的信息啦。
配置完成后启动项目,启动完成后正常情况下可以在graylog的search界面中查看日志信息:
点击一条日志信息会展开详细的字段:
以上是最简单的日志配置,如果希望对更多配置项进行自定义的话,可以参考该组件的github文档,上面有具体的配置项说明
现在我们已经成功将项目的日志数据发送到了graylog服务,如果我们想在graylog上检索日志也很简单,只需要使用一些简单的语法即可,例如我要查询包含mapping的日志信息:
还可以使用一些条件表达式,例如我要查询message字段包含http,并且日志级别为info的日志信息:
常用的日志搜索语法如下:
CNR插槽
英菲尼迪将推首款纯电动跑车 使用新平台打造
面向现场 三相永磁无刷电机的技术研究
能优异导热填料粉:片状氮化铝导热高于球形氮化铝吗?
金融街论坛会将采取线上和线下相结合方式,打造“全球金融云端盛会”
SpringBoot接入轻量级分布式日志框架GrayLog
麻省理工学院研发出无线发射器防范黑客攻击
飞利浦将在法国巴黎实地测试LiFi无线通讯系统
曜越Level 20HT巨无霸机箱高清图集
减少VR带来的身体损伤 确保未来用户的安全
Statek发布医疗遥测应用的微型晶体
AWE2018智能电视功能参数介绍
思特威科技全新推出了两款CMOS图像传感器产品
超声波焊接代替胶粘复杂医疗工程功能部件
基于DSP处理器的多路图像监控系统的设计
基于SN75454B构成的四路报警器电路
DDR的三大关键技术详解
逻辑分析仪探头的物理形式
FPGA在汽车行业的应用
借助 NVIDIA DRIVE Concierge可加速部署更安全高效的车辆