当前位置 博文首页 > 文章内容

    ELK6.3.2搭建配置文件篇(filebeat版)

    作者: 栏目:未分类 时间:2020-11-16 9:01:43

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    https://zhuanlan.zhihu.com/p/161007340

     

    应用下载地址

    Elasricsearch版本:6.3.2 ,下载地址:

    Kibana版本:6.3.2 ,下载地址:

    FileBeat版本6.3.2,下载地址:

     

    FileBeat比logstash更轻量级,这里以filebeat收集Java应用日志为例;

    ★★★★★:es6.3.2需要分配用户,不能使用root启动,同时,安装过程中会遇到各种各样的问题,一点点解决吧;

     

    启动方式:

    1、Elasticsearch
    ./bin/elasticsearch -d   # 后台启动
    
    2、kibana
    nohup ./bin/kibana &   # 后台启动
    关闭kibana使用 netstat -tunlp|grep 5601   然后kill pid
    如:tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      13082/./bin/../node
    pid为 13082
    
    3、filebeat
    nohup ./filebeat -e -c filebeat-01.yml -d "Publish" & > nohup.out  # 后台启动
    关闭  kill pid

     

    ElasticSearch配置文件elasticsearch.yml

    cluster.name: ard-es # 集群中的名称
    node.name: master-node # 该节点名称
    node.master: true  # 意思是该节点为主节点
    node.data: false  # 表示这是数据节点 
    discovery.zen.ping.unicast.hosts: ["192.168.1.1", "192.168.1.2", "192.168.1.3"] # 配置自动发现
    http.cors.enabled: true # sticsearch中启用CORS
    http.cors.allow-origin: "*"  
    xpack.security.enabled: True
    xpack.ml.enabled: true
    network.host: 0.0.0.0
    http.port: 9200
    
    # 在这里我做了三台集群,另外两台的配置文件
    node.name: node-data-01/02
    node.master: false  # 意思是该节点为主节点
    node.data: true  # 表示这是数据节点 
    
    # 一主两从,主节点不作为数据节点

     

    Kibana配置文件kibana.yml

    server.port: 5601  # 配置kibana的端口
    server.host: "0.0.0.0"
    elasticsearch.url: "http://127.0.0.1:9200"  # 配置es服务器的ip,如果是集群则配置该集群中主节点的ip
    logging.dest: /data/ELK6.3.0/kibana-6.3.2-linux-x86_64/logs/kibana.log  # 配置kibana的日志文件路径,不然默认是messages里记录日志

     

    filebeat配置文件filebeat.yml

    #最头疼的就是filebeat的配置文件了,也遇到了各种各样的问题,配置文件如下:
    # 是否开启自定义字段作为顶级字段存储到文档中,如果自定义字段名称与其他字段名称冲突,则自定义字段将覆盖其他字段
    fields_under_root: true
    # 自定义字段(我这里是定义的当前应用的ip地址,用于应用多节点部署时,明确日志输入来源,尝试过修改beat.name和hostname,均以失败告终)
    fields:
      applyIp: 192.168.1.2
    
    filebeat.inputs:
    - type: log  # 日志输入类型,文件日志以log标记
      paths:
        - /htdocs/my-base/logs/my-base.log  # 日志在服务器的绝对位置
      fields:
        type: my-base  # 相当于标签的意思,在这里给打一个标签,在输入到ES的时候可以用来区分输送的ES索引
      tail_files: true   # 配置为true时,filebeat将从新文件的最后位置开始读取
      #指定正则表达式去匹配指定的行,例如multiline.pattern: '^\[',意思是去匹配以[开头的行,下面的正则是 以日期开头的、以空格开头的、以Caused by开头的、以INFO开头的等.....
      #下面这正则有很多问题,关于多行日志这一块,参考了很多的文章,目前项目中的那种打印的json串多行的,filebeat还没解决
      multiline.pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}|^[[:space:]]|^Caused by:|^INFO|^at'
      #定义pattern是否被否认,默认值是false,若为true,意思是对上面的匹配进行反转(就是实际去匹配不以pattern的行)
      multiline.negate: false
      # 将上面的匹配条件的(或者是不匹配的,取决上面是true还是false) 结果,是放到行首 还是放到行位  after和before
      multiline.match: after
    
    - type: log
      paths:
        - /htdocs/my-gateway/logs/my-gateway.log
      fields:
        type: my-gateway
      tail_files: true
      multiline.pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}|^[[:space:]]|^Caused by:|^INFO|^at'
      multiline.negate: false
      multiline.match: after
      
    #-------------------------- Elasticsearchbled output ------------------------------  
    output.elasticsearch:
      hosts: ["192.168.1.1:9200"]    # 指定es服务器的ip端口
      indices:
        - index: "my-gateway"   # es索引
          when.equals:
            fields.type: "my-gateway" # filebeat中的标签 区分索引
        - index: "my-base"
          when.equals:
            fields.type: "my-base"
            
    #============================= Filebeat modules ===============================
    filebeat.config.modules:
      path: ${path.config}/modules.d/*.yml
      reload.enabled: false
    #==================== Elasticsearch template setting ==========================
    setup.template.settings:
      index.number_of_shards: 5
      index.number_of_replicas: 1
      index.codec: best_compression

     

    在filebeat的配置文件中,遇到的问题比较多,并且都还没有解决,不过不影响ELK的使用;

    1、多行日志问题

    异常日志目前已经解决完毕,不过json串输出的多行日志这种还是没有得到解决

    2、记录日志所属服务器

    在文档中说的修改beat.name和beat.hostname,尝试了各种写法,目前还是没有得到解决;最后是使用的自定义字段来解决的这个问题;

     

    看看最终的成效

     

    发布于 07-16