Asp.net Core + Log4net + ELK 搭建日志中心

Docker中一键安装ELK

对于这种工具类的东西,第一步就直接到docker的hub中查找了,很幸运,不仅有Elasticsearch,kibana,logstash 单独的镜像,而且还直接 有ELK的镜像。
Asp.net Core + Log4net + ELK 搭建日志中心_第1张图片

sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -d --name log-platform --restart always  sebp/elk

这当然能少好多配置,毫不犹豫就选择了elk的镜像, 运行起来!如果没有异常的话相信就很容易的跑起来了(最有可能出现的问题就是虚拟内存不足了,可以百度找解决方案这里就不在详细说了)
Asp.net Core + Log4net + ELK 搭建日志中心_第2张图片

项目中添加log4net到Elasticseach的Appender

因为在.net core 之前就有搭建过日志中心,所以对于appender还记得有一个Log4net.Elasticsearch的dll,但是在查看资料之后发现很久没有更新 也不支持.net standard。在决定自己实现appender之前,抱着侥幸心理去查找了一翻,既然找到一个支持.net core的开源项目log4stash。很幸运,又可以不要造轮子了,哈哈。log4Stash使用很简单,但是配置的东西还挺多的而且作者也没有很好的文档介绍,先不管其他的用起来在说。

  • 项目中添加log4stash
Install-Package log4stash -Version 2.2.1
  • 修改log4net.config
    在log4net.config中添加appender

    localhost
    9200
    log_test_%{+yyyy-MM-dd}
    LogEvent
    2000
    10000
    True

另外附上全部的配置信息


    localhost
    9200
    
    /es5
    log_test_%{+yyyy-MM-dd}
    LogEvent
    2000
    10000
    False
    IdSource 
    
    
    True 

    
    10000

    
    
      
        _routing
        %{RoutingSource}
      
      
        _id
        %{IdSource}
      
      
        key
        value
      
    

    
    Partial
    
    

    
    
    
      
      
          Username
          Password
      
      
      
          Secret
          AccessKey
          Region
      
    
    
    
    
      
        @type
        Special
      

      
      
        SmartValue
        the type is %{@type}
      

      
        @type
      

      
      
        SmartValue
        SmartValue2
      
    
      
      
        JsonRaw
        false
        
        _ 
      

      
      
        XmlRaw
        false
      
      
      
      
        Message
        :=
         ,
      

      
        Message
        the message is %{WORD:Message} and guid %{UUID:the_guid}
        true
      

      
      
        someIds
        
        ,  
      

      
        
        shouldBeString

        
        
           anotherIds
        
      
    

最后别忘了在root中添加上appender

  
    
    
  

OK,项目的配置就到这里结束了,可以运行项目写入一些测试的日志了。

在kibana建立Index Pattern

Elasticsearch的Index跟关系数据库中的Database挺类似的,虽然我们项目在写了测试数据后,Elasticsearch中就已经有Index了,但是如果我们需要在可视化工具中查询数据的话建立Index Pattern
进入Management - Create Index Pattern,输入我们项目日志配置文件中的Index名称log_test-*(如果有数据,这边应该是会自动带出来的),然后创建,之后就可以在Kibana中浏览,查询我们的日志信息了。
Asp.net Core + Log4net + ELK 搭建日志中心_第3张图片

你可能感兴趣的:(Asp.net Core + Log4net + ELK 搭建日志中心)