如何在 Logstash 中将事件标记为 "Looked At"
How to mark an event as "Looked At" in Logstash
所以我正在使用此查询查询 Logstash,returns 堆栈顶部的所有内容:
{
"query": {
"match_all": { }
},
"size": 7,
"_source": {
"includes": [ "transport", "dest", "packet_source", "id_orig_p", "id_orig_p", "id_orig_h", "conn_state", "id_resp_h", "id_resp_p", "service", "proto" ]
} ,
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}
但是,当我查询数据时,如果没有新数据进入,我会得到重复项。有没有办法用整数字段或其他东西将每个唯一事件 ID 标记为 "LookedAt"?
我需要这样做来减少 C# 中查询的垃圾回收,但是存储所有 ID 和进行字符串比较非常繁重,而且当我有 Logstash 时似乎没有必要。
我的建议是使用时间戳并将其包含在您的查询中。例如,从第一个查询的结果中,您可以获取最新事件的时间戳(即结果中的第一个事件),然后当您进行第二个查询时,您会询问时间戳高于该时间戳的事件。
因此,您进行第一个查询:
{
"query": {
"match_all": {}
},
"size": 7,
"_source": {
"includes": [
"transport",
...
]
},
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}
然后说在结果中,最新事件的时间戳是2017-02-28T10:02:23.000Z
。
下一个查询将是:
{
"query": {
"range": {
"timestamp": {
"gt": "2017-02-28T10:02:23.000Z"
}
}
},
"size": 7,
"_source": {
"includes": [
"transport",
...
]
},
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}
以此类推,保证您永远不会有重复的事件。
所以我正在使用此查询查询 Logstash,returns 堆栈顶部的所有内容:
{
"query": {
"match_all": { }
},
"size": 7,
"_source": {
"includes": [ "transport", "dest", "packet_source", "id_orig_p", "id_orig_p", "id_orig_h", "conn_state", "id_resp_h", "id_resp_p", "service", "proto" ]
} ,
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}
但是,当我查询数据时,如果没有新数据进入,我会得到重复项。有没有办法用整数字段或其他东西将每个唯一事件 ID 标记为 "LookedAt"?
我需要这样做来减少 C# 中查询的垃圾回收,但是存储所有 ID 和进行字符串比较非常繁重,而且当我有 Logstash 时似乎没有必要。
我的建议是使用时间戳并将其包含在您的查询中。例如,从第一个查询的结果中,您可以获取最新事件的时间戳(即结果中的第一个事件),然后当您进行第二个查询时,您会询问时间戳高于该时间戳的事件。
因此,您进行第一个查询:
{
"query": {
"match_all": {}
},
"size": 7,
"_source": {
"includes": [
"transport",
...
]
},
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}
然后说在结果中,最新事件的时间戳是2017-02-28T10:02:23.000Z
。
下一个查询将是:
{
"query": {
"range": {
"timestamp": {
"gt": "2017-02-28T10:02:23.000Z"
}
}
},
"size": 7,
"_source": {
"includes": [
"transport",
...
]
},
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}
以此类推,保证您永远不会有重复的事件。