ELK 연구 노트는 Elasticsearch 지정된 날짜 데이터를 삭제 (+ 스크립트 작업 시간 초과)

× 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을 정기적으로 작업을 추가 할 수 있습니다.

 

추천

출처www.cnblogs.com/JetpropelledSnake/p/11944381.html