从Graylog删除特定的日志消息

我需要从Graylog删除特定的日志消息,但是似乎没有任何公共API可以做到这一点(由Graylog API浏览器进行)。

关于如何执行此操作的文档很少。我发现一些随机文章暗示可以通过curl和查询API来实现,但是没有实质性意义。

鉴于可以通过“ http://1.2.3.4:5678 ” 访问灰色日志,并且我在索引“

graylog_0”中收到一条ID为“ 94c84300-d3c1-11e6-b900-005056ac343f”的消息,我将如何删除该消息?

回答:

由于您有权访问ES,因此可以直接在ES中删除消息。如果您的消息在过去的索引中,则您需要使其再次可写,因为所有过去的索引都由Graylog设置为只读,因此首先运行此命令:

curl -XPUT 'http://localhost:9200/graylog_0/_settings' -d '{

"index" : {

"blocks.write" : false

}

}'

然后您可以删除您的消息

curl -XDELETE 'http://localhost:9200/graylog_0/message/94c84300-d3c1-11e6-b900-005056ac343f

最后,您需要再次将索引设为只读

curl -XPUT 'http://localhost:9200/graylog_0/_settings' -d '{

"index" : {

"blocks.write" : true

}

}'

(可选)您可能还希望使Graylog重新计算索引范围,因此可以直接在Graylog服务器上运行它:

curl -XPOST http://1.2.3.4:5678/system/indices/ranges/rebuild

如果要批量删除多封邮件,可以轻松使用批量API:

curl -XPOST 'http://localhost:9200/graylog_0/message' -d '

{"delete":{ "_id": "94c84300-d3c1-11e6-b900-005056ac343f"}}

{"delete":{ "_id": "94c84300-d3c1-11e6-b900-005056ac543e"}}

{"delete":{ "_id": "94c84300-d3c1-11e6-b900-005056ac8694"}}

{"delete":{ "_id": "94c84300-d3c1-11e6-b900-005056ac1264"}}

'

以上是 从Graylog删除特定的日志消息 的全部内容, 来源链接: utcz.com/qa/432934.html

回到顶部