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中效果

最新文章

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

热门文章

  1. idea 自动生成try/catch代码块的快捷键
  2. 04 . Filebeat简介原理及配置文件和一些案例
  3. MySQL中的循环
  4. presto 转换静态catlog为动态catlog
  5. 线上CUP负载过高排查方法
  6. Mybatis(五)Spring整合Mybatis之mapper动态代理开发
  7. javascript中的堆栈、深拷贝和浅拷贝、闭包
  8. 谁来教我渗透测试——黑客应该掌握的Windows基础
  9. 如何在 UltraEdit 删除空行(含空格,制表符)
  10. Python os.stat() 方法