在Logstash中配置多个管道

目录

介绍

背景

为(DB、API和WEB)服务器配置filebeat.yml

创建管道配置文件

dblogpipeline.conf

apilogpipeline.conf

weblogpipeline.conf

Pipeline.yml


介绍

考虑您在不同的2台服务器上安装了多个filebeats,您希望为每个filebeat创建单独的管道,并希望在elasticsearch或任何文件上输出。

背景

因此,让我们来看一个示例,其中有多个服务器,例如:

  1. 数据库服务器
  2. API服务器
  3. Webserver
  4. Elasticsearch服务器(此服务器将具有Elasticsearch,我将其视为接收器,用于日志\数据和logstash的可视表示的kibana

现在,我们希望所有日志都在Elasticsearch中,但要进行一些过滤和数据处理——因此,让我们通过下图了解过程。

现在看上图,在三台服务器上安装了filebeats,它们收集日志数据,一旦配置完成,logdata将发送到elasticsearch。现在的问题是问题出在哪里?

让我们了解示例logstash输入的问题:

input {
    beats {
        p => 5044
    }
}

因此,上面的代码表明我们可以有多个源,但是对于beats,我们只有一个,所以我们将如何划分管道?现在让我们考虑Beats

为(DBAPIWEB)服务器配置filebeat.yml

在记事本中打开filebeats.yml文件,并将所有日志的服务器名称配置为logstash

 

filebeat.inputs:
- type: log
  fields:
    source: 'DB Server Name'
  fields_under_root: true

 

 

filebeat.inputs:
- type: log
  fields:
    source: 'API Server Name'
  fields_under_root: true

 

filebeat.inputs:
- type: log
  fields:
    source: 'WEB Server Name'
  fields_under_root: true</code>

现在我们完成了filebeats更改,让我们继续创建logstash管道conf文件。

创建管道配置文件

我们可以通过多种方式在Logstash中配置多个Piepline,一种方法是在Pipeline.yml文件中设置所有内容,然后运行Logstash,所有输入和输出配置都将在同一文件中,如以下代码所示,但这不是理想的:

pipeline.id: dblog-process
config.string: input { pipeline { address => dblog } }

第二种方法是为beat创建单独的conf,在创建文件之前,让我们在config文件夹内创建一个文件夹名称管道

  1. dblogpipeline.conf
  2. apilogpipeline.conf
  3. weblogpipeline.conf

现在,让我们将代码放入conf文件中。

dblogpipeline.conf

input { 
    pipeline { 
        address => dblog 
    } 
}
output {
    file {
        path => ["C:/Logs/dblog_%{+yyyy_MM_dd}.log"]
    }
}

apilogpipeline.conf

input { 
    pipeline { 
        address => apilog 
    } 
}
output {
    file {
        path => ["C:/Logs/apilog_%{+yyyy_MM_dd}.log"]
    }
}

weblogpipeline.conf

input { 
    pipeline { 
        address => weblog 
    } 
}
output {
    file {
        path => ["C:/Logs/weblog_%{+yyyy_MM_dd}.log"]
    }
}

现在我们的conf文件已经准备好,只剩下pipeline.yml文件配置了。

Pipeline.yml

- pipeline.id: beats-server
  config.string: |
    input { beats { port => 5044 } }
    output {
        if [source] == 'dbservername' {
          pipeline { send_to => dblog }
        } else if [source] == 'apiservername' {
          pipeline { send_to => apilog }
        } else if [source] == 'webservername' { 
          pipeline { send_to => weblog } 
        }
    }

- pipeline.id: dblog-processing
  path.config: "/Logstash/config/pipelines/dblogpipeline.conf"

- pipeline.id: apilog-processing 
  path.config: "/Logstash/config/pipelines/apilogpipeline.conf"

- pipeline.id: weblog-processing
  path.config: "/Logstash/config/pipelines/weblogpipeline.conf"

然后运行logstash:)

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值