elk日志搭建

2020-04-07  本文已影响0人  昵称违规

项目结构 springboot + logback  + filebeat + elk

1.安装es,最好集群,搭建参考es集群搭建,傻瓜式安装,当然单机也是可以的,es国外镜像很慢建议华为云或其他的国内镜像

2.安装logstash,同样华为云下载,版本尽量选es一致的

cd logstash-7.3.0/config/

vim logstash-sample.conf

内容:input {

  beats {

    port => 5044

  }

  tcp {

    port => 4569

    codec => "json"

  }

}

output {

  if[appname] != "" {

    elasticsearch {

      hosts => ["http://192.168.0.146:9200"]

      index => "%{appname}-%{+YYYY.MM.dd}"

    }

  } else {

    elasticsearch {

      hosts => ["http://192.168.0.146:9200"]

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

    }

  }

}

  port => 5044 logstash 端口   port => 4569tcp端口  下面是es地址和index名称  appname是外部传进来的后面讲解

启动logstash  

./bin/logstash -f config/logstash-sample.conf   当然文件名是可以改的

启动成功后会有日志打印

3.安装filebeat

同理也尽量安装版本一致 华为云下载

解压,修改配置 ,启动就是这么简单,修改filebeat.yml

filebeat.inputs:

- type: log

  enabled: true

  paths:

    - /var/logs/info.log

filebeat.inputs:

- type: log

  enabled: true

  paths:

    - /var/logs/info-info.log

output.logstash:

  hosts: ["10.10.10.10:5044"]

filebeat可以将多个路径下的文件收集到logstash,多配几个inputs就是   hosts 就是logstash地址

启动:

sudo chown root filebeat.yml

sudo ./filebeat -e >filebeat.log 2>&1 &

4.kibana安装

同理尽量选同版本,不要隔太远

下载解压后 修改kibana.yml 配置

# 端口

server.port: 5601

# 指定本机ip让外部能访问

server.host: "0.0.0.0"

# 请求数据指向的elasticsearch服务器

elasticsearch.url: "http://10.10.10.10:9200"

就是这么简单,复杂的没去研究

当然es可能你配了密码

# Elasticsearch用户名 这里其实就是我在服务器启动Elasticsearch的用户名

elasticsearch.username: "es" 

 # Elasticsearch鉴权密码 这里其实就是我在服务器启动Elasticsearch的密码

elasticsearch.password: "es"

启动nohup ./kibana &  或者 sh kibana &

这样所有软件就安装完成了

ps:在kibana创建

时,浏览器可能会报403权限问题导致创建不成功

解决方案:

  扩大存储空间或者在kibana中-DevTool中执行代码即可。

 PUT _settings

 {

   "index": {

     "blocks": {

       "read_only_allow_delete": "false"

     }

   }

 }

如果需要通过nginx配置访问kibana,又不用二级域名的话要设置kibana的basePath;

在kibana.yml添加server.basePath: "/ki" 

然后在nginx配置

location ^~/ki/ {

            proxy_set_header Host xxx.xxx.cn;

            proxy_pass http://10.10.10.10:5601/;

    rewrite ^/ki/(.*)$ /$1 break;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_http_version 1.1;

        }

5.在你的springboot项目里用logback配置,log4j也可以,没去试

引入maven依赖

<dependency>

  <groupId>net.logstash.logback</groupId>

  <artifactId>logstash-logback-encoder</artifactId>

  <version>5.2</version>

</dependency>

logback.xml配置

<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">

    <param name="Encoding" value="UTF-8"/>

    <remoteHost>10.10.10.10</remoteHost>

    <port>4569</port>

    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >

        <customFields>{"appname":"park-admin"}</customFields>

    </encoder>

</appender>

<root level="info">

    <appender-ref ref="logstash" />

</root>

这里就用到了上面logstash的配置 首先地址 ,端口注意是logstash tcp端口,appname就是传到logstash配置文件的名称

当然日志里也可自定义es的参数那些,没多去研究了

这样整个日志框架就完成了,打开kibana或者es的head就可以查看日志了

这是我的随笔,只是记录平时的笔记,仅供参考,有错的地方望指出。

上一篇下一篇

猜你喜欢

热点阅读