zoukankan      html  css  js  c++  java
  • ELK日志收集系统

    下载软件包

    ELK官网 请大家以官网为主,以博客为辅。
    官网下载所需软件包
    我这里以windows环境演示
    在这里插入图片描述

    解压logstash

    启动试试

    bin目录 .logstash.bat -e "input { stdin { } } output { stdout { codec => rubydebug } }"
    -e 参数后面跟的是logstash输入输出形式,上面意思为:从控制台接收输入,输出到控制台。
    启动后随意输入然后回车,就可以看到输出了

    配置logstash

    参考:https://www.elastic.co/guide/en/logstash/current/config-examples.html
    config目录logstash-sample.conf复制一份改名为logstash.conf(名字随意)内容如下:

    input {
    	stdin {
    	}
    }
    output {
      stdout { 
    	codec => rubydebug
      }
    }
    

    大家看到了,上面的配置其实意义和第一步是一样的:从控制台接收输入,输出到控制台。
    怎么用呢?
    logstash.bat -f logstash.conf

    logstash输入和输出都可以有多个,比如下面

    # 从控制台和tcp连接(通常是咱们的应用)输入
    # 输出到控制台和elasticsearch
    input {
    	stdin {
    	}
    	tcp {
          port => "8888"   # 接收输入日志的端口
    	}
    }
    output {
      stdout { 
    	codec => rubydebug
      }
      elasticsearch { 
      	hosts => ["localhost:9200"]
       }
    }
    

    配置日志输出到logstash

    首先引入用于logback输出到logstash的依赖

    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>4.10</version>
    </dependency>
    

    spring项目的resource目录创建logback-spring.xml文件 用于设置日志输出地址

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <!-- 输出到控制台 -->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
                <charset>utf-8</charset>
            </encoder>
        </appender>
        <!-- 输出到logstash -->
        <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <destination>localhost:8888</destination>
            <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
        </appender>
        <root level="info">
            <appender-ref ref="console"/>
            <appender-ref ref="logstash"/>
        </root>
    </configuration>
    

    这样,启动logstash然后启动项目就能看到logstash打出的信息了,类似下面这样

    {
    	"port" => 9773,
    	"type" => "tcplog",
    	"message" => "{"@timestamp":"2019-07-28T22:18:32.539+08:00","@version":1,"message":"Starting ProtocolHandler [\"http-nio-8081\"]","logger_name":"org.apache.coyote.http11.Http11NioProtocol","thread_name":"main","level":"INFO","level_value":20000}
    ",
    	"@version" => "1",
    	"@timestamp" => 2019-07-28T14:18:32.540Z,
    	"host" => "view-localhost"
    }
    

    启动elastic search

    解压后 bin目录 .elasticsearch.bat

    启动 kibana

    解压后 bin目录 .kibana.bat
    这样启动应用 就能在kibana看到日志了,快去试试吧!
    这有一篇不错的kibana教程 https://www.cnblogs.com/cjsblog/p/9476813.html

    logstash解耦

    https://blog.csdn.net/GY325416/article/details/97623264

  • 相关阅读:
    给xml某个节点赋值
    把datatable的某些数据提取出来放在另一个表中
    投资技巧:抛股票有技巧 常用方法介绍
    jquery的实用技巧,非常实用
    我觉得需要关注和跟进的一些.net技术
    公司网站的架构
    uboot移植经历
    ARM处理器中CP15协处理器的寄存器
    uboot 学习 Makefile分析
    uboot移植
  • 原文地址:https://www.cnblogs.com/paper-man/p/13284647.html
Copyright © 2011-2022 走看看