( Dois je préciser qu'une sauvegarde restaurable est requise avant ces manipulations ?)
Suite à ...
l'injection malencontreuse de 15 millions de lignes de stacktrace java parce que le dev ne sait pas faire un try/catch (alors que Graylog ne déverse que 4 millions par mois) : Je dois me lancer dans cette quête de récupération d'espace.
La bonne requête
C'est la partie facile avec un peu de docs et :
curl -XPOST http://localhost:9200/graylog_13/delete_by_query -d'
{
"query": {
"match": {
"application": "poweringJvm"
}
}
}'
Bon, c'est pas si simple
Plein d'erreurs défilent :
[FORBIDDEN/8/index write (api)]
Allons y calmement en analysant. En effet, Graylog verrouille en écriture les indexs pleins.
Pour le voir :
curl http://localhost:9200/graylog_13/_settings
....
"settings": {
"index": {
"number_of_shards": "4",
"blocks": {
"write": "true"
...
La documentation indique :
index.blocks.write
Set to true to disable data write operations against the index.
Le message est clair.
Pour déverrouiller :
curl -X PUT http://localhost:9200/graylog_13/_settings -d'
{
"index" : {
"blocks" : {
"write": false
}
}
}'
Et hop, on renvoie la requête de delete!
Les documents sont enfin supprimés !! Ah.. bah non, juste taggé «delete» : l'espace n'est pas récupéré pour autant ! Pas d'inquiétude : y a une API pour ça
curl -XPOST 'http://localhost:9200/_forcemerge?only_expunge_deletes=true'
FIN !