내 작은 서버에 많은 로그 데이터가 들어 오기 때문에 매일 crontab을 사용하여 Elasticsearch 로그 데이터를 삭제하고 싶습니다. 인터넷에서 많은 연구를 해오 고 큐레이터 또는 Elasticsearch _ttl을 사용하여 해결책을 찾았습니다. 그러나 아무것도 나를 위해 일하지 않는다. 이제 더 이상 구글이나 구글에 어떤 단서가 없습니다. 왜냐하면 내가 Google에서 찾은 많은 것들을 시도했지만 아무 것도 작동하지 않기 때문입니다. 그러니 명확한 지시로 도와주세요.crontab을 사용하여 Elasticsearch에서 로그 데이터를 자동으로 삭제합니다.
2
A
답변
4
Elasticsearch Curator은 색인에 저장된 개별 문서가 아니라 색인 만 삭제할 수 있습니다.
색인을 삭제하려고하고 색인 이름이 예상 기준을 충족 시키면 큐레이터가 작업을 수행합니다.
큐레이터는 인덱스에 접두어와 시간 문자열이 있어야합니다. 예를 들어 --prefix logstash- --timestring %Y.%m.%d
logstash-2014.07.30
큐레이터 명령은 인덱스가 이러한 기준에 일치 삭제라는 이름의 인덱스 일치합니다 :
- 연결 호스트
es-host
- 시간 단위
days
- 지수의 elasticsearch하기를보다 오래된 1
time-unit
- 접두어는
prod-
- IME 문자열 year.month.day (
%Y.%m.%d
)은 다음과 같습니다
curator --host es-host delete indices --older-than 1 --time-unit days --prefix prod- --timestring %Y.%m.%d
TTL은 주어진 시간을 살았 후 Elasticsearch 문서를 삭제시키기위한 것입니다. delete from TABLE where datestamp < 2014.06.01
과 같은 백만 개의 SQL 문이 분할 된 테이블을 삭제하는 것보다 비용이 많이 드는 것과 같은 이유 때문에 사용 사례를 로깅 할 때 문제가됩니다. drop table DATA-2014.05
. 디스크 I/O가 많이 발생하고 성능이 저하 될 수 있습니다. 초당 수백 (또는 그 이상)의 문서를 연속적으로 인덱싱하지 않으면 TTL이 여전히 적합 할 수 있습니다. 해당 내용에 대한 자세한 내용은 here을 참조하십시오.
ES에서 로그를 어떻게 인덱싱합니까 ?? 강 또는 귀하의 코드를 사용하여 ?? – BlackPOP
Logstash를 사용하여 로그 데이터를 ES로 보냅니다. 귀하의 CURL을 시도했지만 오류가 발생합니다. –
무슨 오류있어 ?? – BlackPOP