ElasticSearch 일 별 index 생 성 방법 2 가지
4196 단어 Elastic
1.사용
Delete By Query API
부실Delete By Query API 는 문 서 를 검색 하고 삭제 할 수 있 습 니 다.이 방법 을 사용 하면 모든 로그 가 하나의 index 에 있 고 만 료 된 로 그 를 검색 하여 삭제 하 는 것 입 니 다.예 를 들 면:
POST twitter/_delete_by_query
{
"query": {
"range" : {
"@timestamp" : {
"lt" : "now-30d/d"
}
}
}
}
가능 하지만 다음 과 같은 문제 가 존재 합 니 다.1.검색 은 추가 적 인 성능 소 모 를 초래 할 수 있 습 니 다.특히 로 그 량 이 많 을 때.2.30 일의 로 그 는 하나의 index 에 있어 성능 에 영향 을 줍 니 다.
2.사용
Rollover
Rollover Index 는 별명 을 통 해 번호 가 있 는 index 를 생 성 합 니 다.예 를 들 면:# PUT / with URI encoding:
PUT /%3Clogs-%7Bnow%2Fd%7D-000001%3E
{
"aliases": {
"logs_write": {}
}
}
# Add 1000+ doc, or run the next day
POST /logs_write/_rollover
{
"conditions": {
"max_age": "1d",
"max_docs": 1000
}
}
이 방법의 원 리 는 사실 1.당일 날짜 와 번 호 를 가 진 index
logs-2017.06.18-000001
를 새로 만 드 는 것 이다.2.이 index 에 별명 을 지정 합 니 다logs_write
.3.logs_write
가 가리 키 는 index 가 rollover 의 조건 을 만족 시 키 는 지 확인 하고 만족 하면 다음 index 를 새로 만 들 고 별명 을 새로운 index 로 바 꿉 니 다.4.당일 문서 수가 초과 되 어 다음 index,번호+1,즉logs-2017.06.18-000002
를 새로 만 듭 니 다.5.하루 가 지나 면 다음 index,날짜+1,번호+1,즉logs-2017.06.19-000002
를 새로 만 듭 니 다.6.logs_write
최신 index 를 영원히 가리 키 기 때문에 로 그 를 쓰 면 index 의 번 호 를 고려 하지 않 고 영원히 쓸 수 있 습 니 다logs_write
.조심 하 세 요!POST /logs_write/_rollover
이 동작 은 Elastic Search 내 에 만들어 진 정시 메커니즘 이 아 닙 니 다!즉,정기 적 으로 실행POST /logs_write/_rollover
하지 않 으 면 현재 index 는 기한 이 지나 거나 문서 수가 초과 되 더 라 도 rollover 가 되 지 않 습 니 다.3.Date Math 사용 하기
제2 장의 방법 은 기 존의 index 의 날짜 화 문 제 를 해결 하 는 만능 적 인 방법 이다.새로운 index 라면 더욱 간단 합 니 다.Date Math 가 있 는 index 에 문 서 를 직접 제출 하면 됩 니 다.예 를 들 어:
# PUT / with URI encoding:
PUT /%3Clogs-%7Bnow%2Fd%7D%3E
{ "key": "value" }
logstash 가 제출 한 로그 라면 다음 과 같이 설정 합 니 다.
output {
elasticsearch {
hosts => ["127.0.0.1"]
index => "logs-%{+YYYY.MM.dd}"
document_type => "logs_type"
}
}
이렇게 하면 자동 으로 매일 index 를 생 성 할 수 있다.이 날짜 형식 은 반드시
YYYY.MM.dd
이 어야 우리 가 자주 사용 하 는 형 태 를 얻 을 수 있 습 니 다.예 를 들 어 2017.6.26 과 같은 날 짜 는YYYY.mm.dd
또는YYYY.MM.DD
모두 안 됩 니 다.4.만 료 로그 삭제
두 가지 방법 으로 만 료 로 그 를 삭제 하 는 방법 은 매우 간단 하 며,계획 작업 을 작성 하여 정기 적 으로 실행 하면 된다.예 를 들 면:
# DELETE / with URI encoding:
DELETE /%3Clogs-%7Bnow-30d%2Fd%7D*%3E
그리고
Delete By Query
에 비해 전체 index 를 직접 삭제 하 는 방법 이 빠르다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Elasticsearch 베이스 04 - 매핑된 작업버전 정보 버전 Elasticsearch 버전 JAVA 의존 버전 Elasticsearch 7.x는 이전 버전과 상당히 큰 변화가 있기 때문에 본 편의 내용, 특히 JAVA 코드의 조작은 이전 버전을 사용하는 학우들...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.