分布式框架-ELK

es 启动异常

1、Unable to establish loopback connection

解决方法:关闭防火墙

1、启动es、

2、kabana、

3、启动logstash

创建对应要导入数据的config文件(logstash**.conf,注意文件里要严格对应花括号,不能有多余空格)

1、logstash -f 目录(包含多个conf文件,logstash会一起导入))

2、logstash -f 目录/conf文件

input {
 # 我们创建了两个微服务demo 所以建立两个不同的输入,将两个服务的日志分别输入到不同的索引中
  tcp {
    mode => "server"
    host => "0.0.0.0"  # 允许任意主机发送日志
    type => "elk1"      # 设定type以区分每个输入源
    port => 4567      
    codec => json_lines{
        charset => "utf-8"
    }
  }
  tcp {
    mode => "server"
    host => "0.0.0.0"
    type => "elk2"
    port => 4667
    codec => json_lines{
        charset => "utf-8"
    }
  }

}
filter {
  mutate {
    remove_field => [@version]
  }
  json {
    source => "enhancemessage"
    remove_field =>["enhancemessage"]
  }
}

output {
  if [type] == "elk1" {
      if "_jsonparsefailure" not in [tags] {
          elasticsearch {
              action => "index"          # 输出时创建映射
              hosts  => "localhost:9200"   # ElasticSearch 的地址和端口
              index  => "elk1-%{+YYYY.MM.dd}"         # 指定索引名
              codec  => "json"
          }
      }
    
  }
  if [type] == "elk2" {
      if "_jsonparsefailure" not in [tags] {
          elasticsearch {
              action => "index"          #The operation on ES
              hosts  => "localhost:9200"   #ElasticSearch host, can be array.
              index  => "elk2-%{+YYYY.MM.dd}"         #The index to write data to.
              codec  => "json"
          }
      }
  }
}

4、启动项目 (配置logback.xml)

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <conversionRule conversionWord="mesWithStack" converterClass="com.example.elk.converter.StackTraceMessageConverter" />
    <conversionRule conversionWord="MDCMes" converterClass="com.example.elk.converter.MDCToJsonConverter" />

    <springProperty scope="context" name="springAppName" source="spring.application.name" />
    <appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <springProfile name="local">
            <!-- 负载均衡-->
            <destination>localhost:9999</destination><!--logstash机器ip和端口-->
            <destination>localhost:9998</destination><!--logstash机器ip和端口-->
            <destination>localhost:9997</destination><!--logstash机器ip和端口-->
            <connectionStrategy>
                <roundRobin>
                    <connectionTTL>5 minutes</connectionTTL>
                </roundRobin>
            </connectionStrategy>
        </springProfile>
        <encoder charset="utf-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "severity": "%level",
                        "service": "${springAppName:-}",
                        "ip": "%X{X-B3-ip:-}",
                        "trace": "%X{X-B3-TraceId:-}",
                        "span": "%X{X-B3-SpanId:-}",
                        "exportable": "%X{X-Span-Export:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "enhancemessage": "%MDCMes",
                        "message":"%mesWithStack"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="STASH"/>
    </root>
    <logger name="org.springframework" level="INFO"/>
    <logger name="com.example.elk" level="DEBUG"/>
</configuration>

5、pom配置

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

logback各种convert是配置在PatternLayout这个类的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值