美文网首页
elk日志搭建

elk日志搭建

作者: 昵称违规 | 来源:发表于2020-04-07 16:47 被阅读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就可以查看日志了

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

    相关文章

      网友评论

          本文标题:elk日志搭建

          本文链接:https://www.haomeiwen.com/subject/vcunphtx.html