(精华)2020年10月2日 微服务 日志中心
发布日期:2021-06-29 15:12:34 浏览次数:3 分类:技术文章

本文共 3364 字,大约阅读时间需要 11 分钟。

什么是日志中心

什么是日志

举例说明,在做的各位有没有在读小学的,都是读过小写的,我们读小学的时候,经常做一个事情,老师要求我们写日记,我们感觉非常烦,那么,日记记录的是什么,是我们每一天做的事情。专业表述,日记是不是用来记录人每一天活动的状态,

同理,在软件中,为了记录软件的运行状态,那么记录这种状态的叫做日志

日记是用来记录人的状态,那么日志是用来记录软件系统运行的状态。

日记组成:时间,地点,做了什么。(条件和结果)

日志组成:时间,类,方法信息(输入参数和输出结果)

什么是日志中心

就是统一记录多个系统的运行日志,就叫做日志中心。

为什么要使用日志中心

见图,微服务系统中使用日志中心

1、微服务系统运行正常,一切正常的情况下,不需要使用日中中心

2、微服务系统运行运行异常

​ 2.1 微服务系统内部出现了异常,无法进行排查

​ 2.2 微服务系统调用过程出现了内部异常,定位日志问题非常麻烦,一会在这个地方用,一会在那个地方用,不是非常好维护,

在这两种情况下,所以就出现了日志中心,来统一排查问题

日志中心框架

ELK:ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana ,

为什么选择ELK

比较不同的日志框架

对于目前ELK成为了微服务系统和分布式系统的主流,在市面上还没有其他的日志中心可选

这个时候需要和其他进行对比,只有对比才有效果,就是他的优势在哪里,其他日志中心框架的缺陷在哪里。

微服务中如何使用ELK

ELK组成

Logstash :日志收集,处理器

Elasticsearch :日志存储器

Kibana:日志可视化分析器(webui)

在这三个组件里面,Logstash 是核心地位

Logstash 组成

客户端:收集日志 ==== 客户端有哪些NLog,Log4j

服务端:接受客户端收集来的日志进行进行处理。

ELK集成原理图

见图进行展示

微服务中使用ELK

条件

1、微服务系统

2、Elasticsearch 6.6.0

3、Logstash 6.6.0

4、Kibana 6.6.0

5、NLog

步骤

1、微服务系统操作

​ 1.1 微服务系统已经准备好

2、 Elasticsearch 6.6.0操作

​ 2.1 Elasticsearch 6.6.0下载

​ 下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-6-0

​ 文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/6.6/index.html

​ 2.2 Elasticsearch 6.6.0下载

​ 解压后,在elasticsearch-6.6.0/config目录下,在elasticsearch.yml内配置

network.host: 0.0.0.0增加thread_pool.bulk.queue_size: 1000

​ 2.3 Elasticsearch 6.6.0启动

​ 解压后,在elasticsearch-6.6.0/bin目录下,双击启动

elasticsearch.bat

​ 2.4 Elasticsearch 6.6.0访问

​ 浏览器输入:http://localhost:9200,显示结果,启动成功

3、Logstash 6.6.0操作

​ 3.1 Logstash 6.6.0下载

​ 下载地址:https://www.elastic.co/cn/downloads/past-releases/logstash-6-6-0

​ 文档地址:

​ 3.2 Logstash 6.6.0配置

​ 解压后,在logstash-6.6.0/config目录下,创建logstash.conf文件,在其中添加配置信息

input {    tcp {        port => "9900"        type => "microservice-log"    }}    output {  elasticsearch {         hosts => ["http://localhost:9200"]        index => "microservice-%{+YYYY.MM.dd}"		#user => "elastic"		#password => "changeme"  }}

​ 3.3 Logstash 6.6.0启动

logstash -f  ../config/logstash.conf

​ 3.4 Logstash 6.6.0访问

​ 浏览器输入:http://localhost:9600,显示结果,启动成功

4、Kibana 6.6.0操作

​ 4.1 Kibana 6.6.0下载

​ 下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-6-6-0

​ 文档地址:

​ 4.2 Kibana 6.6.0配置

​ 解压后,在kibana-6.6.0-windows-x86_64/config目录下,打开kibana.yml文件,在其中添加配置信息

server.port: 5601server.host: "localhost"elasticsearch.hosts: ["http://localhost:9200"]

​ 3.3 Kibana 6.6.0启动

在kibana-6.6.0-windows-x86_64/bin目录下,双击

kibana.bat

​ 3.4 Logstash 6.6.0访问

​ 浏览器输入:http://localhost:5601,显示结果,启动成功

5、微服务系统操作

​ 5.1 NLog操作

​ 5.1.1 NLog下载

​ 在RuanMou.MicroService.Core微服务使用Nuegt安装NLog.Web.AspNetCore

Nuget NLog.Web.AspNetCore

​ 5.1.2 NLog配置

​ 在RuanMou.MicroService.AggregateService微服务中创建nlog.config文件,内容为

​ 5.1.3 NLog加载

​ 在RuanMou.MicroService.AggregateService微服务中打开Program.cs,配置内容为

public static IHostBuilder CreateHostBuilder(string[] args) =>            Host.CreateDefaultBuilder(args)                .ConfigureWebHostDefaults(webBuilder =>                {                    // 1、添加NLog日志并加载nlog.config文件                    webBuilder.ConfigureLogging(logbuilder => {                        logbuilder.AddNLog("nlog.config");                    });                    // 2、使用NlLog                    webBuilder.UseStartup
().UseNLog(); });

​ 5.1.4 NLog使用

​ 在RuanMou.MicroService.AggregateService微服务中打开AggregateController.cs,增加内容为

// NLog日志打印类private readonly ILogger _Logger = LogManager.GetCurrentClassLogger();

转载地址:https://codeboy.blog.csdn.net/article/details/108904949 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:(精华)2020年10月2日 微服务 链路监控
下一篇:(精华)2020年9月17日 ASP.NET Core Host主机服务详解

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月20日 09时50分35秒