springboot服务集成elk日志

04
五月
2021

elk:elasticsearch,logstash,kibana的统称。

elasticsearch:官网介绍是一个分布式,restful风格的实时开源搜索和数据分析引擎。其实elasticsearch还提供了

                        . 分布式的实时文件存储,每个字段都能被索引且被搜索

                        . 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

logstash:是开源的服务器端数据处理管道,能够从多个数据源采集数据,转换数据,并将数据发送到你喜欢的存储库中,例如(elasticserach)

kibana:是一个开源的用户界面,能让你对elasticserach数据进行可视化,更直观的展示,可使用它对日志进行高效的搜索、可视化、分析等各种操作。

环境:centos 7.0,jdk1.8

1.安装elasticsearch

1.下载安装包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz

2.解压

tar -xvf elasticsearch-6.5.4.tar.gz -C /usr/local/elasticsearch

3.配置yml

vi elasticsearch.yml

末尾添加内容

http.port: 9200 #设置端口,默认是9200
network.host: 192.168.xx.xxx #设置主机(安装的机器ip) 

4.启动

注意:执行启动命令时,非root用户。

若报 启动异常 Exception in thread "main" java.nio.file.AccessDeniedException:,需设置 chown -R 用户名:用户名  文件(目录)名

cd ..

nohup bin/elasticsearch &

启动成功后可以 查看进程号或者页面访问 http://192.168.xx.xx:9200/?pretty

2.安装logstash

1.下载logstash安装包:

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.1.tar.gz

2.解压到相应目录

例如 tar -xvf logstash-5.6.1.tar.gz -C /usr/local/logstash

3.配置yml

cd /usr/local/logstash/logstash-5.6.1/config

vi spring_servcie.yml #新建yml,编辑内容

input {
        tcp {
                mode => "server"
                host => "0.0.0.0"  # 允许任意主机发送日志
                type => "elk1"      # 设定type以区分每个输入源
                port => 4560       # logstash接收数据的端口
                codec => json_lines    # 数据格式
        }
}

output {
        elasticsearch {
                        action => "index"          # 输出时创建映射
                        hosts  => "192.168.xx.xxx:9200"   # ElasticSearch 的地址和端口
                        index  => "elk1"         # 指定索引名
                        codec  => "json"
        }
}

4.启动

进入到安装包目录下执行

bin/logstash -f config/spring_service.conf

启动需要一段时间,耐心等待下。启动成功后 ps -ef|grep logstash 可以查看进程号

3.安装kibana

1. 下载安装包

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.4-linux-x86_64.tar.gz

注意:elasticsearch版本和kibana版本保持一致

2. 解压

tar -xvf kibana-6.5.4-linux-x86_64.tar.gz -C /usr/local/kibana

3.配置yml

vi kibana.yml

添加内容

server.port: 5601 #设置端口
server.host: "192.168.xx.xxx" #设置主机名
elasticsearch.url: "http://192.168.xx.xxx:9201"  #设置elasticsearch地址

4.启动

cd ..

nohup bin/kibana &

页面访问查看

http://192.168.xx.xxx:5601/login?next=%2Fapp%2Fkibana#?_g=()

4.创建springboot项目

1.创建maven项目

2.pom引入logstash依赖, lombok依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency>
<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>5.1</version>
</dependency>

3.resource目录下新建 logback-spring.xml

<configuration scan="true" scanPeriod="60 seconds">
    <contextName>contextName</contextName>
    <property name="log_dir" value="C:/project/logs"/>
    <appender name="stashLog" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!--配置logstash的ip和端口,在logstash配置文件中-->
        <destination>192.168.xx.xxx:4560</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <root level="info" >
        <appender-ref ref="stashLog" />
    </root>
</configuration>

4.新建controller,打印info日志

5.登录kibana1配置index(logstash中配置的index-elk1)

左侧菜单 Management --- Index Patterns --- Create index pattern 

6.启动springboot工程,访问接口后看控制台打印信息,然后再kibana上 ekl1索引上看打印信息

 

 

 

     

 

 

TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员