(精华)2020年10月2日 微服务 日志中心
什么是日志中心
什么是日志
举例说明,在做的各位有没有在读小学的,都是读过小写的,我们读小学的时候,经常做一个事情,老师要求我们写日记,我们感觉非常烦,那么,日记记录的是什么,是我们每一天做的事情。专业表述,日记是不是用来记录人每一天活动的状态,
同理,在软件中,为了记录软件的运行状态,那么记录这种状态的叫做日志
日记是用来记录人的状态,那么日志是用来记录软件系统运行的状态。
日记组成:时间,地点,做了什么。(条件和结果)
日志组成:时间,类,方法信息(输入参数和输出结果)
什么是日志中心
就是统一记录多个系统的运行日志,就叫做日志中心。
为什么要使用日志中心
见图,微服务系统中使用日志中心
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
- 1
- 2
- 3
2.3 Elasticsearch 6.6.0启动
解压后,在elasticsearch-6.6.0/bin目录下,双击启动
elasticsearch.bat
- 1
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
文档地址:https://www.elastic.co/guide/en/logstash/6.6/index.html
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"
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
3.3 Logstash 6.6.0启动
logstash -f ../config/logstash.conf
- 1
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
文档地址:https://www.elastic.co/guide/en/kibana/6.6/index.html
4.2 Kibana 6.6.0配置
解压后,在kibana-6.6.0-windows-x86_64/config目录下,打开kibana.yml文件,在其中添加配置信息
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
- 1
- 2
- 3
3.3 Kibana 6.6.0启动
在kibana-6.6.0-windows-x86_64/bin目录下,双击
kibana.bat
- 1
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
- 1
5.1.2 NLog配置
在RuanMou.MicroService.AggregateService微服务中创建nlog.config文件,内容为
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Warn"
internalLogFile="internal-nlog.txt">
<!--define various log targets-->
<targets>
<target name="logstash" xsi:type="Network" address="tcp://127.0.0.1:9900" layout="${message}"/>
</targets>
<rules>
<logger name="*" level="Info" writeTo="logstash" />
</rules>
</nlog>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
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<Startup>().UseNLog();
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
5.1.4 NLog使用
在RuanMou.MicroService.AggregateService微服务中打开AggregateController.cs,增加内容为
// NLog日志打印类
private readonly ILogger _Logger = LogManager.GetCurrentClassLogger();
- 1
- 2
文章来源: codeboy.blog.csdn.net,作者:愚公搬代码,版权归原作者所有,如需转载,请联系作者。
原文链接:codeboy.blog.csdn.net/article/details/108904949
- 点赞
- 收藏
- 关注作者
评论(0)