如何从logstash输出grep particulr字段
我正试图从logstash 1.repositories#create 2.的输出中仅对几个字段进行grep处理。\“repo\”:\“username/reponame\”。请分享您的想法,以grep此输出的特定信息,并将其分配给另一个变量 “消息”11月01日20:35:15 10-25-15-25-128-66 git-66 gituHuHuHupupupupun审计::{“演员ip”男::“192.168.1.1.1”1,,从”从”从”从”从”从”从”从”从”到”从”从”从”从”到”从”从”从”从”从”到”从”从”从”储存库中::::“存储库”储存库中。3.168.168.1.1.168.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.“lon\”:null}}}, 我使用这个syslog.conf文件来获取输出如何从logstash输出grep particulr字段,logstash,logstash-grok,Logstash,Logstash Grok,我正试图从logstash 1.repositories#create 2.的输出中仅对几个字段进行grep处理。\“repo\”:\“username/reponame\”。请分享您的想法,以grep此输出的特定信息,并将其分配给另一个变量 “消息”11月01日20:35:15 10-25-15-25-128-66 git-66 gituHuHuHupupupupun审计::{“演员ip”男::“192.168.1.1.1”1,,从”从”从”从”从”从”从”从”从”到”从”从”从”从”到”从”
input {
tcp {
port => 8088
type => syslog
}
udp {
port => 8088
type => syslog
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp}"
}
grep {
match => { "message" => "repositories#create" }
}
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
我无法为您的回复添加我的评论,非常感谢您的回复
请分享您的想法,仅从这个输出中获取username:和repo:值,我正在尝试分配这个特定输出的值,再次感谢
消息:“github_audit:{“actor_ip:”192.168.1.1”,“from:“repositories#create”,“actor:”username/logstashrepo”,“user:”username”,“created_at:”1416299104782,“action:”repo.create”,“user_id:”1033,“repo_id:”44744,“actor_id:”1033,“data:{“actor_location:”{“actor_location:”{“location:{“location:{“lat:null”,“lon:null”}}},
@版本:“1”,
@时间戳:“2014-11-18T08:25:05.427Z”,
主持人:“15-274-145-63”,
键入:“系统日志”,
syslog5424_pri:“190”,
时间戳:“11月18日00:25:05”,
演员叶澍鹖:“10.239.37.185”,
来自:“存储库#创建”,
演员:“用户名”,
repo:“用户名/logstashrepo”,
用户:“用户名”,
创建地址:1416299104782,
行动:“回购.创建”,
用户id:1033,
回购编号:44744,
actor_id:1033,使用a将JSON有效负载提取到单独的字段中,然后使用a从JSON对象提取字段。下面的示例可以工作,但仅从前缀为“github_audit:”的消息中提取JSON负载。我还猜测,时间戳后面的字段是一个主机名,它应该覆盖当前“主机”字段中的任何内容。别忘了添加一个函数,将“timestamp”字段中的字符串解析为“@timestamp”
filter {
grok {
match => [
"message",
"%{SYSLOG5424PRI}%{SYSLOGTIMESTAMP:timestamp} %{HOSTNAME:host} %{GREEDYDATA:message}"
]
overwrite => ["host", "message"]
}
if [message] =~ /^github_audit: / {
grok {
match => ["message", "^github_audit: %{GREEDYDATA:json_payload}"]
}
json {
source => "json_payload"
remove_field => "json_payload"
}
}
}