ELK日志分析系统搭建以及springboot日志发送到ELK中

前言

安装之前服务器必须装了Java环境,我们这里安装的是7.7.0版本,而且7.7.0版本还必须要求jdk11以上。

安装Elasticsearch

#下载elasticsearch安装包
wget https://mirrors.huaweicloud.com/elasticsearch/7.7.0/elasticsearch-7.7.0-linux-x86_64.tar.gz
#解压
tar -xvf elasticsearch-7.7.0-linux-x86_64.tar.gz 

为elasticsearch创建专属用户(elasticsearch要求不能以root账户来运行)

#这里创建的用户名为suyu,可以随意
useradd suyu
#为新创建的用户设置密码
passwd suyu
#将安装权限归新用户所有
chown -R suyu:suyu /usr/local/elk/elasticsearch-7.7.0
#为elasticsearch运行准备修改系统配置文件
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
#查看配置后的结果
sysctl -p
echo 'suyu hard nofile 65536' >> /etc/security/limits.conf
echo 'suyu soft nofile 65536' >> /etc/security/limits.conf

修改配置文件

#进入elasticsearch文件目录
cd elasticsearch-7.7.0/config
vi elasticsearch.yml
#打开这些配置的注释 ,然后填上对应的值
network.host: 你自己的服务器ip
http.port: 9200
discovery.seed_hosts: ["ip地址"]
#打开这个配置项
node-name
#node-1这个值是node-name配置的值,默认就是node-1
cluster.initial_master_nodes: ["node-1"]

启动elasticsearch

#切换角色
[root@localhost elasticsearch-7.7.0]# su suyu
#启动
[suyu@localhost elasticsearch-7.7.0]$ bin/elasticsearch -d

启动成功后,等一会估计要个一分钟左右,然后地址栏输入地址,出现这个界面表示elasticsearch安装成功啦

ELK日志分析系统搭建以及springboot日志发送到ELK中_第1张图片

安装过程中可能会遇到的问题,解决办法(如果按照上面的步骤来安装一般都不会出现这个问题)
问题1
ELK日志分析系统搭建以及springboot日志发送到ELK中_第2张图片
问题2:这三个问题需要修改系统配置和elasticsearch配置,具体看上面
vm.max_map_count太小

#查看配置后的结果(问题1解决)
echo 'suyu hard nofile 65536' >> /etc/security/limits.conf
echo 'suyu soft nofile 65536' >> /etc/security/limits.conf
#为elasticsearch运行准备修改系统配置文件(问题2解决)
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
sysctl -p
#进入elasticsearch文件目录(问题3解决)
cd elasticsearch-7.7.0/config
vi elasticsearch.yml
#打开这些配置的注释 ,然后填上对应的值
network.host: 你自己的服务器ip
http.port: 9200
discovery.seed_hosts: ["ip地址"]
#node-1这个值是node-name配置的值,默认就是node-1
cluster.initial_master_nodes: ["node-1"]

安装Logstash

#下载logstash安装包
wget https://mirrors.huaweicloud.com/logstash/7.7.0/logstash-7.7.0.tar.gz
#解压logstash
tar -xvf logstash-7.7.0.tar.gz 
#进入logstash配置文件夹下
cd logstash-7.7.0/config/
#文件中加入下面这段内
vim logstash.conf
##################################################
input {
  tcp {
    mode => "server"
    host => "192.168.1.251"    					#安装logstash的ip
    port => 4560                 				#设置logstash的端口
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => ["192.168.1.251:9200"]    			#es的ip和端口(本次logstash和es是同一个服务器)
    index => "java-logstash-%{+YYYY.MM.dd}"     #es的index名称
    #user => "elastic"							#es的账号
    #password => "changeme"						#es的密码
  }
}
##################################################
#进入logstash-7.7.0/目录下启动
bin/logstash -f config/logstash.conf

安装Kibana

#切换到root角色下载kibana包
wget https://mirrors.huaweicloud.com/kibana/7.7.0/kibana-7.7.0-linux-x86_64.tar.gz
#解压
tar -xvf kibana-7.7.0-linux-x86_64.tar.gz 
#让这个文件夹可写
chmod 777 kibana-7.7.0-linux-x86_64
#将目录权限归我们创建新用户所有,这里也不能以root角色启动
chown -R suyu:suyu /usr/local/elk/kibana-7.7.0-linux-x86_64
#进入kibana目录
cd kibana-7.7.0-linux-x86_64
#修改配置文件
vim ./config/kibana.yml

#将这行配置打开,将值配置为elasticsearch服务器的ip地址
elasticsearch.hosts: ["http://192.168.1.251:9200"]
#打开这行配置,默认为localhost,改为0.0.0.0不改外网访问不了
server.host: "0.0.0.0"
#进入bin目录启动
cd bin/
#切换角色启动,这里也不准用root启动
su suyu
#以后台形式启动 默认占用端口2601
./kibana &

到此我们ELK日志分析系统已经搭建完成了,我们登录到kibana可视化界面 http://192.168.1.251:5601/

ELK日志分析系统搭建以及springboot日志发送到ELK中_第3张图片

SpringBoot集成ELK系统

然后启动springboot项目,在pom文件中依赖logstash插件,将日志文件发送到logstash中,logstash会将日志文件传到elasticsearch中,kibana拉取elasticsearch中的日志,我们就能看到日志啦

  <dependency>
      <groupId>net.logstash.logbackgroupId>
      <artifactId>logstash-logback-encoderartifactId>
      <version>5.3version>
  dependency>

在resourcet目录中添加日志的配置文件logback-spring.xml,修改destination为你自己的logstash的ip和端口就行



<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <springProperty scope="context" name="springAppName"
                    source="spring.application.name"/>
    <springProperty scope="context" name="serverPort"
                    source="server.port"/>

    
    <property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}"/>

    
    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

    
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFOlevel>
        filter>
        
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}pattern>
            <charset>utf8charset>
        encoder>
    appender>

    
    <appender name="logstash"
              class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>192.168.1.251:4560destination>
        
        <encoder
                class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTCtimeZone>
                timestamp>
                <pattern>
                    <pattern>
                        {
                        "severity": "%level",
                        "service": "${springAppName:-}",
                        "port": "${serverPort:-}",
                        "trace": "%X{X-B3-TraceId:-}",
                        "span": "%X{X-B3-SpanId:-}",
                        "exportable": "%X{X-Span-Export:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    pattern>
                pattern>
            providers>
        encoder>
    appender>

    
    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="logstash"/>
    root>
configuration>

启动,打一些日志出来。
ELK日志分析系统搭建以及springboot日志发送到ELK中_第4张图片
我们去kibana配置索引信息,创建搜索规则就能将日志显示到Discover

ELK日志分析系统搭建以及springboot日志发送到ELK中_第5张图片
创建索引信息,这里的索引是我们当初配置logstash配置文件时候写好的
ELK日志分析系统搭建以及springboot日志发送到ELK中_第6张图片
点击创建按照图示一直往下走
ELK日志分析系统搭建以及springboot日志发送到ELK中_第7张图片

ELK日志分析系统搭建以及springboot日志发送到ELK中_第8张图片
ELK日志分析系统搭建以及springboot日志发送到ELK中_第9张图片
ELK日志分析系统搭建以及springboot日志发送到ELK中_第10张图片

总结

到此我们ELK日志分析系统就已经搭建完成了,springboot日志也发到了日志系统中,我也是刚学这个,很多东西不懂,有些地方解释的不到位的,大家去百度找找其他的资料。这里我没有让程序后台运行,具体如何操作大家百度一下吧

参考地址:

https://blog.csdn.net/bbwangj/article/details/80600698
https://discuss.elastic.co/t/kibana-unable-to-retrieve-version-information-from-elasticsearch-nodes/230778
https://blog.csdn.net/asdfghjkl0606/article/details/107571949

你可能感兴趣的:(java,elk)