Abp Vnext 搭建 ELK日志记录

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana
安装 Elasticsearch Kibana 的方法我前面文章有写

Abp中加入Logstash

 Serilog.AspNetCore  
 Serilog.Formatting.Elasticsearch  
 Serilog.Sinks.Async 
 Serilog.Sinks.Elasticsearch
 public class Program
{
    public async static Task<int> Main(string[] args)
    {
        Log.Logger = new LoggerConfiguration()
#if DEBUG
            .MinimumLevel.Debug()
#else
            .MinimumLevel.Information()
#endif
            .Enrich.FromLogContext()
            .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
            .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
            .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("Elasticsearch端口"))
             {

                 AutoRegisterTemplate = true,
                 EmitEventFailure = EmitEventFailureHandling.WriteToSelfLog |
                                       EmitEventFailureHandling.WriteToFailureSink |
                                       EmitEventFailureHandling.RaiseCallback,         
                 ModifyConnectionSettings =
                            conn =>
                            {
                                conn.ServerCertificateValidationCallback((source, certificate, chain, sslPolicyErrors) => true);
                                conn.BasicAuthentication("账号", "密码");

                                return conn;
                            }
             })
            .WriteTo.Console()
            .WriteTo.Async(c => c.File($@"{AppContext.BaseDirectory}Log/log.log"))
            .WriteTo.Async(c => c.Console())
            .CreateLogger();
            // 也可以修改默认日志 和控制台打印 

        try
        {
            Log.Information("Starting CloudMgt.HttpApi.Host.");
            var builder = WebApplication.CreateBuilder(args);
            builder.Host.AddAppSettingsSecretsJson()
                .UseAutofac()
                .UseSerilog();
            await builder.AddApplicationAsync<CloudMgtHttpApiHostModule>();
            var app = builder.Build();
            await app.InitializeApplicationAsync();
            await app.RunAsync();
            return 0;
        }
        catch (Exception ex)
        {
            Log.Fatal(ex, "Host terminated unexpectedly!");
            return 1;
        }
        finally
        {
            Log.CloseAndFlush();
        }
    }
}

Kibana 查看日志

kibana新建索引 logstash-*
在这里插入图片描述
然后点击下一步即可 我这边是已经创建完毕了
查看日志
在这里插入图片描述
这样咱们就完成ELK 的初步搭建和 后续学习 ES ,因为一个好的架构是采用到合适的技术栈才有用,采用ELK理由
1 在Docker 中部署应用查看起日志起来比较麻烦 因为是多个API 端口会导致排查线上问题很慢
2 ELK也是比较成熟的方案
3 后续需要考虑到的问题 ELK 日志服务需要单独部署出来
4 对于 ES 准备采用独立服务器的模式
学习总结 :追求好的架构的情况下 要保证系统的稳定性和健壮性 这个的考虑是要优先级高于一些所谓高大上技术的,下一步进军WPF。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值