SpringCloud微服务总结2 ELK日志监控搭建

程序运行避免不了出错,测试环境时我们可以通过打断点定位问题。但是上线之后的项目出bug,进行定位时就需要查看日志。spring cloud进行分布式部署后会有多个微服务,每个微服务都会产生日志,怎么进行日志分类,按条件索引想要看到的报错内容呢?现在流行的日志监控系统ELK完美解决这个问题。本文整理了ELK单机版在Linux系统进行搭建,以及springboot将日志关联到ELK系统。

ELK是由三个工具整合的日志系统(elasticsearch、logstash、kibana)。

Elasticsearch:起到的作用是日志索引,快速根据不同条件找到我们想看到的日志。

Logstash:起到的作用是日志收集,各个微服务将日志关联到logstash。

kibana:起到的作用是可视化UI界面。查看日志总归是有个图形化界面比较好看实用。

 

一 、安装Elasticsearch

  1. 下载,我用的6.4.1版本,新版本没用过,也没了解有啥变化,还是稳重求胜比较好。下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-4-1
     
  2. 解压缩:

        tar -zxvf elasticsearch-6.4.1.tar.gz -C /usr/local

            这时,/usr/local目录下就有elasticsearch-6.4.1目录了

       cd /usr/local/ elasticsearch-6.4.1

     3. 编辑配置文件并启动

         vi /config/elasticsearch.yml 修改基本配置(注意的点,:后面跟一个空格。它是yml格式的文件)

         network.host: 192.168.0.85                  单机配置成本机地址即可

         http.port: 9200                                             端口默认9200

         这时就配置完成,但是它不允许root运行,所以我们新建个帐号来运行它

         useradd elk

         passwd elk

        输入俩次密码 回到上级目录并更改elasticsearch的拥有者:

        chown -R elk elasticsearch-6.4.1

        这时切换到elk用户,执行

        su elk

       命令完成切换

       cd elasticsearch-6.4.1

       后台运行它,并将启动日志输入

       nohup ./bin/elasticsearch &

       查看elasticsearch运行日志命令

       vi nohup.out   查看截至到当前日志

       tailf nohup.out    实时查看运行日志

 

二 、安装Logstash

  1. 下载,我用的6.4.1版本,新版本没用过,也没了解有啥变化,还是稳重求胜比较好。下载地址:https://www.elastic.co/cn/downloads/past-releases/logstash-6-4-1
  2. 解压缩:

         tar -zxvf logstash-6.4.1.tar.gz -C /usr/local

         cd /usr/local/logstash-6.4.1/

     3. 编辑配置文件并启动

          创建一个配置文件

          vi config/logstash.conf    (logstash.conf 名字可自定义)

          以下为logstash中基本配置:

input {
    tcp {
        port => "5044"
        codec => "json"
    }
}

output {
    elasticsearch {
        action => "index"
        hosts => ["192.168.195.201:9200"]
        index => "%{[appname]}"
    }
}

         启动logstash

         nohup ./bin/logstash -f ./config/logstash.conf &

         查看logstash运行日志命令

         vi nohup.out   查看截至到当前日志

         tailf nohup.out    实时查看运行日志

 

三 、安装Kibana

  1. 下载,我用的6.4.1版本,新版本没用过,也没了解有啥变化,还是稳重求胜比较好。下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-6-4-1
  2. 解压缩:

         tar -zxvf kibana-6.4.1-linux-x86_64.tar.gz -C /usr/local/

     3. 编辑配置文件并启动

         cd /usr/local/kibna-6.4.10linux-x86_64

         vi config/kibana.yml

              下边为kinaka中需要配置的

         server.host: "0.0.0.0"
         elasticsearch.url: "http://192.168.0.85:9200"
         elasticsearch.username: "elastic"
         elasticsearch.password: "changeme"

              启动kibana

              nohup ./bin/kibana &

              查看kibana运行日志命令

              vi nohup.out   查看截至到当前日志

              tailf nohup.out    实时查看运行日志

 

四、springboot中关联Logstash日志

           logback.xml文件如下:


    scanPeriod="1 seconds">
             resource="org/springframework/boot/logging/logback/base.xml" />
    
    logback

     

             value="%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID} --- [%15.15t] %-40.40logger{39} : %m%n" />


    
             class="ch.qos.logback.core.ConsoleAppender">
        
        
            info
        

        
            ${CONSOLE_LOG_PATTERN}
            
            UTF-8
        

    


             class="ch.qos.logback.core.rolling.RollingFileAppender">
        ${log.path}
        
            info
            ACCEPT
            DENY
        

        
            ${log.pattern}
        

                     class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            info-%d{yyyy-MM-dd}-%i.log
            

                             class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

                10MB
            
            10
        

    

   

          class="net.logstash.logback.appender.LogstashSocketAppender">
        
            INFO
        

        192.168.0.85
        5044
        {"appname":"appname"}
    

             class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        192.168.0.85:5044
        
                     class="net.logstash.logback.encoder.LogstashEncoder">
            {"appname":"appname"}
        

        
            
                5 minutes
            

        

    


    
        
        
         
    

 

注:此文章仅供参考!!!如有不足之处或合理化建议还请提出,谢谢!

你可能感兴趣的:(springcloud)