【Logstash02】企业级日志分析系统ELK之Logstash 输入 Input 插件

Logstash 使用

Logstash 命令

官方文档

https://www.elastic.co/guide/en/logstash/current/first-event.html
#各种插件
https://www.elastic.co/guide/en/logstash/current/input-plugins.html
https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
https://www.elastic.co/guide/en/logstash/current/output-plugins.html
https://www.elastic.co/guide/en/logstash/7.6/input-plugins.html
https://www.elastic.co/guide/en/logstash/7.6/filter-plugins.html
https://www.elastic.co/guide/en/logstash/7.6/output-plugins.html

范例: 查看帮助

[root@logstash ~]#/usr/share/logstash/bin/logstash --help
#常用选项
-e 指定配置内容
-f 指定配置文件,支持绝对路径,如果用相对路径,是相对于/usr/share/logstash/的路径
-t 语法检查
-r 修改配置文件后自动加载生效,注意:有时候修改配置还需要重新启动生效#服务方式启动,由于默认没有配置文件,所以7.X无法启动,8.X可以启动
[root@logstash ~]#systemctl start logstash

各种插件帮助

Logstash Reference [8.17] | Elastic 

范例: 列出所有插件

[root@logstash ~]#/usr/share/logstash/bin/logstash-plugin list 

Github logstash插件链接

https://github.com/logstash-pluginsicon-default.png?t=O83Ahttps://github.com/logstash-plugins

Logstash 输入 Input 插件

官方链接

Input plugins | Logstash Reference [7.6] | Elastic

标准输入

codec 用于输入数据的编解码器,默认值为plain表示单行字符串,若设置为json,表示按照json方式解 析

范例: 交互式实现标准输入

#标准输入和输出,codec => rubydebug指输出格式,是默认值,可以省略,也支持设为json,以json格式输出
/usr/share/logstash/bin/logstash  -e 'input { stdin{} } output { stdout{ codec => rubydebug }}'
#后续还可继续输入其它信息,按ctrl+c退出#指定输入信息为Json格式
[root@logstash ~]#/usr/share/logstash/bin/logstash -e 'input { stdin{ codec => json } } output { stdout{ codec => rubydebug }}'
{"name":"wang","age": "18","gender":"male"}  #输入Json格式信息#自动解析
{"name" => "wang","event" => {"original" => "{\"name\":\"wang\",\"age\": \"18\",\"gender\":\"male\"} \n"},"@timestamp" => 2025-01-03T05:00:30.673936999Z,"age" => "18","host" => {"hostname" => "logstash"},"gender" => "male","@version" => "1"
}
#输入非Json格式信息,告警提示无法自动解析,存放message字段
hello,world[WARN ] 2025-01-03 05:01:04.357 [[main]<stdin] jsonlines - JSON parse error, original data now in message field {:message=>"Unrecognized token 'hello': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n at [Source: (String)\"hello,world\"; line: 1, column: 6]", :exception=>LogStash::Json::ParserError, :data=>"hello,world"}
{"event" => {"original" => "hello,world\n"},"message" => "hello,world","@timestamp" => 2025-01-03T05:01:04.359617946Z,"host" => {"hostname" => "logstash"},"tags" => [[0] "_jsonparsefailure"],"@version" => "1"
}

范例: 以配置文件实现标准输入

#配置文件
[root@logstash ~]#cat /etc/logstash/conf.d/stdin_to_stdout.conf
input {stdin {type => "stdin_type"  #自定义事件类型,可用于后续判断    tags => "stdin_tag"   #自定义事件tag,可用于后续判断     codec => "json"       #指定Json 格式    }
}output {stdout {codec => "rubydebug" #输出格式,此为默认值,可省略}
}
#语法检查
[root@logstash ~]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/stdin_to_stdout.conf -t
........
Configuration OK
[INFO ] 2025-01-03 05:07:47.505 [LogStash::Runner] runner - Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash#执行logstash,选项-r表示动态加载配
[root@logstash ~]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/stdin_to_stdout.conf -r
从文件输入

Logstash 会记录每个文件的读取位置,下次自动从此位置继续向后读取

每个文件的读取位置记录在 /var/lib/logstash/plugins/inputs/file/.sincedb_xxxx 或者 /usr/share/logstash/data/plugins/inputs/file/ 对应的文件中

此文件包括文件的 inode号, 大小等信息

修改 Logstash 配置文件
[root@logstash ~]#cat /etc/logstash/conf.d/file_to_stdout.conf
input {file {path => "/tmp/wang.*"type => "wanglog"     #添加自定义的type字段,可以用于条件判断,和filebeat中tag功能相似exclude => "*.txt"    #排除不采集数据的文件,使用通配符glob匹配语法 start_position => "beginning" #第一次从头开始读取文件,可以取值为:beginning和endstat_interval => "3"        #定时检查文件是否更新,默认1s   codec => json                #如果文件是Json格式,需要指定此项才能解析,如果不是Json格式而添加此行也不会影响结果}file {path => "/var/log/syslog"type => "syslog"start_position => "beginning"stat_interval => "3"}
}
output {stdout {codec => rubydebug}
}

 

 

验证日志数据
#语法检查
[root@logstash ~]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file_to_stdout.conf -t
[root@logstash ~]#echo line1 >> /tmp/wang.log
#执行
[root@logstash ~]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file_to_stdout.conf

logstash利用 sincedb 文件记录了logstash收集的记录文件的信息,比如位置,以方便下次接着从此位 置继续收集日志

[root@logstash logstash]#cat  /usr/share/logstash/data/plugins/inputs/file/.*
2232798 0 2052 15 1735885320.283595 /var/log/test.log  #记录了收集文件的inode和大小等信息[root@logstash logstash]#ll -li /var/log/test.log
2232798 -rw-r--r-- 1 root root 15 Jan  3 14:12 /var/log/test.log
从 Http 请求采取数据
[root@logstash ~]# cat /etc/logstash/conf.d/http_to_stdout.conf
input {http {port =>6666codec => json}
}
output {stdout {codec => rubydebug}
}
[root@logstash ~]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/http_to_stdout.conf -r#执行下面访问可以看到上面信息
[root@ubuntu2004 ~]#curl http://logstash.wang.org:6666
ok
[root@ubuntu2004 ~]#curl  -XPOST -d'test log message' http://logstash.wang.org:6666#提交Json格式数据,可以自动解析
[root@ubuntu2004 ~]#curl  -XPOST -d'{ "name":"wang","age": "18","gender":"male"}' http://logstash.wang.org:6666

 

从 Filebeat 读取数据
filebeat配置
filebeat.inputs:
- type: logenabled: true             #开启日志           paths:- /var/log/nginx/access_json.log    #指定收集的日志文件  json.keys_under_root: true #默认false,只识别为普通文本,会将全部日志数据存储至message字段,改为true则会以Json格式存储json.overwrite_keys: true  #设为true,使用json格式日志中自定义的key替代默认的message字段,此项可选tags: ["nginx-access"]
output.logstash:hosts: ["10.0.0.104:5044"]  #指定Logstash服务器的地址和端口  
Logstash配置
[root@logstash ~]#cat /etc/logstash/conf.d/filebeat_to_stdout.conf
input {beats {port => 5044}
}
output {stdout {codec => rubydebug}
}

 

访问filebeat生成日志
[root@logstash conf.d]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/filebeat_to_stdout.conf -r{"upstreamtime" => "-","agent" => {"ephemeral_id" => "b5311807-a0a9-428f-a076-a3c8c5b9db02","id" => "a3acb99e-b483-4367-a2df-535d8a39a0fa","name" => "kibana","version" => "8.8.2","type" => "filebeat"},"ecs" => {"version" => "8.0.0"},"tcp_xff" => "-","referer" => "-","domain" => "10.0.0.186","tags" => [[0] "nginx-access",[1] "beats_input_raw_event"],"http_host" => "10.0.0.186","upstreamhost" => "-","xff" => "-","host" => {"name" => "kibana"},"log" => {"offset" => 2576,"file" => {"path" => "/var/log/nginx/access_json.log"}},"clientip" => "10.0.0.181","http_user_agent" => "curl/7.81.0","responsetime" => 0,"status" => "404","input" => {"type" => "log"},"size" => 162,"@version" => "1","@timestamp" => 2025-01-03T07:13:49.000Z,"uri" => "/adada"
}

 

从 Redis 中读取数据

支持由多个 Logstash 从 Redis 读取日志,提高性能

Logstash 从 Redis 收集完数据后,将删除对应的列表Key

官方链接:

https://www.elastic.co/guide/en/logstash/current/plugins-inputs-redis.html
https://www.elastic.co/guide/en/logstash/7.6/plugins-inputs-redis.html
 

 范例:

[root@logstash ~]#cat /etc/logstash/conf.d/redis_to_stdout.conf
input {redis {host => 'Redis_IP'port => "6379"password => "123456"db => "0"data_type => 'list'key => "nginx-accesslog"}
}
output {stdout {codec => rubydebug}
}
[root@logstash ~]#/usr/share/logstash/bin/logstash -f  /etc/logstash/conf.d/redis_to_stdout.conf -r
从 Kafka 中读取数据

官方链接:

https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html
https://www.elastic.co/guide/en/logstash/7.6/plugins-inputs-kafka.html

范例:

[root@logstash ~]#cat /etc/logstash/conf.d/kakfa_to_stdout.conf
input {kafka {bootstrap_servers => "10.0.0.201:9092,10.0.0.202:9092,10.0.0.203:9092"#group_id => "logstash"topics => ["nginx-accesslog","nginx-errorlog"]#topics => "nginx-log"codec => "json"consumer_threads => 8}
}
output {stdout {codec => rubydebug}
}
[root@logstash ~]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/kakfa_to_stdout.conf -r

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7安装Docker详细教程

本文以 CentOS7.8 为例安装 Docker 26.1.4 、Docker Compose、以及 Docker 镜像仓库。 安装方式1&#xff1a;自动安装(使用官方脚本) 使用官网一键安装命令&#xff1a; curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 或 使用国内 daocloud 一键安…

通过代理用户功能可以实现生产用户的应用滚动修改密码

Oracle通过代理用户功能可以实现生产用户的应用滚动修改密码。 测试例子&#xff1a; 生产用户为jyc密码为jyc 现在要求修改jyc的密码为abc&#xff0c;意味着所有应用都得停止同时修改。 此时可以考虑新建代理用户proxy_jyc&#xff0c;密码为jyc1&#xff08;实际修改建议…

永磁同步电机控制算法--最大转矩电流比控制((升级版)公式法、曲线拟合法、查表法)

一、原理介绍 id0控制方法在电机输出相同的电磁转矩下电机的定子电流并不是最小的,因此,采用最大转矩电流比控制方法,使得电机在输出相同的电磁转矩下电机定子电流最少,实现该系统的原理框图如图所示。 最大转矩电流比控制也称单位电流输出最大转矩的控制,即控制id以追求最大转…

数据挖掘——决策树分类

数据挖掘——决策树分类 决策树分类Hunt算法信息增益增益比率基尼指数连续数据总结 决策树分类 树状结构&#xff0c;可以很好的对数据进行分类&#xff1b; 决策树的根节点到叶节点的每一条路径构建一条规则&#xff1b;具有互斥且完备的特点&#xff0c;即每一个样本均被且…

小红书怎么看ip所属地?小红书ip属地为什么可以变

小红书&#xff0c;作为当下热门的社交电商平台&#xff0c;不仅为用户提供了丰富的购物与分享体验&#xff0c;还通过展示用户IP属地信息&#xff0c;增强了网络社交的透明度和真实性。然而&#xff0c;不少用户发现&#xff0c;小红书上的IP属地并非一成不变&#xff0c;这引…

springboot使用hutool captcha +vue实现图形验证码

一、效果 使用hutool captcha实现简单的图形验证码&#xff0c;可以参考官网概述 | Hutool 二、实现步骤 1、导入依赖 <!--hutool包--> <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.…

vue3+Echarts+ts实现甘特图

项目场景&#xff1a; vue3Echartsts实现甘特图;发布任务 代码实现 封装ganttEcharts.vue <template><!-- Echarts 甘特图 --><div ref"progressChart" class"w100 h100"></div> </template> <script lang"ts&qu…

EdgeX规则引擎eKuiper

EdgeX 规则引擎eKuiper 一、架构设计 LF Edge eKuiper 是物联网数据分析和流式计算引擎。它是一个通用的边缘计算服务或中间件,为资源有限的边缘网关或设备而设计。 eKuiper 采用 Go 语言编写,其架构如下图所示: eKuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源…

【AIGC-ChatGPT进阶提示词指令】AI美食助手的设计与实现:Lisp风格系统提示词分析

引言 在人工智能助手的应用领域中&#xff0c;美食烹饪是一个既专业又贴近生活的方向。本文将详细分析一个基于Lisp风格编写的美食助手系统提示词&#xff0c;探讨其结构设计、功能实现以及实际应用效果。 提出你的菜系&#xff0c;为你分析&#xff0c;并生成图片卡片 提示词…

【从零开始入门unity游戏开发之——C#篇42】C#补充知识——随机数(Random)、多种方法实现string字符串拼接、语句的简写

文章目录 一、随机数1、Random.Next()生成随机整数示例&#xff1a;生成一个随机整数生成指定范围内的随机整数 2、Random.NextSingle生成随机浮点数示例&#xff1a;生成随机浮点数 3、 生成随机字母或字符示例&#xff1a;生成随机字母示例&#xff1a;生成随机小写字母 二、…

吐卡机开发——指令合集—未来之窗行业应用跨平台架构

序号指令10A 09 02 01 01 0D DE20A 09 02 02 01 FD DE30A 09 02 03 01 6D DF40A 09 02 04 01 5D DD50A 09 02 05 01 CD DC60A 09 02 06 01 3D DC70A 09 02 07 01 AD DD80A 09 02 08 01 5D D890A 09 02 09 01 CD D9100A 09 02 10 01 5D D2110A 09 02 11 01 CD D3120A 09 02 12 0…

fpga系列 HDL:verilog 常见错误与注意事项 位宽不匹配+case 语句中没有覆盖所有情况

位宽不匹配问题 信号或操作数的位宽不匹配&#xff0c;可能导致仿真或综合错误。 module top (input wire [3:0] a,output wire [7:0] b );assign b a; endmodulecase 语句中没有覆盖所有情况 module top (input wire [1:0] sel,input wire [7:0] a,input wire [7:0] b,in…

Linux中操作中的无痕命令history技巧

当我们需要查看Linux下的操作记录时&#xff0c;就可以用history命令来查看历史记录 1、关闭history记录功能&#xff0c;如果不想让别人看到自己在Linux上的操作命令&#xff0c;可以用这个命令 set o history 2、打开history记录功能 set -o history3、清空记录 histor…

计算机网络练习题

学习这么多啦&#xff0c;那就简单写几个选择题巩固一下吧&#xff01; 1. 在IPv4分组各字段中&#xff0c;以下最适合携带隐藏信息的是&#xff08;D&#xff09; A、源IP地址 B、版本 C、TTL D、标识 2. OSI 参考模型中&#xff0c;数据链路层的主要功能是&#xff08;…

优化租赁小程序提升服务效率与用户体验的策略与实践

内容概要 在这个快速发展的商业环境中&#xff0c;租赁小程序成为了提升服务效率和用户体验的重要工具。通过对用户需求的深入挖掘&#xff0c;我们发现他们对于功能的便捷性、响应速度和界面的友好性有着极高的期待。因此&#xff0c;针对这些需求&#xff0c;完善租赁小程序…

BP神经网络的反向传播算法

BP神经网络&#xff08;Backpropagation Neural Network&#xff09;是一种常用的多层前馈神经网络&#xff0c;通过反向传播算法进行训练。反向传播算法的核心思想是通过计算损失函数对每个权重的偏导数&#xff0c;从而调整权重&#xff0c;使得网络的预测输出与真实输出之间…

活动预告 | Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁

课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动&#xff0c;了解如何更好地在 Microsoft 365 Defen…

Windows onnxruntime编译openvino

理论上来说&#xff0c;可以直接访问 ONNXRuntime Releases 下载 dll 文件&#xff0c;然后从官方文档中下载缺少的头文件以直接调用&#xff0c;但我没有尝试过。 1. 下载 OpenVINO 包 从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下&#xff0c;例如…

Vue3 中的插槽

Vue3 中插槽的使用&#xff0c;插槽是 Vue 中的一个特别特性&#xff0c;插槽就是模版内容。例如<h1>标题 1</h1>标题 1 就是插槽&#xff0c;Vue 是无法识别模板内容的&#xff0c;只能通过属性进行传递。Slot 主要包括默认、具名和作用域。Slot开发起来难度不大&…

深度学习:基于MindSpore NLP的数据并行训练

什么是数据并行&#xff1f; 数据并行&#xff08;Data Parallelism, DP&#xff09;的核心思想是将大规模的数据集分割成若干个较小的数据子集&#xff0c;并将这些子集分配到不同的 NPU 计算节点上&#xff0c;每个节点运行相同的模型副本&#xff0c;但处理不同的数据子集。…