毫秒转换为yyyy-MM-dd HH:mm:ss日志格式

rule "receiveDate_alignment"
whenhas_field("receiveDate")
thenlet m = parse_unix_milliseconds(to_long($message.receiveDate),"CST");let n = format_date(m,"yyyy-MM-dd HH:mm:ss","Asia/Shanghai");set_field("ORG_EVENT_TIME",n);
end

时间格式化及时区格式化

rule "parse_log"
whencontains(value: to_string($message.message), search: "ERROR", ignore_case: false)
thenset_field("raw_message", to_string($message.message));set_field("message", concat("警告:匹配到深证通程序日志有异常关键字,请注意查看!",to_string(format_date(to_date($message.timestamp,"CST"),"yyyy-MM-dd HH:mm:ss","Asia/Shanghai"))));
end

format_date(to_date($message.timestamp,"CST"),"yyyy-MM-dd HH:mm:ss","Asia/Shanghai")

2022-03-03T06:46:26.354Z  => 2022-03-03 14:46:26

特殊时间格式对其(filebeat指标)

rule "time_duiqi2"
whentrue
thenlet m = regex("(\\S+)\\+",to_string($message.message));set_field("timestamp",parse_date(replace(to_string(m["0"]),"T"," "),"yyyy-MM-dd HH:mm:ss.SSS","locale.US","Asia/Shanghai"));
end

filebeat日志时间格式为2022-09-16T13:56:39.278+0800,由于中间带T操作时解析总无法实现,把T替换掉为空格即可

判断条件的跃进

rule "test rule"
when//可以进行数值判断to_long($message.alert_level) > 3
thenset_field("test_field", "test succ");
end

根据Pri分析出Facility和Level字段值

//把22解析成pri

<22>Jul 13 17:25:01 localhost postfix/qmgr[1915]: CB3FF60AF6F5: removed

rule "conv"
whentrue
thenlet m = expand_syslog_priority_as_string(to_string($message.pri));set_fields({facility: m.facility, level:m.level});
end

查询表(lookuptable)功能使用csv适配器实现多值

csv文件格式如下

"http_response_code"|"multivalue"
"200"|"中国#测试"

规则如下:

rule "parse_lookuptable_multivalue"
whenhas_field("http_response_code")
thenlet lookup_multivalue = lookup("csv_test",to_string($message.http_response_code));let multivalue = split("#",to_string(lookup_multivalue.value));set_field("localte",to_string(multivalue[0]));set_field("desc",to_string(multivalue[1]));
end

效果如下:

JSON格式解析

rule "parse_json"
whentrue
thenlet m = parse_json(to_string($message.message));set_fields(to_map(m));
end

json格式解析(大json解析指定数据)

rule "parse"
whentrue
thenlet m = regex(".*?(\\{.*)",to_string($message.message));let x = parse_json(to_string(m["0"]));let new_fields = select_jsonpath(x,{load1: "$.monitoring.metrics.system.load.1",load5: "$.monitoring.metrics.system.load.5",load15: "$.monitoring.metrics.system.load.15"});set_fields(new_fields);end

可以从以下json中获取load相关指标

2022-09-15T11:06:53.451+0800    INFO    [monitoring]    log/log.go:145  Non-zero metrics in the last 30s    {"monitoring": {"metrics": {"beat":{"cpu":{"system":{"ticks":1450,"time":{"ms":3}},"total":{"ticks":3160,"time":{"ms":25},"value":3160},"user":{"ticks":1710,"time":{"ms":22}}},"handles":{"limit":{"hard":65536,"soft":65536},"open":14},"info":{"ephemeral_id":"0aed24ea-c8cd-429a-ae16-b701558bebdb","uptime":{"ms":3870086}},"memstats":{"gc_next":23807808,"memory_alloc":12150784,"memory_total":160990448},"runtime":{"goroutines":43}},"filebeat":{"events":{"added":1,"done":1},"harvester":{"files":{"041fdc0c-82ad-495a-9244-54966725bfe5":{"last_event_published_time":"2022-09-15T11:06:29.727Z","last_event_timestamp":"2022-09-15T11:06:29.727Z","read_offset":1231,"size":1231}},"open_files":1,"running":1}},"libbeat":{"config":{"module":{"running":0}},"output":{"events":{"acked":1,"batches":1,"total":1}},"outputs":{"kafka":{"bytes_read":60,"bytes_write":1124}},"pipeline":{"clients":2,"events":{"active":0,"published":1,"total":1},"queue":{"acked":1}}},"registrar":{"states":{"current":2,"update":1},"writes":{"success":1,"total":1}},"system":{"load":{"1":0.09,"15":0.29,"5":0.27,"norm":{"1":0.0113,"15":0.0363,"5":0.0338}}}}}}

嵌套json解析

json示例

{"host":{"host":"192.168.100.12","name":"B-BJ-HW-S5720-03_04"},"groups":["Templates/Network devices","DT_network","网络设备","路由器"],"applications":["Interface GigabitEthernet1/0/2()"],"itemid":67697,"name":"Interface GigabitEthernet1/0/2(): Bits 接收","clock":1672724928,"ns":434058026,"value":46440,"type":3}

解析规则

rule "Data Parsing"
whentrue
thenlet msg = parse_json(to_string($message.message));let prop = select_jsonpath(msg, {host: "$.host"});set_field("host_string", to_string(prop.host));let props = parse_json(to_string($message.host_string));set_fields(to_map(props),"host_");set_fields(to_map(msg));
end

思路: 由于graylog4删减了部分函数,比如好用的nesting_parse_json()用于解析嵌套函数,所以通过社区找到一个案例照着改了一下。

大概的实现过程是这样的,首先先把所有的json外层解析出来,然后针对内层的host字段进行二次解析,解析后的内层host为了防止字段名称冲突导致覆盖或字段类型不同,在set_fields时加上前缀。

【Graylog】比较常用的pipeline规则相关推荐

  1. vue验证整数_前端Vue中常用rules校验规则

    前端Vue中常用rules校验规则 1.是否合法IP地址 export function validateIP(rule, value,callback) {if(value==''||value== ...

  2. Nginx伪静态配置和常用Rewrite伪静态规则集锦

    伪静态是一种可以把文件后缀改成任何可能的一种方法,如果我想把php文件伪静态成html文件,这种相当简单的,下面我来介绍nginx 伪静态配置方法 nginx里使用伪静态是直接在nginx.conf ...

  3. dw中css目标规则命名,css 常用样式命名规则

    大家在写css的时候,对一些html标签起一个合适的名字是个很头疼的事情,现在给大家分享项目中常用的名字供参考. 外套:wrap  --用于最外层 头部:header  --用于头部 主要内容:mai ...

  4. MyCat分片规则(全局表,ER分片表,多对多关联,主键分片VS非主键分片),MyCat常用的分片规则(15中分片规则),自定义MyCat分片规则,其它术语

    1 MyCat分片规则 数据切分中重要的几条原则,其中有几条数据冗余,表分组(Table Group). 1.1全局表 如果你的业务中有些数据类似于数据字典,比如配置文件的配置,常用业务的配置或数据量 ...

  5. Wireshark抓包工具使用教程以及常用抓包规则

    Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的,所以今天讲述的内容可能无法直接帮你解决问题,但 ...

  6. Mock生成随机数据常用的类型规则

    我们一般在模拟数据时都希望生成一些随机的数据,mock中内置了很多种不同类型的随机数据,我们可以使用它们生成各种类型的随机数据: Type Method 基本类型 boolean, natural, ...

  7. 25个常用的防火墙规则

    本文将给出25个iptables常用规则示例,这些例子为您提供了些基本的模板,您可以根据特定需求对其进行修改调整以达到期望.  格式 iptables [-t 表名] 选项 [链名] [条件] [-j ...

  8. 常用正则表达式及其规则

    常用规则: 1. ^行开始   $行结束   ^ab 以ab开头  ab$ 以ab结尾 2. \将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符. 例如:\(  匹 ...

  9. 外汇交易市场策略:简单最常用的四周规则与七种交易策略

    简单常用四周规则 随着越来越复杂.越来越富于想象力的外汇交易系统和外汇指标的出现,外汇投资者们往往忽视了那些简单.基本的工具,而它们的效果相当好,经受住了时间的考验.今天,为大家分享其中一种最简便的外 ...

最新文章

  1. 静态页面和动态页面的区别
  2. java获取mysql表结构
  3. 灰度图像阈值化分割常见方法总结及VC实现
  4. Spring的核心思想,总结得非常好!
  5. RocketMQ 千锤百炼--哈啰在分布式消息治理和微服务治理中的实践
  6. 每天一道LeetCode-----在给定数组中找到一个子数组,使得这个子数组的元素乘积最大
  7. 关于 php mysql pdo cannot find driver 解决方案
  8. Java中的证书透明度验证
  9. python 拟合圆心_OpenCV:将单个圆拟合到图像(在Python中)
  10. 代码英雄:波澜壮阔的操作系统之战(音频+长文)
  11. 前端开发者如何利用 CSS 实现酷炫的变色方案?
  12. 二次型在一点的_EP型隐形车衣除胶剂的使用方法,为什么不建议用柏油清洗剂...
  13. Java 实战项目坦克大战,一小时学会制作
  14. win7计算机无法右键,win7系统电脑右键菜单失灵无法弹出的解决方法
  15. 闹钟Android实验报告,单片机实验报告(闹钟).doc
  16. 全球搜索引擎Top10 可惜很多人只用过第四个
  17. vue使用vue-pdf
  18. Enigma密码机初级解析
  19. 小狗AI自动建站系统
  20. Apache Doris ODBC Mysql外表在centos下的使用方法及配置

热门文章

  1. Android 安卓启动流程
  2. Spark: Data Skew 优化
  3. ROS系统的发展历史
  4. 自动驾驶之高精度地图
  5. Virtual box里把乌班图系统从系统盘迁移到其他盘
  6. 400以内蓝牙耳机哪款好?南卡和FIIL蓝牙耳机测评大PK!
  7. 手机上如何对图片格式进行转换?
  8. tp6实现文件上传接口(单文件上传)
  9. [转载] 财经郎眼20120402:中美经贸关系解析
  10. Netty基本使用示例