当前位置: 首页 > news >正文

ELK之LogStash插件grok和geoip的配置使用

本文针对LogStash常用插件grok和geoip的使用进行说明:

一、使用grok输出结构化数据

编辑 first-pipeline.conf 文件,修改为如下内容:

input{#stdin{type => stdin}file {# 读取文件的路径path => ["/tmp/access.log"]start_position => "beginning"}
}filter{grok{match => {"message" => "%{COMBINEDAPACHELOG}" }}}output{stdout{codec => rubydebug}
}

启动./logstash -f ../config/first-pipeline.conf后输出就为结构化的数据了:

{"message" => "140.77.188.102 - - [25/Jun/2022:05:11:33 +0800] \"GET /api/ss/api/v1/login/getBaseUrl HTTP/1.1\" 200 103 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b\"","response" => "200","auth" => "-","bytes" => "103","referrer" => "\"-\"","host" => "nb002","@version" => "1","agent" => "\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b\"","@timestamp" => 2022-06-26T00:28:24.302Z,"timestamp" => "25/Jun/2022:05:11:33 +0800","ident" => "-","httpversion" => "1.1","path" => "/tmp/access.log","clientip" => "140.77.188.102","verb" => "GET","request" => "/api/ss/api/v1/login/getBaseUrl"
}

二、使用grok对输出数据进行修改

编辑 first-pipeline.conf 文件,修改为如下内容:

input{#stdin{type => stdin}file {path => ["/tmp/access.log"]start_position => "beginning"}
}filter{grok{match => {"message" => "%{COMBINEDAPACHELOG}" }}mutate{# 重命名字段rename => {"clientip" => "cip"}}mutate{# 移出特定字段remove_field => ["timestamp","agent"]}
}output{stdout{codec => rubydebug}
}

重新启动./logstash -f ../config/first-pipeline.conf 后,往 /tmp/access.log 中新增一条数据,看输出:发现"clientip" 变成了 “cip” 和timestamp agent 字段已经没有了。NICE

{"verb" => "GET","@timestamp" => 2022-06-26T00:48:28.224Z,"referrer" => "\"-\"","path" => "/tmp/access.log","auth" => "-","message" => "140.77.188.102 - - [25/Jun/2022:05:11:33 +0800] \"GET /api/ss/api/v1/login/getBaseUrl HTTP/1.1\" 200 103 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b\"","@version" => "1","ident" => "-","response" => "200","bytes" => "103","request" => "/api/ss/api/v1/login/getBaseUrl","httpversion" => "1.1","host" => "nb002","cip" => "140.77.188.102"
}

三、使用geoip过滤器插件

使用geoip过滤器插件,可以增强数据。
geoip插件可以针对IP地址进行地理位置信息来源的查找

编辑 first-pipeline.conf 文件,修改为如下内容:

input{#stdin{type => stdin}file {path => ["/tmp/access.log"]start_position => "beginning"}
}filter{grok{match => {"message" => "%{COMBINEDAPACHELOG}" }}mutate{# 重命名字段rename => {"clientip" => "cip"}}mutate{# 移出特定字段remove_field => ["timestamp","agent"]}geoip{# 由于上面将clientip修改为了cip,故此处配置cip,如果没有rename字段则用clientipsource => "cip"}
}output{stdout{codec => rubydebug}
}

重新启动./logstash -f ../config/first-pipeline.conf 后,往 /tmp/access.log 中新增一条数据,看输出:发现输出结果中新增了geoip 字段,并展示了地区、国家、省份、经纬度等地理位置信息。

外国ip示例:

{"host" => "nb002","auth" => "-","bytes" => "103","cip" => "140.77.188.104","@version" => "1","message" => "140.77.188.104 - - [25/Jun/2022:05:11:33 +0800] \"GET /api/ss/api/v1/login/getBaseUrl HTTP/1.1\" 200 103 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b\"","verb" => "GET","request" => "/api/ss/api/v1/login/getBaseUrl","referrer" => "\"-\"","response" => "200","ident" => "-","path" => "/tmp/access.log","@timestamp" => 2022-06-26T00:58:11.786Z,"geoip" => {"country_code3" => "FR","longitude" => 4.85,"ip" => "140.77.188.104","continent_code" => "EU","region_name" => "Rhône","country_code2" => "FR","timezone" => "Europe/Paris","country_name" => "France","region_code" => "69","latitude" => 45.748,"postal_code" => "69007","location" => {"lat" => 45.748,"lon" => 4.85},"city_name" => "Lyon"},"httpversion" => "1.1"
}

国内ip示例:

{"host" => "nb002","auth" => "-","bytes" => "103","cip" => "175.30.108.241","@version" => "1","message" => "175.30.108.241 - - [25/Jun/2022:05:11:33 +0800] \"GET /api/ss/api/v1/login/getBaseUrl HTTP/1.1\" 200 103 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b\"","verb" => "GET","request" => "/api/ss/api/v1/login/getBaseUrl","referrer" => "\"-\"","response" => "200","ident" => "-","path" => "/tmp/access.log","@timestamp" => 2022-06-26T01:00:11.972Z,"geoip" => {"country_code3" => "CN","longitude" => 125.3247,"ip" => "175.30.108.241","continent_code" => "AS","region_name" => "Jilin","country_code2" => "CN","timezone" => "Asia/Shanghai","country_name" => "China","region_code" => "JL","latitude" => 43.88,"location" => {"lat" => 43.88,"lon" => 125.3247},"city_name" => "Changchun"},"httpversion" => "1.1"
}

END

相关文章:

ELK之LogStash插件grok和geoip的配置使用

本文针对LogStash常用插件grok和geoip的使用进行说明: 一、使用grok输出结构化数据 编辑 first-pipeline.conf 文件,修改为如下内容: input{#stdin{type > stdin}file {# 读取文件的路径path > ["/tmp/access.log"]start_…...

基于Python实现的一款轻量、强大、好用的视频处理软件,可缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段、自动配字幕等

Quick Cut 是一款轻量、强大、好用的视频处理软件。它是一个轻量的工具,而不是像 Davinci Resolve、Adobe Premiere 那样专业的、复杂的庞然大物。Quick Cut 可以满足普通人一般的视频处理需求:压缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段…...

深入探讨 Golang 中的追加操作

通过实际示例探索 Golang 中的追加操作 简介 在 Golang 编程领域,append 操作是一种多才多艺的工具,使开发人员能够动态扩展切片、数组、文件和字符串。在这篇正式的博客文章中,我们将踏上一段旅程,深入探讨在 Golang 中进行追加…...

三网话费余额查询的API系统 基于thinkphp6.0框架

本套系统是用thinkphp6.0框架开发的,PHP需大于8.2,系统支持用户中心在线查询和通过API接口对接发起查询,用户余额充值是对接usdt接口,源码全开源,支持懂技术的人二次开发~搭建教程1、源码上传后,吧运行目录…...

LeetCode —— dfs和bfs

797. 所有可能的路径 给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)。 graph[i] 是一个从节点 i 可以访问的所有节点的列表(即从节点 i 到节点…...

【ROS 2 基础-常用工具】-7 Rviz仿真机器人

所有内容请查看:博客学习目录_Howe_xixi的博客-CSDN博客...

循环神经网络(RNN)

定义 循环神经网络(RNN)是一种深度学习神经网络,专门用于处理序列数据,如文本、语音和时间序列数据。RNN的独特之处在于它具有循环连接,允许信息在网络内持续流动,以便处理先前的输入信息,具体…...

ESP32C3 LuatOS TM1650②动态显示累加整数

--注意:因使用了sys.wait()所有api需要在协程中使用 -- 用法实例 PROJECT "ESP32C3_TM1650" VERSION "1.0.0" _G.sys require("sys") local tm1650 require "tm1650"-- 拆分整数,并把最低位数存放在数组最大索引处 loc…...

文心一言 VS 讯飞星火 VS chatgpt (117)-- 算法导论10.3 2题

二、用go语言,对一组同构对象用单数组表示法实现,写出过程ALLOCATE-OBJECT和FREE-OBJECT。 文心一言: 在Go语言中,我们通常使用指针和结构体来表示和操作复杂的数据结构。对于一组同构对象,我们可以使用一个数组来存…...

专业修图软件 Affinity Photo 2 mac中文版编辑功能

Affinity Photo for Mac是应用在MacOS上的专业修图软件,支持多种文件格式,包括psD、PDF、SVG、Eps、TIFF、JPEG等。 Affinity Photo mac提供了许多高级图像编辑功能,如无限制的图层、非破坏性操作、高级的选择工具、高级的调整层、HDR合成、全…...

Excel 5s内导入20w条简单数据(不使用多线程)

文章目录 Excel 5s内导入20w条数据1. 生成20w条数据1.1 使用Excel 宏生成20w条数据1.2 生成成功 2. ExecutorType:批量操作执行器类型2.1 ExecutorType.SIMPLE2.2 ExecutorType.BATCH2.3 ExecutorType.REUSE 3. 20w条数据直接插入数据库3.1 使用ExecutorType.SIMPLE…...

计算机毕业设计 基于SpringBoot笔记记录分享网站的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...

Windows Ubuntu子系统使用USB教程

Windows Ubuntu子系统使用USB教程 Windows Subsystem for Linux (WSL)允许您在Windows上运行Linux。以下指南涉及如何在WSL2中连接和使用USB设备。 WSL版本 在WSL内部运行 uname -a应该显示内核版本为5.10.60.1或更高版本。你需要运行WSL 2发行版本。 USB/IP 客户端工具 在W…...

如何理解TCP/IP协议?

一、是什么 TCP/IP,传输控制协议/网际协议,是指能够在多个不同网络间实现信息传输的协议簇 TCP(传输控制协议) 一种面向连接的、可靠的、基于字节流的传输层通信协议 IP(网际协议) 用于封包交换数据网…...

如何开发出来一款解决抖音本地生活的软件营销工具?

一、智能剪辑、矩阵分发、无人直播、爆款文案于一体独立应用开发 抖去推----主要针对本地生活的----移动端(小程序软件系统,目前是全国源头独立开发),开发功能大拆解分享,功能大拆解: 7大模型剪辑法(数学阶乘&#x…...

GO 语言如何用好变长参数?

函数重载 对于函数重载相信编码过的 xdm 肯定不会陌生,函数重载就是在同一个作用域内定义多个具有相同名称但参数列表不同的函数 此处的参数列表不同,可以是参数的类型不同,参数的个数不同 那么我们一起分别来看看 C 语言,C 语…...

怎么解决 Http 协议无状态?

一、Http 协议无状态的含义 1.1 有状态协议 常见的许多七层协议实际上是有状态的,例如 SMTP 协议,它的第一条消息必须是 HELO,用来握手,在 HELO 发送之前其他任何命令都是不能发送的;接下来一般要进行 AUTH 阶段&#…...

FlinkCDC for mysql to Clickhouse

完整依赖 <dependencies><!-- https://mvnrepository.com/artifact/org.apache.flink/flink-core --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-core</artifactId><version>1.13.0</version>…...

沃通SSL证书服务多省区一体化政务服务平台

近年来&#xff0c;我国政务服务数字化水平不断提升&#xff0c;数字政府建设取得积极成效。依托全国一体化政务服务平台&#xff0c;政务服务效能不断提升&#xff0c;“一网通办”能力显著增强&#xff0c;为创新政府治理、优化营商环境提供了有力支撑。沃通SSL证书具备保护数…...

Linux程序地址

目录 一、定义 二、问题引出 三、虚拟地址和物理地址 &#xff08;一&#xff09;问题解释 &#xff08;二&#xff09;什么是进程地址空间 &#xff08;三&#xff09;为什么要有进程地址空间 一、定义 #include <stdio.h> #include <stdlib.h>//geten…...

Speech-AI-Forge:一站式集成主流开源语音AI模型的本地部署与API调用指南

1. 项目概述与核心价值如果你正在寻找一个功能全面、上手简单&#xff0c;并且能让你在本地电脑上玩转各种主流开源语音AI模型的工具&#xff0c;那么Speech-AI-Forge&#xff08;以下简称SAF&#xff09;绝对值得你花时间深入了解。我最初接触它&#xff0c;是因为厌倦了在不同…...

k-Means聚类算法优化实战:从初始化到核技巧

1. k-Means算法回顾与常见痛点分析k-Means作为无监督学习中最经典的聚类算法之一&#xff0c;其简洁性和高效性使其成为数据分析的入门必修课。算法通过迭代计算样本点到聚类中心的距离&#xff0c;不断调整中心点位置&#xff0c;最终实现数据的分组。但正是这种简洁性&#x…...

YOLO11涨点优化:卷积优化 | 引入AKConv (Alternating Kernel Convolution),针对不规则形状目标实现降维打击

导语 在计算机视觉领域,每一年技术迭代都像一次“军备竞赛”——从YOLOv8到YOLO11,再到YOLO26,模型们在精度、速度和参数量之间反复博弈。然而,一个困扰检测任务的难题始终横亘在前:不规则形状目标如何被精准感知? 无论是自动驾驶场景中姿态多变的行人、农业场景中形态各…...

深度学习模型评估:Keras实现与最佳实践

1. 深度学习模型评估的重要性在构建深度学习模型时&#xff0c;我们面临无数决策点&#xff1a;网络层数、每层神经元数量、激活函数选择、优化器配置、训练轮次等。这些决策往往无法通过理论推导得出完美答案&#xff0c;必须通过实验验证。就像厨师需要通过实际品尝来调整配方…...

基于多智能体协作的AI视频创作平台:从架构到部署实战

1. 项目概述&#xff1a;一个由AI智能体驱动的“虚拟制片厂”如果你曾经尝试过用AI生成视频&#xff0c;大概率会遇到这样的困境&#xff1a;要么是生成的视频人物形象飘忽不定&#xff0c;前一秒还是黑发&#xff0c;下一秒就成了金发&#xff1b;要么是剧情逻辑混乱&#xff…...

如何快速永久保存QQ空间历史动态:终极完整解决方案

如何快速永久保存QQ空间历史动态&#xff1a;终极完整解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾经担心QQ空间中的珍贵记忆会随着时间流逝而消失&#xff1f;那些…...

如何实现SQL存储过程日志记录_建立标准化审计表方案

...

半监督学习核心算法与医疗影像分析实践

1. 半监督学习基础概念解析半监督学习&#xff08;Semi-Supervised Learning&#xff09;是机器学习领域中一种独特的学习范式&#xff0c;它介于监督学习和无监督学习之间。想象一下你在教孩子认识动物&#xff1a;如果给每张动物图片都贴上标签&#xff08;这是猫&#xff0c…...

从电赛C题到毕业设计:如何用MSP432P401R和逐飞模块复现一辆智能跟随小车(附完整代码)

智能跟随小车实战指南&#xff1a;基于MSP432P401R的竞赛级解决方案 第一次接触电子设计竞赛的智能车项目时&#xff0c;我被那些在赛道上灵活穿梭的小车深深吸引。作为电子工程专业的学生&#xff0c;能够亲手打造一辆能自主跟随的智能小车&#xff0c;不仅是对专业知识的综合…...

CL2205OL CL2207OL CL2210OL CL2212OL CL2215OL CL2207IL CL2218IL CL2224IL CL2207SL CL2210SL CL2215SL

概述 CL22XX是一款适用于低功率AC / DC充电器和适配器应用的高性能PWM电源开关控制器&#xff0c;它可在初级侧进行检测和调节&#xff0c;集高精度恒定电压&#xff08;CV&#xff09;和恒定电流&#xff08;CC&#xff09;控制于一体&#xff0c;省去了光电耦合器和431比较器…...