Logstash
Logstash
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
scan724
这个作者很懒,什么都没留下…
展开
-
logstash 采集的文件mv后
1.logstashinput {file {output {stdout {2.python脚本:# 打开一个文件total 4文件mv后:原创 2023-05-28 16:29:39 · 1132 阅读 · 0 评论 -
logstash 采集应用日志切割问题
虽然文件从test.log mv成了test.log.001,但是inode不变 ,从而写到了test.log.001。原创 2023-05-28 11:22:49 · 1905 阅读 · 0 评论 -
logstash 通配日期目录
logstash原创 2022-12-05 17:14:51 · 706 阅读 · 1 评论 -
logstash 多行合并
logstash原创 2022-11-29 11:05:19 · 1196 阅读 · 0 评论 -
logstash 编码转换
Logstash原创 2022-11-28 18:21:14 · 575 阅读 · 1 评论 -
logstash IOError: invalid null character in command
output { if ([Level] == "RROR" and [newmessage] !~ "SimpleAsyncUncaughtExceptionHandler" ){ if ![newmessage]{ exec { command => "/app/app/logstash/send_dx.sh '%{newmessage}'" } } stdout { codec=>rubydebug{} }...原创 2020-12-11 15:38:04 · 705 阅读 · 0 评论 -
logstash nginx 日志时间戳替换
nginx access log 时间替换:[elk@node2 conf]$ cat logstash_nginx.confinput { file { path=>["/home/elk/conf/nginx.txt"] type=>"system" }}filter {mutate { add_field =>["newmessage","%{type},%{message}"] }...原创 2020-12-07 11:05:59 · 619 阅读 · 0 评论 -
logstash kafka
kafka broker:Broker :一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker可以容纳多个 topic。写events 到一个kafka topic 这个使用 kafka Producer API 写消息到一个broker的topic唯一需要配置的是topic名字,默认编码是Json, 因此这个事件将以json的格式保存在broker上如果你选择一个编码是plain...原创 2020-12-07 10:40:13 · 159 阅读 · 0 评论 -
mutate 字段替换
mutate 字段替换:mutate 过滤允许你执行一般的转换,可以rename,remove,replace 和修改事件中的字段简介 这个插件支持下面的配置选项:add_fieldValue type is hashDefault value is {}如果过滤器成功,可以增加任意字段到这个事件字段名可以是动态的,并包含使用%{Field}的事件部分。mutate { add_field =>["newmessage","%{type},%{mess...原创 2020-12-05 11:49:44 · 665 阅读 · 0 评论 -
codec plain json
[elk@node2 conf]$ cat logstash07.confinput { stdin { } }output {stdout { codec=>rubydebug{} }}[elk@node2 conf]$ logstash -f logstash07.conf!!! Please upgrade your java version, the current version '1.7.0_45-mockbuild_20...原创 2020-12-04 13:50:47 · 258 阅读 · 0 评论 -
logstash codec => multiline 只有下一个匹配出现,才会输出上一个
input { stdin { codec => multiline { pattern => "^\[" negate => true what => "previous" } }}output {stdout { codec=>rubydebug{} }}[elk@node2 conf]$ logstash -f logs...原创 2020-12-03 17:33:41 · 604 阅读 · 0 评论 -
logstash 调用exec 发短信
input { file { path=>["/app/logs/rce-server.inst-2/rce-server.log*"] type=>"xypp-rce-20.16.105.14" codec => multiline { # Grok pattern names are valid! :) pattern => "^\[%{YEAR}%{MONTHNUM}%{MONTHDAY...原创 2020-12-03 15:25:49 · 460 阅读 · 0 评论 -
logstash codec-multiline what => next ,previous
[elk@node2 conf]$ cat tmp.txt[20201203 00:55:29.177][RROR][example][rce]aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbccccccccccccccccdddddddddddddddd[20201203 00:55:29.177][RROR][example][rce]what 设置为previous时:{ "@timestamp" => "2020-10-06T13:42:35.21...原创 2020-12-03 12:04:24 · 339 阅读 · 0 评论 -
logstash grok 自定义正则
Regular ExpressionsGrok sits on top of regular expressions, so any regular expressions are valid in grok as well. The regular expression library is Oniguruma, and you can see the full supported regexp syntax on the Oniguruma site.Groks 位于正则表达式之上,因此任何正则表原创 2020-12-03 11:25:19 · 817 阅读 · 0 评论 -
logstash %{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
如果你希望转换一个语义的数据类型,比如改变一个字符串为一个整型,然后在其后面添加目标数据类型例如 %{NUMBER:num:int} 会转换一个字符串为一个整型 例子, 有了语法和语义的概念,可以从示例日志中提取有用的字段,如以下虚构的http请求日志:55.3.244.1 GET /index.html 15824 0.043模式可以是:%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{N.原创 2020-12-03 10:21:36 · 415 阅读 · 0 评论 -
logstash 匹配 数字和IP
例如 3.44 会匹配一个event 的 duration一个55.3.244.1 会匹配一个请求的clientgrok { match => ["message", ".*?\[(?<time>%{YEAR}%{MONTHNUM}%{MONTHDAY}[- ]%{TIME})\]\s*%{NUMBER:duration}"]}匹配[elk@node2 conf]$ echo '[20201212 08:08:08.888] 33.33' >>te...原创 2020-12-03 10:08:35 · 521 阅读 · 0 评论 -
logstash 处理[20201212 08:08:08.888] 时间戳
logstash 处理 '[20201212 08:08:08.888][RROR][example][rce]' 数据[elk@node2 conf]$ cat logstash04.confinput { file { path=>["/home/elk/conf/test.txt"] type=>"system" }}filter {mutate { add_field =>["newmessa...原创 2020-12-03 09:49:12 · 253 阅读 · 0 评论 -
logstash [(?<time>%{YEAR}%{MONTHNUM}%{MONTHDAY}\s+%{TIME})\] 匹配20201203 00:55:29.177
数据格式:'[20201203 00:55:29.177][RROR][example][rce]'grok { match => ["message", ".*?\[(?<time>%{YEAR}%{MONTHNUM}%{MONTHDAY}\s+%{TIME})\]\s*(?<str>(.*))"]}[elk@node2 conf]$ logstash -f logstash04.conf!!! Please upgrade your ja...原创 2020-12-03 09:43:55 · 254 阅读 · 0 评论 -
logstash ?<time>%{YEAR}[./-]%{MONTHNUM}[./-]%{MONTHDAY}[- ]%{TIME}) 匹配 2016/09/22 08:36:55 aaaaabbb
grok { match => ["message", "(?<time>%{YEAR}[./-]%{MONTHNUM}[./-]%{MONTHDAY}[- ]%{TIME})\s*(?<str>(.*))"]}匹配 2016/09/22 08:36:55 aaaaabbb[elk@node2 conf]$ logstash -f logstash03.conf!!! Please upgrade your java version, the curren...原创 2020-12-03 09:38:05 · 299 阅读 · 0 评论 -
logstash TIMESTAMP_ISO8601 匹配 ‘[2020-12-03 00:55:29.177]
filter {grok { match => ["message","\s*\[%{TIMESTAMP_ISO8601:time}\]\s*(?<str>(.*))"]}date { match => ["syslog_timestamp","MMM dd HH:mm:ss"] add_field =>{'zjzc' => "helloworld ,from %{syslog_timestamp}"} add_tag => [ "...原创 2020-12-03 09:31:25 · 1426 阅读 · 0 评论 -
date 过滤器之add_field
add_field值类型是hash如果filter 是成功的,增加任何字段到这个事件字段名字可以是动态的,包含事件的部分使用%{field}[elk@node2 conf]$ cat logstash01.confinput { file { path=>["/home/elk/conf/test.txt"] type=>"system" }}filter {mutate { add_fie...原创 2020-12-02 20:19:22 · 1037 阅读 · 1 评论 -
logstash date 指令
文件:来自文件的流处理, 通常类似于 tail -F ,但也可以从一开始读取他们默认,假设每个事件都是一行,如果你需要将多个日志行合并到一个事件你需要使用多行codec 或者 filter这个插件目标是跟踪文件改变,发出新的内容 作为它的附加 到每个文件跟踪当前监视文件的位置,插件跟踪当前文件的位置通过记录到一个单独的文件叫做sincedb这个可以让logstash 停止和重启, 在没有漏掉的情况下继续[elk@node2 ~]$ cat .sincedb_cf79ed1..原创 2020-12-02 19:44:21 · 321 阅读 · 0 评论 -
syslog 日志 时间戳转换
例如, syslog 事件通常有时间戳如下:你需要使用 事件戳 MMM dd HH:mm:ss来解析Apr 17 09:32:01 test20201202Apr 17 09:32:01 test20201202Apr 17 09:32:01 test20201202Apr 06 10:32:01 test20201202Jan 06 10:59:01 test20201202Jan 06 10:59:59 test20201202[elk@node2 conf]$ logstash .原创 2020-12-02 17:27:41 · 1390 阅读 · 0 评论 -
logstash file模块
文件:来自文件的流处理, 通常类似于 tail -F ,但也可以从一开始读取他们默认,假设每个事件都是一行,如果你需要将多个日志行合并到一个事件你需要使用多行codec 或者 filter这个插件目标是跟踪文件改变,发出新的内容 作为它的附加 到每个文件跟踪当前监视文件的位置,插件跟踪当前文件的位置通过记录到一个单独的文件叫做sincedb这个可以让logstash 停止和重启, 在没有漏掉的情况下继续[elk@node2 ~]$ cat .sincedb_cf79ed1..原创 2020-12-02 16:02:37 · 509 阅读 · 0 评论 -
Mysql 利用multiline 实现多行匹配
[root@dr-mysql01 mysql]# cat logstash_mysql.confinput { file { type => "zj_mysql" path => ["/data01/applog_backup/zjzc_log/zj-mysql01-slowlog.*"] }原创 2016-08-26 15:24:38 · 1053 阅读 · 0 评论 -
logstash 使用grok正则解析日志
http://xiaorui.cc/2015/01/27/logstash%E4%BD%BF%E7%94%A8grok%E6%AD%A3%E5%88%99%E8%A7%A3%E6%9E%90%E6%97%A5%E5%BF%97%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98/http://grokdebug.herokuapp.com/demo:htt转载 2016-08-27 22:20:33 · 2541 阅读 · 0 评论 -
grok 正则解析日志例子<1>
下面是日志的样子55.3.244.1 GET /index.html 15824 0.043正则的例子%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}配置文件里是怎么写得? input { file { path => “/var/log/http原创 2016-08-27 23:32:10 · 2887 阅读 · 0 评论 -
nginx grok 正则错误的输出情况
nginx 配置:http { include mime.types; default_type application/octet-stream; log_format main '$http_host $server_addr $remote_addr [$time_local] "$request" '原创 2016-08-29 09:54:16 · 2277 阅读 · 0 评论 -
logstash grok正则调试
logstash 正则调试;nginx 配置;log_format main '$remote_addr [$time_local] "$request" ';logstash: "message" =>"%{IPORHOST:clientip} \[%{HTTPDATE:time}\] \"%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{N原创 2016-08-29 15:39:38 · 4026 阅读 · 0 评论 -
logstash grok 解析Nginx
log_format main '$remote_addr [$time_local] "$request" ' '$request_body $status $body_bytes_sent "$http_referer" "$http_user_agent" ' '$request_time $upst原创 2016-08-29 17:41:22 · 3635 阅读 · 0 评论 -
%{TIMESTAMP_ISO8601} 匹配2016-08-29 17:40:01,191
2016-08-29 17:40:01,191 INFO com.zjzc.common.utils.HttpUtil - 请求接口: https://www.zjcap.cn/pay/interface/querypayorder, 耗时=-173 ^\s+%{TIMESTAMP_ISO8601} { "TIMESTAMP_ISO8601": [ [ "原创 2016-08-29 17:49:56 · 8650 阅读 · 1 评论 -
grok 正则也支持常规正则
2016-08-29 17:40:01,19 INFO com.zjzc.common.utils.HttpUtil - 请求接口: https://www.zjcap.cn/pay/interface/querypayorder, 耗时=-173 ^\s*%{TIMESTAMP_ISO8601}{ "TIMESTAMP_ISO8601": [ [ "2016-08原创 2016-08-29 18:40:46 · 973 阅读 · 0 评论 -
logstash 处理tomcat日志
[root@dr-mysql01 tomcat]# cat logstash_tomcat.conf input { file { type => "zj_api" path => ["/data01/applog_backup/zjzc_log/zj-api*"] } fil原创 2016-08-29 20:08:03 · 7716 阅读 · 0 评论 -
其中 (%{WORD:x_forword}|-) |表示或的意思
121.40.205.143 [30/Aug/2016:14:03:08 +0800] "GET /resources/images/favicon.ico HTTP/1.1" - 200 4286 "https://uatest.winfae.com/products/productList.html" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebK原创 2016-08-30 14:21:54 · 579 阅读 · 0 评论 -
logstash nginx 访问日志
log_format main '$remote_addr [$time_local] "$request" ' '$request_body $status $body_bytes_sent "$http_referer" "$http_user_agent" ' '$request_time $http原创 2016-08-30 14:53:45 · 1502 阅读 · 0 评论 -
logstash 处理nginx 错误日志
2016/08/30 14:52:02 [error] 11325#0: *346 open() "/var/www/zjzc-web-frontEnd/%27%22%2f%3E%3C%2fscript%3E%3Cscript%3Ealert%28%29%3C%2fscript%3E" failed (2: No such file or directory), client: 10.171.24原创 2016-08-30 15:00:23 · 2142 阅读 · 0 评论 -
grok 官方文档
grok:解析任意文本并构造它:Grok 是当前最好的方式在logstash 解析蹩脚的非结构化日志数据 到一些结构化的可查询的。这个工具是完美的对于syslog logs, apache和其他webserver logs,mysqllogs,在一般情况下,任何日志格式通常对于人是友好的而不是对于电脑Logstash 有120种模式默认,你可以找到它们在:https:/原创 2016-08-30 13:57:00 · 17897 阅读 · 1 评论 -
(?m)
原创 2016-08-30 17:58:37 · 394 阅读 · 0 评论 -
grok 添加字段
filter { grok { match =>[ "message","%{IPORHOST:clientip} \[%{HTTPDATE:time}\] \"%{WORD:verb} %{URIPATHPARAM:request}\?.* HTTP/%{NUMBER:httpversion}\" \- %{NUMBER:http_status原创 2016-09-11 11:01:11 · 2509 阅读 · 0 评论 -
logstash 解析mysql slow log
# User@Host: zjzc_app[zjzc_app] @ [10.252.148.16xx] Id: 6043127# Query_time: 2.581184 Lock_time: 0.000336 Rows_sent: 6 Rows_examined: 6331310SET timestamp=1472536079;select temp.* from ( SELECT原创 2016-08-30 20:24:35 · 1281 阅读 · 0 评论