从Graylog中删除特定的日志消息

时间:2017-01-06 05:11:37

标签: curl elasticsearch graylog2 graylog

我需要从Graylog中删除特定的日志消息,但是似乎没有任何公共API可以执行此操作(通过Graylog API浏览器)。

关于如何做到这一点的文档非常少。我发现了一些随机文章,暗示它可能是通过curl和查询API实现的,但没有任何实质性内容。

鉴于可以通过" http://1.2.3.4:5678"并且我收到了ID为" 94c84300-d3c1-11e6-b900-005056ac343f"在索引" graylog_0"我该如何删除此消息?

1 个答案:

答案 0 :(得分:2)

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

shared_ptr

然后你可以删除你的消息

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

或者,您可能还想让Graylog重新计算索引范围,因此您可以直接对Graylog服务器运行:

curl -XPUT 'http://localhost:9200/graylog_0/_settings' -d '{
   "index" : {
      "blocks.write" : true
   }
}'

<强>更新

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

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