ELK(elasticsearch、logstash、kibana)环境搭建

1.使用docker搭建elasticsearch服务器

(如果没有docker环境也可以直接到官网下载window版本的Download Elasticsearch | Elastic

使用powershell输入以下命令,会自动下载elasticsearch 8.10.2版本

1)启动elasticsearch 容器(默认端口是9200)

docker run --name elasticsearch --restart=always --ip 192.168.2.12 -e "discovery.type=single-node" -d elasticsearch:8.10.2 

2)修改elasticsearch配置文件

//先进入elasticsearch容器内部

docker exec -it elasticsearch /bin/bash

//修改配置文件(允许远程访问、允许所有外部请求访问,即解决了跨域问题)
tee >> /usr/share/elasticsearch/config/elasticsearch.yml <<- 'EOF'
> http.cors.enabled: true
> http.cors.allow-origin: "*"
> EOF

//退出容器
exit

//重启elasticsearch容器
docker restart elasticsearch 

2.搭建 Kibana服务器(基于Elasticsearch的)

//启动kibana容器
docker run --name kibana --restart=always -p 5601:5601 --ip 192.168.2.13 -e ELASTICSEARCH_URL=http://192.168.2.12:9200 -d kibana:7.9.3

 启动完成后可以在界面访问http://本机ip地址:5601

3.安装logstash

1) 编写配置文件

input {

    tcp {
        port => 5044
        #输入为json数据
        codec => json_lines
        
    }
}
filter {
    ruby {
        code =>"event.set('timestamp',event.get('@timestamp').time.localtime+ 8*60*60)"
    }
    ruby {
        code => "event.set('@timestamp',event.get('timestamp'))"
    }
    mutate {
        remove_fiels => ["timestamp"]
    }
}
output{
    stdout {
        codec => rubydebug
    }
    elasticsearch {
    
        hosts => ["192.168.2.12:9200"]
        index => "logstash - %{[server_name]}-%{+YYY.MM.dd}"
    }
}

2)启动logstash

docker run --name logstash --ip 192.168.3.112 --restart=always -v G:\test\logstash.conf:/usr/share/logstash/pipeline/logstash.conf -d logstash:7.17.5

3) 编写spring boot

pom.xml

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

logback-spring.xml 

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout  class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}.%M.%L) - %highlight(%msg)  %line - %msg%n</pattern>
        </layout>
    </appender>
    <appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!-- logstash服务的地址 -->
        <destination>192.168.2.3:8100</destination>
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <!-- 打印行号、方法名 ,官方不建议在生产环境开启这个配置,默认是false。有网友测试,开启后是未开启的大约360倍的世界(业务量少的时候)-->
            <includeCallerData>false</includeCallerData>
            <timeZone>UTC</timeZone>
            <!-- 添加自定义属性名 -->
            <customFields>{"server_name":"lyy-server"}</customFields>
        </encoder>
        <!-- 过期时间 ,默认没有-->
        <!-- <writeTimeout>20 seconds</writeTimeout> -->
    </appender>
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="STASH" />
    </root>
</configuration>

启动程序后 :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值