Beats:在 Beats 中实现动态 pipeline
转载自:https://blog.csdn.net/UbuntuTouch/article/details/107127197
在我们今天的练习中,我们将使用 Metricbeat 来同时监控 kibana 及 system 两个模块。在我们的 metricbeat 的安装目录中,我们打入如下的命令:
./metricbeat modules enable system kibana
上面的两个模块 system 及 kibana 都将被启动。我们可以使用如下的命令来检查模块的配置是否成功:
./metricbeat test modules system
./metricbeat test modules kibana
如果你看到正确的信息输出,则表明我们的模块的配置是成功的。否则我们需要修改相应的 yml 文件。
我们接下里进行 setup:
$ ./metricbeat setup
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
接下来,我们运行 metricbeat:
./metricbeat -e
我们在 Kibana 的 Discover 界面查看:

在上面,我们查询 system 时,我们发现 event.module 里含有 system 字样,它表明是一个 system 模块的指标。同时,我们也搜索一下 kibana:

我们可以看到 service.name 及 event.module 都含有 kibana。
现在我们的问题来了:我们想针对这两种不同的模块,分别使用不同的 pipeline 来处理信息,我们该怎么办?
比如,我们针对 kibana 运行如下的 pipeline:
PUT _ingest/pipeline/kibana_pipeline
{
"processors": [
{
"set": {
"field": "name",
"value": "kibana"
}
}
]
}
而对 system 模块运行如下的 pipeline:
PUT _ingest/pipeline/system_pipeline
{
"processors": [
{
"set": {
"field": "name",
"value": "system"
}
}
]
}
虽然,在实际中,我们并不一定要这么做,但是这样的目的是为了展示在不同的情况下运行不同的 pipeline。首先运行上面的两个 pipeline。
为了达到这个目的,我们来修改 metricbeat.yml 文件。首先我们停止 mertricbeat,并删除已有的 metricbeat 文档:
DELETE metricbeat-*
然后修改 metricbeat.yml 文件的 output.elasticsearch 部分:
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["localhost:9200"]
pipelines:
- pipeline: "system_pipeline"
when:
contains:
event.module: "system"
- pipeline: "kibana_pipeline"
when:
contains:
event.module: "kibana"
在上面,我们依据 event.module 的内容来判断是否调用 system_pipeline 或者 kibana_pipeline。更多关于条件的介绍,请参阅链接https://www.elastic.co/guide/en/beats/filebeat/current/defining-processors.html#conditions
重新运行我们的 metricbeat:
./metricbeat -e
那么我们会发现一个新的字段叫做 name,并且当 event.module 为了 kibana 时,它的这个值也为 kibana;而当 event.module 的值为 system 时,它的值也为 system。
当然针对我们的情况,我们时间上也可以直接使用如下的方法来实现:
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["localhost:9200"]
pipeline: "%{[event.module]}_pipeline"
在这里,我们使用信息里的一个字段 event.module 来动态地生成相应的 pipeline ID。这个也可以达到同样的目的。
Beats:在 Beats 中实现动态 pipeline的更多相关文章
- 深入理解javascript中的动态集合——NodeList、HTMLCollection和NamedNodeMap
× 目录 [1]NodeList [2]HTMLCollection [3]NamedNodeMap[4]注意事项 前面的话 一说起动态集合,多数人可能都有所了解.但是,如果再深入些,有哪些动态集合, ...
- Quartz 在 Spring 中如何动态配置时间--转
原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源 ...
- ZBrush中的动态网格该怎么进行运用
DynaMesh是ZBrush最新的基础模型创建工具,该命令用于基本模型的起稿到中模的制作.使用DynaMesh完全不启用考虑模型的拓扑,可以从一个图形拉扯出整个模型的分支,本文将以一个实例简单介绍Z ...
- (待续)C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)
目录 00 简介 01 算法概述 02 公用方法与变量解释 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存 ...
- 使用Java中的动态代理实现数据库连接池
2002 年 12 月 05 日 作者通过使用JAVA中的动态代理实现数据库连接池,使使用者可以以普通的jdbc连接的使用习惯来使用连接池. 数据库连接池在编写应用服务是经常需要用到的模块,太过频繁的 ...
- Linux中的动态库和静态库(.a/.la/.so/.o)
Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序编译的过程 .o文件(目标文件) 创建atoi.o 使用atoi. ...
- iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建
iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建 一.实现效果 说明:该示例在storyboard中使用动态单元格来完成. 二.实现 1.项目文件结构 ...
- 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)
动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的拼接和组装.可以简单的说成Mybatis中可以动态去的判断需不需要某些 ...
- java中的动态代理机制
java中的动态代理机制 在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface).另一个则是 Proxy(Class),这一个类和接口是实现 ...
随机推荐
- 从零开始完整开发基于websocket的在线对弈游戏【五子棋】,只用几十行代码完成全部逻辑。
五子棋是规则简单明了的策略型游戏,先形成五子连线者获胜.本课程习作采用两人在线对弈的方式进行比赛,拿着手机在上下班路上玩特别合适. 整个过程在众触低代码应用平台进行,使用表达式描述游戏逻辑(高度简化版 ...
- 【Unity学习笔记】掌握MoneBehavior中的重要属性、方法
一.重要属性 1-1.获取自己依附的GameObject using System.Collections; using System.Collections.Generic; using Unity ...
- CF1381B Unmerge(位运算的作用)
题目大意: 给定长度为 \(2n\) 的排列 \(p\) .确定是否存在两个数组 \(a\) 和 \(b\) ,每个数组的长度都为 \(n\) ,并且没有相等的元素,使得 \(p = \operato ...
- 表单中设置了 `keyup.enter.native` 的按键事件,但是回车后没有执行查询,反而会刷新页面
场景 添加属性对话框中,input输入后点击 enter,不会执行绑定的 handleDialogQuery 事件,反而会刷新整个页面: 如果不点击 enter,点击搜索按钮,则是正常的. 又测试:在 ...
- odoo14 入门解刨关联字段
Odoo中关联字段是用来绑定表与表之间主从关系的. 主从关系指: 首先必须要明白id的存在的意义,它具备"唯一"的属性,也就是表中所有记录中该字段的值不会重复. 假设表A存储是身份 ...
- powershell和cmd对比
前言 计算机啊这东西,本质上是硬件和软件的综合体.如果只有硬件没有软件的话,这也是台辣鸡而已.而计算机软件中最靠近硬件的一层,就是操作系统层. 操作系统有很多种,比如Unix/Linux/Mac OS ...
- 解决 idea无法下载源码 Sources not found for:XXX
解决 idea无法下载源码 Sources not found for:XXX 命令行输入 mvn dependency:resolve -Dclassifier=sources 参考 https:/ ...
- Luogu3871 [TJOI2010]中位数 (平衡树)
"#define int long long" 导致100pts \(\rightarrow\) 80pts #include <iostream> #include ...
- Linux 03 用户管理
参考源 https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0 版本 本文章基于 CentOS 7.6 概述 Linux ...
- Android Studio 模拟器(AVD)访问互联网
模拟器默认是不可以直接访问互联网的,需要为模拟器配置 DNS 服务器. (一)找到模拟器安装的位置 模拟器安装位置在安卓 SDK 下面,进入[SDK Path]/emulator. (二)打开终端输入 ...