当前位置: 首页 > news >正文

ELK日志管理平台架构和使用说明

一、部署架构

              6f66482a83fb4a2b8b70bb0b6672a95b.png

二、服务注册

2.1 日志解析服务

服务名:日志解析服务(Logstash)

服务默认端口:9600

2.2 日志查询服务

服务名:日志查询服务(Kibana)

服务默认端口:5601

三、对接方式

  1. 通过TCP连接,各服务/应用直接推送日志到logstash服务。
  2. 各应用/服务的运行日志推送到ES后,分别以各自的appname创建索引,查询时也是在appname的索引模式下进行查找,所以需要各应用/服务推送给logstash时提供appname值。

3.1 java应用  

1.引入logstash-logback-encoder包

f18b9ef8eaf64294a4eb2fc932ee1296.png

2.写日志的配置文件中,加入logstash appender

5dd70e11bcef4d45b70c318a406c0d96.png

  • <destination/>节点,用于配置logstash的ip和端口,部署时各系统从配置中心中动态获取日志解析服务对应的IP和端口;
  • <customFields/>节点,用于自定义的数据项内容,其value为json数据,此处配置appname项,用于在elasticsearch中创建日志索引;
  • <providers/>节点,设置输出到logstash中的json格式日志:

timestamp,输出日志时间;

level,日志级别(info、warn和error);

message,具体的日志内容;

stack_trace,捕获的异常栈详情内容,代码中log.error(“{}”, e)即可输出异常栈内容;

可以直接复制该文件全部内容到自己的项目的logback文件里面,该文件里面对于的配置项的内容来源于项目的yml文件,如下图:

3eb9ebfa731243f6a0263ae2bb7c3ded.png

其中logstash.host是读取配置中心的IP,后面其他变量值都是读取配置中心,如果还没对接配置中心这里就需要改成本地的信息, 图上最下面一列改成本项目的jar包名称。

3.自定义Log Interceptor。

对每个request和response的header增加uid和traceId,同时向log4j.MDC中加入uid和traceId,即可向日志中写入该参数,该项非必须操作。

3.2 .Net应用

1. 这里以NLog组件为例:首先需要引入NLog组件;

2. 修改NLog.config配置文件,加入TCP连接方式;配置如下:

 <target xsi:type="Network" name="logstashnetwork" encoding="UTF-8" newLine="true" keepConnection="true" keepAliveTimeSeconds="300" onConnectionOverflow="Block"address ="tcp://192.168.0.79:9600"><layout xsi:type="JsonLayout" includeAllProperties="true"><attribute name="offset" layout="${sequenceid}" /><attribute name="level" layout="${level}"/><attribute name="uid" layout="${identifier}"/><attribute name="traceId" layout="${customid}"/><attribute name="message" layout="[${longdate}.${sequenceid}] [${identifier}] [${customid}] [${typename}]${newline}${message}" escapeUnicode="false" /><attribute name="appname" layout="${appname}" /></layout></target>

【备注】:

  1. 黄色字体部分为需要从配置中心获取日志解析服务对应的配置项,进行动态更新;
  2. 粉色部分为定义的变量,${identifier} 这里用来表示一级标识;${customid}这里用来表示二级标识;${typename}这里用来表示执行的模块名称;${appname}这里用来表示应用程序的项目标识。

上述配置完毕,在对应的日志级别中进行加入logstashnetwork项即可。

 

相关文章:

ELK日志管理平台架构和使用说明

一、部署架构 二、服务注册 2.1 日志解析服务 服务名&#xff1a;日志解析服务&#xff08;Logstash&#xff09; 服务默认端口&#xff1a;9600 2.2 日志查询服务 服务名&#xff1a;日志查询服务&#xff08;Kibana&#xff09; 服务默认端口&#xff1a;5601 三、对接…...

抖音短视频seo矩阵系统源码开发部署技术分享

抖音短视频的SEO矩阵系统是一个非常重要的部分&#xff0c;它可以帮助视频更好地被搜索引擎识别和推荐。以下是一些关于开发和部署抖音短视频SEO矩阵系统的技术分享&#xff1a; 一、 抖音短视频SEO矩阵系统的技术分享&#xff1a; 关键词研究&#xff1a;在开发抖音短视频SEO矩…...

docker 部署一个单节点的rocketmq

拉取镜像 sudo docker pull rocketmqinc/rocketmq创建数据挂载目录 mkdir -p /docker/rocketmq/data/namesrv/logs mkdir -p /docker/rocketmq/data/namesrv/store mkdir -p /docker/rocketmq/data/broker/logs mkdir -p /docker/rocketmq/data/broker/store /docker/…...

MySQL优化

目录 一. 优化 SQL 查询语句 1.1. 分析慢查询日志 1.2. 优化 SQL 查询语句的性能 1.2.1 优化查询中的索引 1.2.2 减少表的连接&#xff08;join&#xff09; 1.2.3 优化查询语句中的过滤条件 1.2.4 避免使用SELECT * 1.2.5 优化存储过程和函数 1.2.6 使用缓存 二. 优化表结构…...

【C++】总结9

文章目录 C从源代码到可执行程序经过什么步骤静态链接和动态链接类的对象存储空间C的内存分区内存池在成员函数中调用delete this会出现什么问题&#xff1f;如果在类的析构函数中调用delete this&#xff0c;会发生什么&#xff1f; C从源代码到可执行程序经过什么步骤 预处理…...

C++报错 XX does not name a type;field `XX’ has incomplete type解决方案

C报错 XX does not name a type&#xff1b;field XX’ has incomplete type解决方案 两个C编译错误及解决办法–does not name a type和field XX’ has incomplete type 编译错误一&#xff1a;XX does not name a type 编译错误二&#xff1a;field XX’ has incomplete t…...

28.利用fminsearch、fminunc 求解最大利润问题(matlab程序)

1.简述 1.无约束&#xff08;无条件&#xff09;的最优化 fminunc函数 : - 可用于任意函数求最小值 - 统一求最小值问题 - 如求最大值问题&#xff1a; >对函数取相反数而变成求最小值问题&#xff0c;最后把函数值取反即为函数的最大值。 使用格式如下 1.必须预先把函数存…...

图像 检测 - FCOS: Fully Convolutional One-Stage Object Detection (ICCV 2019)

FCOS: Fully Convolutional One-Stage Object Detection - 全卷积一阶段目标检测&#xff08;ICCV 2019&#xff09; 摘要1. 引言2. 相关工作3. 我们的方法3.1 全卷积一阶目标检测器3.2 FCOS的FPN多级预测3.3 FCOS中心度 4. 实验4.1 消融研究4.1.1 FPN多级预测4.1.2 有无中心度…...

C# NDArray System.IO.FileLoadException报错原因分析

C# NDArray System.IO.FileLoadException 报错原因分析&#xff1a; 1.NuGet程序包版本有冲突 2.统一项目版本 1.打开解决方案NuGet程序包设置 2.查看是否有版本冲突 3.统一版本冲突...

快速响应,上门维修小程序让您享受无忧生活

随着科技的不断发展和智能手机的普及&#xff0c;上门维修小程序成为了现代人生活中越来越重要的一部分。上门维修小程序通过将维修服务与互联网相结合&#xff0c;为用户提供了更加便捷、高效的维修服务体验。下面将介绍上门维修小程序开发的优势。   提供便捷的预约方式&am…...

05、性能分析思路?

工具操作&#xff1a;包括压力工具、监控工具、剖析工具、调试工具。数值理解&#xff1a;包括上面工具中所有输出的数据。趋势分析、相关性分析、证据链分析&#xff1a;就是理解了工具产生的数值之后&#xff0c;还要把它们的逻辑关系想明白。这才是性能测试分析中最重要的一…...

【编程语言 · C语言 · calloc和realloc】

【编程语言 C语言 calloc和realloc】https://mp.weixin.qq.com/s?__bizMzg4NTE5MDAzOA&mid2247491544&idx1&sn72d8f9931cfa7ce7441a3248475ab619&chksmcfade321f8da6a374a5935bb46441a03a007c0589db6b8afa8c1991854d632a3201553e37b0b&payreadticketHGy…...

机器学习分布式框架ray运行pytorch实例

Ray是一个用于分布式计算的开源框架&#xff0c;它可以有效地实现并行化和分布式训练。下面是使用Ray来实现PyTorch的训练的概括性描述&#xff1a; 安装Ray&#xff1a;首先&#xff0c;需要在计算机上安装Ray。你可以通过pip或conda来安装Ray库。 准备数据&#xff1a;在使用…...

TypeScript 【type】关键字的进阶使用方式

导语&#xff1a; 在前面章节中&#xff0c;我们了解到 TS 中 type 这个关键字&#xff0c;常常被用作于&#xff0c;定义 类型别名&#xff0c;用来简化或复用复杂联合类型的时候使用。同时也了解到 为对象定义约束接口类型 的时候所使用的是 Interfaces。 其实对于前面&#…...

策略路由实现多ISP接入Internet

组网需求&#xff1a; 企业分别从ISP1和ISP2租用了一条链路 PC3用户上网访问Server1时走ISP1PC4用户上网访问Server1时走ISP2 拓扑图 一、ISP1 运营商 R1路由器 <Huawei>sys [Huawei]sys R1 [R1]un in en[R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip addr 2.2.2.2 2…...

Socket本质、实战演示两个进程建立TCP连接通信的过程

文章目录 Socket是什么引入面试题, 使你更深刻的理解四元组 Socket网络通信大体流程实战演示TCP连接建立过程需要用到的linux 查看网络的一些命令测试的程序一些准备工作启动服务端, 并没有调用accept启动客户端开启服务accept Socket是什么 通俗来说,Socket是套接字,是一种编…...

java学习路程之篇四、进阶知识、石头迷阵游戏、绘制界面、打乱石头方块、移动业务、游戏判定胜利、统计步数、重新游戏

文章目录 1、绘制界面2、打乱石头方块3、移动业务4、游戏判定胜利5、统计步数6、重新游戏7、完整代码 1、绘制界面 2、打乱石头方块 3、移动业务 4、游戏判定胜利 5、统计步数 6、重新游戏 7、完整代码 java之石头迷阵单击游戏、继承、接口、窗体、事件、组件、按钮、图片...

Git全栈体系(三)

第六章 GitHub 操作 一、创建远程仓库 二、远程仓库操作 命令名称作用git remote -v查看当前所有远程地址别名git remote add 别名 远程地址起别名git push 别名 分支推送本地分支上的内容到远程仓库git clone 远程地址将远程仓库的内容克隆到本地git pull 远程库地址别名 远…...

JMeter发送get请求并分析返回结果

在实际工作的过程中&#xff0c;我们通常需要模拟接口&#xff0c;来进行接口测试&#xff0c;我们可以通过JMeter、postman等多种工具来进行接口测试&#xff0c;但是工具的如何使用对于我们来说并不是最重要的部分&#xff0c;最重要的是设计接口测试用例的思路与分析结果的能…...

HTML笔记(1)

介绍 浏览器中内置了HTML的解析引擎&#xff0c;通过解析标记语言来展现网页&#xff1b;HTML标签都是预定义好的&#xff1b;Java工程师&#xff1a;后台代码的编写&#xff0c;和数据库打交道&#xff0c;把数据给网页前端的工程师&#xff1b;网页前端工程师&#xff1a;写H…...

高性能指纹特征提取开源方案:FingerJetFX OSE架构解析与实现指南

高性能指纹特征提取开源方案&#xff1a;FingerJetFX OSE架构解析与实现指南 【免费下载链接】FingerJetFXOSE Fingerprint Feature Extractor; the initial contribution by DigitalPersona is MINEX Compliant (SDK 3F). 项目地址: https://gitcode.com/gh_mirrors/fi/Fing…...

重新定义数据标注:Label Studio如何让AI训练效率提升300%?

重新定义数据标注&#xff1a;Label Studio如何让AI训练效率提升300%&#xff1f; 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/labe…...

CentOS 7.6 + Intel Parallel Studio XE 2017:手把手搞定VASP 5.4.4编译环境(附License激活避坑指南)

CentOS 7.6环境下Intel编译器与VASP 5.4.4的深度配置实战 在计算材料科学领域&#xff0c;VASP作为电子结构计算的黄金标准工具&#xff0c;其性能高度依赖底层编译环境的优化。本文将带您深入探索如何在CentOS 7.6系统上&#xff0c;通过Intel Parallel Studio XE 2017构建高性…...

用MATLAB从零实现六足机器人步态:交替三角与波动步态代码详解

用MATLAB从零实现六足机器人步态&#xff1a;交替三角与波动步态代码详解 六足机器人因其卓越的稳定性和地形适应能力&#xff0c;在野外勘探、灾难救援等领域展现出巨大潜力。而步态规划作为机器人运动控制的核心&#xff0c;直接决定了机器人的移动效率和稳定性。本文将带您从…...

OpenRGB:统一多品牌设备控制的开源RGB解决方案

OpenRGB&#xff1a;统一多品牌设备控制的开源RGB解决方案 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. Releases can …...

语义分割竞赛必备:5种Loss函数组合效果对比(含Dice+Focal Loss调参指南)

语义分割竞赛进阶&#xff1a;5种损失函数组合实战评测与调参策略 在Kaggle等数据竞赛中&#xff0c;语义分割任务的性能提升往往取决于损失函数的巧妙选择与组合。不同于常规分类任务&#xff0c;多类别像素级预测需要处理极端类别不平衡、边界模糊等独特挑战。本文将深入剖析…...

第一步:你只需要改这里的所有参数

算数优化算法AOA&#xff0c;2021年新出的智能优化算法&#xff0c;结合SVM做回归拟合预测建模&#xff0c;代码内有详细的注释替换数据就可以使用上次实验室熬大夜调催化加氢产率的SVR模型差点怀疑人生&#xff1a;RBF核随便蒙C和gamma&#xff0c;MSE有时候0.01有时候飘到0.5…...

3步解锁数据自由:WeChatMsg让聊天记录成为数字资产

3步解锁数据自由&#xff1a;WeChatMsg让聊天记录成为数字资产 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMs…...

微信聊天记录永久保存与智能分析:WeChatMsg完全使用指南

微信聊天记录永久保存与智能分析&#xff1a;WeChatMsg完全使用指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeC…...

OpCore-Simplify:实现OpenCore EFI自动化生成的黑苹果配置解决方案

OpCore-Simplify&#xff1a;实现OpenCore EFI自动化生成的黑苹果配置解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 副标题&#xff1a;告别…...