• filebeat+logstash+elasticsearch+kibana多来源日志收集平台


    ELK使用 - 多个日志源filebeat配置详解

    Logstash依赖于JVM,在启动的时候大家也很容易就能发现它的启动速度很慢很慢,但logstash的好处是支持很多类型的插件,支持对数据做预处理。而filebeat很轻量,前身叫logstash-forward,是使用Golang开发的,所以不需要有java依赖,也很轻量,占用资源很小,但功能也很少,不支持对数据做预处理。因此一般都是将filebeat+logstash组合使用,在每个节点部署filbeat,然后将监控的日志推送到数据缓冲层或直接推送到logstash集群内,配合redis或kafka做数据缓冲层来使用。

    本篇就介绍如何将filebeat和logstash同时使用,并且介绍如何同时监控多个文件,将多个文件导出至不同的索引内。

    filebeat安装配置和logstash配置

    1、下载安装包,确保和logstash/elasticsearch使用统一版本

    下载地址:https://www.elastic.co/cn/downloads/past-releases#filebeat

    本文下载的为:filebeat-7.12.0-linux-x86_64.tar.gz

    将该压缩包上传至nginx虚拟机内,然后解压

    [root@localhost filebeat]# pwd
    /usr/local/filebeat
    [root@localhost filebeat]# ll
    -rw-r--r-- 1 root root 32831398 Jun  2 11:32 filebeat-7.12.0-linux-x86_64.tar.gz
    [root@localhost filebeat]#
    tar -xvf filebeat-7.12.0-linux-x86_64.tar.gz [root@localhost filebeat]# ll total 32064 drwxr-xr-x 7 root root 333 Jun 2 18:12 filebeat-7.12.0-linux-x86_64 -rw-r--r-- 1 root root 32831398 Jun 2 11:32 filebeat-7.12.0-linux-x86_64.tar.gz [root@localhost filebeat]#

    2、配置filebeat

    使用filebeat采集多个文件并通过logstash写入es内,为什么要使用一个配置文件监控多个文件? 因为filebeat 只能起一个进程。

    同时监控nginx的access日志和error日志,并且分别新增一个字段'log_source'(自定义的)来做区分,输出到logstash的5044端口,由logstash消费:

    [root@localhost filebeat]# cd filebeat-7.12.0-linux-x86_64/
    [root@localhost filebeat-7.12.0-linux-x86_64]# cat filebeat_test.yml
    filebeat.inputs:
    - type: log
      paths:
        - /server/nginx/logs/access.log
      fields:
        log_source: nginx-access
    
    - type: log
      paths:
        - /server/nginx/logs/error.log
      fields:
        log_source: nginx-error
    
    output.logstash:
      enabled: true
      hosts: ["10.10.10.1:5044"]
    [root@localhost filebeat-7.12.0-linux-x86_64]#

    3、logstash配置

    修改logstash配置,input的部分要与filbeat中的端口一致,filter的部分针对不同的日志内容做不同的预处理或解析(本文未处理),output中对不同的日志输出到不同的es的索引中。这里的log_source就是在上面的filebeat中新增的自定义字段:

    [root@skywalking logstash-7.12.0]# cat config/test.conf
    input{
            tcp {
                    mode => "server"
                    host => "0.0.0.0"
                    port => 9061
                    codec => json_lines
            }
    }
    input{
            beats {
                    host => "0.0.0.0"
                    port => 5044
                    client_inactivity_timeout => 36000
            }
    }
    output{
            if "nginx-access" in [fields][log_source] {
                elasticsearch{
                    hosts=>["10.10.10.1:9200"]
                    index => "nginx-access-88--%{+YYYY.MM.dd}"
                    }
            }
            if "nginx-error" in [fields][log_source] {
                elasticsearch{
                    hosts=>["10.10.10.1:9200"]
                    index => "nginx-error-88--%{+YYYY.MM.dd}"
                    }
            }
            else {
                elasticsearch{
                    hosts=>["10.10.10.1:9200"]
                    index => "springboot-%{project}-%{+YYYY.MM.dd}"
                    }
            stdout{codec => rubydebug}
            }
    }
    [root@skywalking logstash-7.12.0]#

    4、启动Filebeat和Logstash

    先启动logstash,不然的话filebeat会找不到logstash的5044端口:

    [root@skywalking logstash-7.12.0]# cat start.sh
    #!/bin/bash
    nohup /usr/local/skywalking/logstash-7.12.0/bin/logstash -f /usr/local/skywalking/logstash-7.12.0/config/test.conf &>/dev/null &
    [root@skywalking logstash-7.12.0]#
    [root@localhost filebeat-7.12.0-linux-x86_64]# cat startfilebeat.sh
    nohup /usr/local/filebeat/filebeat-7.12.0-linux-x86_64/filebeat -e -c /usr/local/filebeat/filebeat-7.12.0-linux-x86_64/filebeat_test.yml >> /usr/local/filebeat/filebeat-7.12.0-linux-x86_64/logs/startServer.log 2>&1 &
    [root@localhost filebeat-7.12.0-linux-x86_64]#

    如果想快速启动可以直接使用命令:

    启动logstash:
    bin/logstash -f config/test.conf
    
    启动filebeat:
    ./filebeat -e -c filebeat_test.yml
    

    5、验证数据

    在Kibana中可以看到两个索引已经建出来了并同时写入了不同的日志内容:

     

     

     

    参考:https://www.cnblogs.com/fawaikuangtu123/p/10360187.html

    参考:https://blog.csdn.net/wsdc0521/article/details/106308441

  • 相关阅读:
    poj2388-Who's in the Middle(排序)
    poj1543-Perfect Cubes(暴力)
    poj1664-放苹果(递归)
    快速幂
    poj2389-Bull Math(大整数乘法)
    HDU2608-0 or 1(数论+找规律)
    poj1131-Octal Fractions(进制转换)
    [noip2011 d1t2]选择客栈
    [周记]8.7~8.16
    [noip2012d1t2] 国王游戏
  • 原文地址:https://www.cnblogs.com/yizhipanghu/p/14844238.html
Copyright © 2020-2023  润新知