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中效果
最新文章
- oracle 用户创建这个挺靠谱
- simpleTree简单使用
- 李洪强漫谈iOS开发[C语言]-045-循环结构
- C语言 ---- 循环分支 iOS学习-----细碎知识点总结
- SQL Server Index详解
- DataTable.Select
- Java_观察者模式(Observable和Observer) -转
- static和extern关键字 对变量的作用
- java中对于JSON 的处理 fastjson gson 系统自带的JSON 的选择
- Angular JS 学习笔记(二)
- 通过HtppWebRequest发送图片到服务器并保存
- idea创建的java web项目打包发布到tomcat
- javascript 中的number
- Yaf 完全精通
- 使用Jenkins遇到的问题
- Confluence 6 管理你的 Confluence 许可证
- CentOS6.8下安装xz命令
- JavaScript 拥有动态类型
- unity 打包资源及网络请求资源包
- 清除git以外文件