Logstash Basic & Plugins
Logstash 简介
输入、过滤器和输出:
Logstash 能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用 Grok 从非结构化数据中派生出结构,从 IP 地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。
官方图文并茂简介:https://www.elastic.co/cn/logstash
插件离线管理
插件打包
确保要打包的所有插件都已安装在登台服务器上,并且该登台服务器可以访问Internet。
运行bin/logstash-plugin prepare-offline-pack
子命令来打包插件和依赖项:
插件安装
Windows example:
Linux example:
插件升级
更多参考:https://www.elastic.co/guide/en/logstash/current/offline-plugins.html#_updating_offline_plugins
插件移除
让 logstash 可以读取特定的事件源, 事件源可以是从stdin
屏幕输入读取,可以从file
指定的文件,也可以从es
,filebeat
,kafka
,redis
等读取。
stadin
:从标准输入读取
file
:从文件读取数据
beats
:从 Elastic beats 获取事件
Kafka
:将 kafka topic 中的数据读取为事件
更多插件:https://www.elastic.co/guide/en/logstash/current/input-plugins.html
Filter Plugins
数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便进行更强大的分析和实现商业价值。
需要注意的是,对于filter.conf
配置是可以热加载的,如果时间格式配置错误,会导致logstash进程挂掉,对于问题的排查,可以自行查询logstash的日志。
grok
:解析文本并构造 ,把非结构化日志数据通过正则解析成结构化和可查询化
date
:日期解析 解析字段中的日期,然后转存到***@timestamp***
mutate
:对字段做处理 重命名、删除、替换和修改字段
mutate.covert
:类型转换类型包括:integer,float,integer_eu,float_eu,string和boolean
mutate.split
:使用分隔符把字符串分割成数组
mutate.merge
: 合并字段 。数组和字符串 ,字符串和字符串
remove_field
:移除字段
join
:用分隔符连接数组,如果不是数组则不做处理
gsub
:用正则或者字符串替换字段值。仅对字符串有效
update
:更新字段。如果字段不存在,则不做处理
geoip
:根据来自Maxmind GeoLite2数据库的数据添加有关IP地址的地理位置的信息
urldecode
:用于解码被编码的字段,可以解决URL中 中文乱码的问题
kv
:通过指定分隔符将字符串分割成key/value
useragent
:添加有关用户代理(如系列,操作系统,版本和设备)的信息
更多插件:https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
Codec Plugins
codec 本质上是流过滤器,可以作为input
或output
插件的一部分运行。
multiline codec plugin
:多行合并, 处理堆栈日志或者其他带有换行符日志需要用到
更多插件:https://www.elastic.co/guide/en/logstash/current/codec-plugins.html
Output Plugins
将事件发送到特定目标。
更多插件:https://www.elastic.co/guide/en/logstash/current/output-plugins.html
参考链接