复杂的系统怎么统一日志及服务状态监控

复杂的系统怎么统一日志及服务状态监控,第1张

各家的软件不同,一般是不让你删除的,毕竟日志的作用就是用来查找责任人的。前提你得有点计算机基础方法:1、找到监控软件的数据库软件,常用的就是sql server2000,复杂点的就是oracle2、找到企业管理器3、找到你监控软件用的数据表4、然后在所有的数据表里找类似log这种的表5、打开表,找你需要删除的数据6、删除,搞定7、登录监控软件,检查一下是否彻底删除8、找找自动备份的数据库,直接删除,自己从新再生成一个备份文件,放在那个位置常规手段做到就可以了,当然还是可以找回来,那就比较麻烦了。

在Kubernetes集群环境中,通常一个完整的应用或服务涉及组件过多,建议对日志系统进行集中化管理,通常采用EFK实现。

EFK是 Elasticsearch、Fluentd 和 Kibana 的组合,其各组件功能如下:

Elasticsearch:是一个搜索引擎,负责存储日志并提供查询接口;

Fluentd:负责从Kubernetes搜集日志,每个Node节点上面的Fluentd监控并收集该节点上面的系统日志,并将处理过后的日志信息发送给Elasticsearch;

Kibana:提供了一个 Web GUI,用户可以浏览和搜索存储在 Elasticsearch 中的日志。

通过在每台Node上部署一个以DaemonSet方式运行的Fluentd来收集每台Node上的日志。Fluentd将Docker日志目录/var/lib/docker/containers和/var/log目录挂载到Pod中,然后Pod会在Node节点的/var/log/pods目录中创建新的目录,可以区别不同的容器日志输出,该目录下有一个日志文件链接到/var/lib/docker/contianers目录下的容器日志输出。我推荐你去看看时速云,他们是一家全栈云原生技术服务提供商,提供云原生应用及数据平台产品,其中涵盖容器云PaaS、DevOps、微服务治理、服务网格、API网关等。大家可以去体验一下。 如果我的回答能够对您有帮助的话,求给大大的赞。

场景:A项目(slf4J + logback): Spring(commons logging)、Hibernate(jboss-logging)、

mybatis....

在项目中存在着各种不同的第三方 jar ,且它们的日志选择也可能不尽相同,显然这样是

不利于我们使用的,那么如果我们想为项目设置统一的日志框架该怎么办呢?

参考 SLF4J 官方 的解释

我们可以使用一种和要替换的日志框架类完全一样的 jar 进行替换,这样不至于原来的第三方 jar 报错,而这个替换的 jar 其实使用了 SLF4J API. 这样项目中的日志就都可以通过 SLF4J API 结合自己选择的框架进行日志输出。

统一日志框架使用步骤归纳如下:

根据上面总结的要统一日志框架的使用,第一步要排除其他的日志框架,在 Spring Boot 的 Maven 依

赖里可以清楚的看到 Spring Boot 排除了其他日志框架(<exclusions>标签)。

我们自行排除依赖时也只需要按照图中的方式就好了。

Spring Boot 是使用了 SLF4J+logback 的日志框架组合,查看 Spring Boot 项目的 Maven 依赖关系可

以看到 Spring Boot 的核心启动器 spring-boot-starter 引入了 spring-boot-starter-logging

而 spring-boot-starter-logging 的 Maven 依赖主要引入了 logback-classic (包含了日志框架 Logback

的实现),log4j-to-slf4j (在 log4j 日志框架作者开发此框架的时候还没有想到使用日志抽象层进行开

发,因此出现了 log4j 向 slf4j 转换的工具),jul-to-slf4j ( Java 自带的日志框架转换为 slf4j).

用 IDEA 工具查看 Maven 依赖关系,可以清晰的看到日志框架的引用

可见,Spring Boot 可以自动的适配日志框架,而且底层使用 SLF4j + LogBack 记录日志,如果我

们自行引入其他框架,需要排除其日志框架。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6770224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存