× 00 개요
배아 줄기 점점 더 많은 데이터, 당신은 지정된 로그 전에 로그를 삭제해야 내에서 현재 축적의 긴 기간 후, 버전 6.3.x가있다 ES.
예를 들어, 단지 다음 60 일 전에 모든 인덱스와 로그를 삭제할 것, 로그 60 일이 필요합니다.
하루 전에 XX 0x01로는 삭제 인덱스 및 데이터 ES
# ! / 빈 / SH # ES 버전 6.3.x가 서브 인덱스는 () 함수 { # 여기에서, 당신은 인덱스의 이름이 삭제 될 입력, 예를 들어, 'filebeat-'를 입력하려면 여기를, filebeat-XXX 지수 로그를 삭제하는 방법 인덱스 _ = $ (1) # 여기에서, 당신은 예를 들어, 여기에 60을 입력 할 데이터의 마지막 60 일을 유지하려면, 데이터를 유지하는 일 수를 입력합니다 savedays = $ 2 # 변수 $ 3에이 일 수있다, 예를 들어, 당신은 데이터의 60 일 계속 여기에 90을 입력합니다하면 데이터가이 시간의 첫번째 60~90일을 삭제하는 것입니다 (60) <90 = 그동안 [$ savedays -le $ 3 ] 해야 할 것 # ES 인덱스 데이터 형식 일부 2019년 11월 26일 일부 2019년 11월 26일 어디 format_day = ' % Y. % m. % D ' # format_day = 'Y-M- % D % %' # 여기에 인덱스 date 명령에 의해 타임 스탬프 부분은, 예를 들어, 2019년 11월 26일 또는 2019년 11월 26일 sevendayago은 =`날짜 -d " - $ {} savedays 일 " + $ {}`format_day # 여기서 전체 데이터 ES 인덱스 데이터 포맷 filebeat-2019.11.26-2019-11-26 또는 filebeat 형성 인덱스 = $ INDEX_NAME sevendayago $ # $ 에코 sevendayago 에코 $ 인덱스 컬의 -XDELETE " http://127.0.0.1:9200/${index} " #의 종료 0 # 인덱스의 첫 번째 60 일 제거한 후까지 인덱스의 시작의 첫 번째 육십일일을 삭제하려면 90 일 savedays =`expr에 $ savedays + 1 ' 끝난 } # 당신은 인덱스, 가까운 인덱스를 삭제 한 다음 인덱스 삭제하기 전에 #이 논리적으로 위의와 논리적으로 일치 삭제 () 함수의 closeIndex { INDEX_NAME = $ 1 savedays = $ 2 동안 [$ savedays -le $ 3 ] 해야 할 것 format_day = ' % Y. % m % D. ' # format_day = '% Y- % M- % D' sevendayago = -d '날짜 ' - $ {} savedays 일 " + $ {}`format_day 인덱스 = $ 인덱스 _ $ sevendayago # 에코 $ sevendayago 에코 $ 인덱스 컬 -XPOST " http://127.0.0.1:9200/${index}/_close?pretty " #의 종료 0 savedays =`expr에 $ savedays + 1 ' 끝난 } # 인덱스의 하루 90 닫기 날 (60) closeIndex 'filebeat-'(60) (90) # 인덱스의 90 일에 60 일을 삭제 deleteIndex 'filebeat-'(60) (90)
0x03으로 요약
위의 쉘 스크립트의 콘텐츠는 crontab을 정기적으로 작업을 추가 할 수 있습니다.