Core + Vue 后台管理基础框架9——统一日志
1、背景
前阵子有园友留言,提到日志相关的东西,同时,最近圈子里也有提到日志这个东西。一个充分、集中的统一日志平台还是很有必要的,否则系统出问题了只能靠猜或者干瞪眼。何谓充分,日志记录满足最低要求、出问题方便定位、可追溯、可追责,最重要的,方便扯皮;何谓集中,各子系统或服务日志都怼到一个地方,想看日志直接去日志平台去看,且方便检索、聚类,而不是需要每个服务、每台服务器逐个远程去翻扯。这里,就结合项目实践,聊下怎么方便、快捷、低成本的实现统一日志平台。
2、技术栈
.NET CORE + log4net + EFK
.NET CORE自不必说,系统基于.NET CORE的;log4net用于将日志输出到服务器本地;EFK中E(ES)用于存储日志,F(filebeat)用于搜集本地日志发送到远程ES,K(Kibana)用于日志检索。
其中.NET CORE、log4net部分均可自由切换,是系统、能把日志输出到服务器本地即可;EFK则通用。
选择EFK是因为之前监控、PCI认证已经搭建好了ELK环境,这里就直接使用不再重复建设其他平台。
3、log4net配置
红框圈起来部分,[%d]设置输出行首日期部分被中括号([])包围,具体原因我们后文赘述。log4net与.NET CORE的集成很多资料自行查阅。设置完毕,日志本地输出类似如下:
4、filebeat配置
服务器上安装完成filebeat之后,编辑/etc/filebeat/filebeat.yml配置文件:
这里开启了多行日志匹配模式,正如上图的日志输出截图,实际当中一条日志记录占用多行再正常不过,filebeat不做任何设置则会每一行作为作为一条被收割,检索、分析、存储都是个问题。正则表达式代表匹配方括号括起来的时间,比如[2020-08-15 12:00:00],从这里开始只到下一个匹配项之间的部分作为该条日志记录被发送到ES。配置完毕,重启filebeat服务。
5、kibana中效果
Core + Vue 后台管理基础框架9——统一日志的更多相关文章
- Core + Vue 后台管理基础框架0——开篇
1.背景 最近,打算新开个项目,鉴于团队技术栈,选型.net core + vue,前后端分离.本打算捡现成的轮子的,github上大致逛了逛,总发现这样那样的不太适合心中那些“完美实践”,例如:Ab ...
- Core + Vue 后台管理基础框架2——认证
1.前言 这块儿当时在IdentityServer4和JWT之间犹豫了一下,后来考虑到现状,出于3个原因,暂时放弃了IdentityServer4选择了JWT: (1)目前这个前端框架更适配JWT: ...
- Core + Vue 后台管理基础框架4——前端授权
1.前言 上篇,我们讲了后端的授权.与后端不同,前端主要是通过功能入口如菜单.按钮的显隐来控制授权的.具体来讲,就是根据指定用户的制定权限来加载对应侧边栏菜单和页面内的功能按钮.我们一个个来讲. 2. ...
- Core + Vue 后台管理基础框架3——后端授权
1.前言 但凡业务系统,授权是绕不开的一环.见过太多只在前端做菜单及按钮显隐控制,但后端裸奔的,觉着前端看不到,系统就安全,掩耳盗铃也好,自欺欺人也罢,这里不做评论.在.NET CORE中,也见过不少 ...
- Core + Vue 后台管理基础框架1——运行系统
1.down源码 git clone https://github.com/KINGGUOKUN/SystemManagement.git,项目目录如下: 2.还原数据库 找到项目根目录下System ...
- Core + Vue 后台管理基础框架7——APM
1.前言 APM,又称应用性能统计,主要用来跟踪请求调用链,每个环节调用耗时,为我们诊断系统性能.定位系统问题提供了极大便利.本系统采用的是Elastic Stack体系中的APM,主要是之前部门搞P ...
- Core + Vue 后台管理基础框架8——Swagger文档
1.前言 作为前后端分离的项目,或者说但凡涉及到对外服务的后端,一个自描述,跟代码实时同步的文档是极其重要的.说到这儿,想起了几年前在XX速运,每天写完代码,还要给APP团队更新文档的惨痛经历.给人家 ...
- hsweb 企业后台管理基础框架
hsweb 详细介绍 业务功能 现在: 权限管理: 权限资源-角色-用户. 配置管理: kv结构,自定义配置.可通过此功能配置数据字典. 脚本管理: 动态脚本,支持javascript,groovy, ...
- 基于bootstrap的漂亮网站后台管理界面框架汇总
基于bootstrap的漂亮网站后台管理界面框架汇总 10个最新的 Bootstrap 3 管理模板 这里分享的 10 个模板是从最新的 Bootstrap 3 管理模板集合中挑选出来的,可以帮助你用 ...
随机推荐
- TeamViewer如何绑定谷歌二次验证码/谷歌身份验证?
1.下载TeamViewer,找到谷歌二次验证界面 下载.注册TeamViewer后,点击右上角账户名-“编辑配置文件” [常规]-“双重验证”,点“启用” 进入[激活双重验证]界面,点“启动激活 ...
- springboot 跨域设置
/** * Configuration cors */ @Configuration public class MyConfiguration { @Bean public FilterRegistr ...
- web自动化 -- 三种等待方式
一.强制等待 二.隐式等待 注:隐式等待的作用域是全局,所以一般设置在整局代码的头几行. 如: 三.显示等待 元素存在: 元素可见: 元素可点击: 看到上图源码中有一个 element.is_en ...
- Android集成Zxing
1.在build文件中添加依赖 dependencies { //ZXing implementation 'com.google.zxing:core:3.3.3' implementation(' ...
- Spring Data JPA根据属性名查询
https://blog.csdn.net/chengqiuming/article/details/82528961
- PHP array_multisort() 函数
实例 返回一个升序排列的数组: <?php$a=array("Dog","Cat","Horse","Bear", ...
- PHP fseek() 函数
定义和用法 fseek() 函数在打开的文件中定位. 该函数把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量. 如果成功该函数返回 0,如果失败则返回 -1.请注意,移动到 ...
- PDO::setAttribute
PDO::setAttribute — 设置属性(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 bool PDO::setAttribute ( int ...
- Linux常用命令之ls、cd、pwd、mkdir命令讲解
ls命令令是Linux最常用的命令之一,也是一条非常古老的命令.在开始学习Linux命令之前,还是想给大家一条建议: 很多同学可能刚开始学习Linux,然后就去买一些教材去学习,教材上面有可能收集了L ...
- Spring Validation最佳实践及其实现原理,参数校验没那么简单!
之前也写过一篇关于Spring Validation使用的文章,不过自我感觉还是浮于表面,本次打算彻底搞懂Spring Validation.本文会详细介绍Spring Validation各种场景下 ...