• ELK+Kafka部署指南 (二)


    四、安装logstash

    安装启动

    步骤1、解压安装包、修改配置####

    解压安装包:tar -zxvf logstash-7.0.0.tar.gz

    进入到解压后的目录:cd logstash-7.0.0

    进入到config文件夹:cd config

    由于logstash的配置文件在启动的时候指定,编辑创建配置文件:vi springboot_kafka.conf

    开发环境修改后的配置如下:

    springboot_kafka.conf

    input {
    kafka{
    bootstrap_servers => ["172.18.5.47:9092"]
    #消费者分组
    group_id => "logstash"
    #数组类型,可配置多个topic
    topics => ["kafka-log"]
    #所有插件通用属性,尤其在input里面配置多个数据源时很有用
    type => "kafka"
    consumer_threads => 5
    decorate_events => false
    codec => "json"
    }
    }
    output {
    elasticsearch {
    # ES地址
    hosts => ["http://172.18.5.47:9200"]
    # document_type => "applog"
    # template_name => "app-biz-*"
    # template_overwrite => true
    # manage_template => true
    # 指定索引名字,logType为log4j2.xml指定的应用名称
    index => "wojiacloud-%{logType}-%{+YYYY.MM.dd}"
    codec => json
    }
    # stdout {}
    }
    

    步骤2、启动logstash####

    启动logstash:bin/logstash -f config/springboot_kafka.conf 1>/dev/null 2>&1 &

    出现下图中日志则说明启动成功了

    logstash配置多入多出并互相隔离,主要需要解决如下两个问题:####

    1、如何加载多个配置文件?
    普通启动方式:nohup bin/logstash -f /etc/logstash/conf.d/logstash.conf &

    多配置文件启动方式:nohup bin/logstash -f /etc/logstash/conf.d &

    注意:/etc/logstash/conf.d为目录,将加载该目录下所有配置文件;不要使用/etc/logstash/conf.d/*.conf

    2、问题:配置不当,各输入输出会存在交叉,如何隔离各输入输出?
    解决办法:利用type,对输入输出进行筛选,配置参考:

    logstash-47-demo.conf

    
    input {
    kafka{
    bootstrap_servers => ["172.18.5.47:9092"]
    #消费者分组
    group_id => "logstashDemo"
    #当Input有多个输入源的时候,需要配置client_id并且必须唯一
    client_id => "logstash-demo"
    #数组类型,可配置多个topic
    topics => ["demo-log"]
    #从最新的偏移量开始消费
    auto_offset_reset => "latest"
    #所有插件通用属性,尤其在input里面配置多个数据源时很有用
    type => "demo"
    consumer_threads => 2
    decorate_events => false
    codec => "json"
    }
    }
    output {
    if [type] == "demo" {
    elasticsearch {
    # ES地址
    hosts => ["http://172.18.5.47:9200"]
    # document_type => "applog" 
    # template_name => "app-biz-*"
    # template_overwrite => true
    # manage_template => true
    
    # 指定索引名字,logType为log4j2.xml指定的应用名称
    index => "demo-log-%{logType}"
    #
    codec => json
    }
    }
    }
    

    logstash-47-ownercloud.conf

    input {
    kafka{
    bootstrap_servers => ["172.18.5.47:9092"]
    #消费者分组
    group_id => "logstash"
    #当Input有多个输入源的时候,需要配置client_id并且必须唯一
    client_id => "logstash-ownercloud"
    #数组类型,可配置多个topic
    topics => ["kafka-log"]
    #从最新的偏移量开始消费
    auto_offset_reset => "latest"
    #所有插件通用属性,尤其在input里面配置多个数据源时很有用
    type => "ownercloud"
    consumer_threads => 2
    decorate_events => false
    codec => "json"
    }
    }
    output {
    # 判断进行隔离
    if [type] == "ownercloud" {
    elasticsearch {
    # ES地址
    hosts => ["http://172.18.5.47:9200"]
    # document_type => "applog" 
    # template_name => "app-biz-*"
    # template_overwrite => true
    # manage_template => true
    
    # 指定索引名字,logType为log4j2.xml指定的应用名称
    index => "wojiacloud-%{logType}"
    #
    codec => json
    }
    }
    }
    
  • 相关阅读:
    MySQL 待解决死锁
    MySQL5.7 服务 crash 后无法启动
    MySQL Group Replication
    MySQL容量规划之tcpcopy应用之道
    Python模块安装路径初探
    MySQL5.7多源复制实践
    Mysql中两个select语句的连接
    ThinkPhp sql语句执行方法
    TP框架如何绑定参数。目的进行ajax验证
    jquery 复合事件 toggle()方法的使用
  • 原文地址:https://www.cnblogs.com/gloria-liu/p/12201965.html
Copyright © 2020-2023  润新知