elk及springboot项目日志接入elk

ELK部署和配置:

1.elasticsearch:

解压缩

 

配置config/elasticsearch.yml:

配置network.host地址为0.0.0.0

 

启动:

执行elasticsearch.bat;

 

2.kibana:

解压缩,修改绑定server.host为0.0.0.0,以方便配置通用,主机IP地址修改过后,无需修改该配置文件都可以访问,同时也可以通过127.0.0.1访问。

 

配置config/ kibana.yml:

配置elasticsearch信息

 

启动:

kibana.bat

 

对于elasticsearch中自定义的索引,需要通过kibana中的management--->Kibana index patterns,创建index pattern,在创建时,系统会自动提示能匹配到的elasticserch的索引。创建完之后,就可以在KibanaDiscover中根据该索引匹配查询elasticsearch的索引项了(Logs页面无法查询自定义索引内容)

 

3.filebeat

启用filebeat支持的模块:

filebeat.exe modules enable mysql, elasticsearch

 

配置模块的日志路径:

elasticsearchaudit日志,则在module\elasticsearch\audit目录下的manifest.yml中配置

 

重建索引:

重建索引时, 需要filebeat直连elasticsearchkibana才行,所以需要如下启动参数`-E output.logstash.enabled=false` `-E output.elasticsearch.hosts=['192.168.1.131:9200']`  -E setup.kibana.host=192.168.1.131:5601

如:

filebeat.exe setup -e  -E output.logstash.enabled=false  -E output.elasticsearch.hosts=['192.168.1.131:9200']   -E setup.kibana.host=192.168.1.131:5601

 

 

yml中已经配置了elasticsearch,kibana,则直接filebeat.exe setup -e即可

 

启动:

filebeat.exe -c config/filebeat.yml -e

 

安装为服务:

通过powershell,执行install-service-*-server.ps1即可,如果报安全策略的错误时,执行set-ExecutionPolicy RemoteSigned即可。

 

4.springboot应用程序通过logstash存储日志到elasticsearch

logback-spring.xml中配置logstashappender,如下:


     192.168.1.131:8888
     
       
   
           
               
                   UTC
               
          
      
       




   

   

   

 

 

logstash配置,支持tcp的日志收集,输出到elasticsearch,并根据日志的applicationName值,创建applicationName值的自定义索引,便于检索

input {

       beats {

       port => 5044         #通过5044端口接收filebeat等beats应用转发的日志信息

       type => "beats_log"  #自定义type,以方便output时根据该type做区分输出,以不同的索引名模板创建索引

       }

       tcp {

       port => 8888    #通过8888端口接收logback发送过来的日志信息

       codec => json_lines

       mode => "server"

       type => "application_direct_log" #自定义type,以方便output时根据该type做区分输出,以不同的索引名模板创建索引

       }

}



output {

       if [type] == "application_direct_log" {      #写入application_direct_log日志到 es

         elasticsearch {

              hosts => ["192.168.1.131:9200"]

              index => "%{[applicationName]}-%{+YYYY.MM.dd}"

             

              #user => "elastic"

              #password => "changeme"

         }

       }

       if [type] == "beats_log" {      #写入beats_log日志到 es

         elasticsearch {

              hosts => ["192.168.1.131:9200"]

              index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"

             

              #user => "elastic"

              #password => "changeme"

         }

       }

       stdout { codec => rubydebug }  #若不需要在控制台中输出,此行可以删除

}

 

logstash控制台输出、elasticsearch存储时间,在logstashelasticsearch后台会统一使用UTC时区,所以会造成时间需要+8的现象,通过kibana显示时,kibana会根据本地时区自动调整时间的值。

 

elasticsearch中索引状态为yellow时,一般是由于只有一台elasticsearch机器,但是number_of_replicas为1所致

number_of_replicas 是数据备份数,如果只有一台机器,设置为0,索引创建时,默认值为1.通过如下命令修改:

curl -X PUT "192.168.1.131:9200/filebeat*/_settings" -H 'Content-Type: application/json' -d'{"index" : {"number_of_replicas" : 0}}'

你可能感兴趣的:(elk)