Hello all,
We are using curator to delete indices after a certain amount of time in our environments. I am facing an issue with understanding how to make it work for deleting indices based on time but leaving some indices which have a particular string in the name.
For example : Delete all indices older than 4 weeks except the indices which have "secure" in it's name.
Here is my configuration :
---
actions:
1:
action: delete_indices
description: >-
Delete indices older than 4 weeks (based on index name).
options:
ignore_empty_list: True
timeout_override:
continue_if_exception: True
disable_action: False
filters:
- filtertype: pattern
kind: regex
value: '*secure*'
exclude: True
- filtertype: pattern
kind: regex
value: '*loyalty*'
exclude: True
- filtertype: age
source: name
direction: older
timestring: '%Y.%W'
unit: weeks
unit_count: 4
exclude:
Here is the error I get when I run it.
Failed to complete action: delete_indices. <class 'sre_constants.error'>: nothing to repeat
Could anybody help me understand how to do it or what am I doing wrong here?
Thank you.
I found out what the issue was. It was with regex. I changed the regex to '.*secure*.'. I have one similar index called '.*unsecure*.'and I would like to make another action file to delete these both indices after 8 weeks instead of 4 weeks for all other indices. I am not able to combine both. When I make two filters and run curator, it gives me empty list.
You should immediately recognize the problem in that '.*secure*.' will also match '.*unsecure*.' because of how regular expressions work.
If you want to use the period . as part of the match, then you should escape it with a backslash. I am going on the assumption that you're looking for the final period with this example:
'.*secure.*\.' will match indexname.secure.12345, and also indexname.unsecure.23456.
However, '.*\.secure\..*' will match indexname.secure.12345 and not match indexname.unsecure.23456.
Hi @theuntergeek ,
Thank you for your reply. Yes, you are right about the regex. I have forgot to update the question because I have changed the index name totally, it's "loyalty". So in short, I have one index called "secure"(ex my-index.secure-2021.24) and the other one is "loyalty"(ex my-index.loyalty-2021.24). Separately both work as expected but I am not able to combine both in one action file.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.