반응형

elasticsearch 23

Elasticsearch snapshot - AWS S3 에러 유형 공유

신규 노드를 추가하면서 elasticsearch에 repository-s3 plug-in 설치 하는걸 잊어 버렸더니 아래와 같은 에러가 발생하기 시작했습니다. { "snapshot" : { "snapshot" : "snapshot_name", "uuid" : "vQeYKiYaTaq0rOiGXbjQEQ", "version_id" : 7110099, "version" : "7.11.0", "indices" : [ "my_index" ], "data_streams" : [ ], "include_global_state" : true, "state" : "PARTIAL", "start_time" : "2021-06-09T05:57:10.373Z", "start_time_in_millis" : 16232182303..

Metricbeat 설치 및 Kibana 연동

8 버전부터는 Kibana의 Stack Monitoring이 기존 방식으로 지원하지 않는다고 메세지가 떠서 Metricbeat를 설치해 Monitoring 설정을 진행했습니다. Self-managed(On premise)로 운영중인 세 대(172.31.1.10 ~ 12)의 Elasticsearch의 모니터링을 위해 별도 시스템 혹은 기존 시스템에 metricbeat를 설치하여 모니터링 한다고 가정합니다. 그리고 시스템 로그는 추가하지 않게 설정해 보겠습니다. Metricbeat는 실행을 위해 root 권한이 필요합니다. 1. 설치 > curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.11.0-linux-x86_6..

elasticsearch-js로 인데스가 존재하는지 확인하는 방법

nodejs에서 elasticsearch-js를 이용해 데이터 분석, 취합을 할 때, 잘못된 인덱스 이름, 혹은 존재하지 않는 인덱스 이름으로 인해 문제가 발생하는 경우가 있습니다. 이 경우 검색이 중단되고 404 에러가 발생하며 중단됩니다. 에러를 막기위해 검색 시 아래 예제와 같이 ignore키워드를 지정할 수 있습니다. const result = await client.search({ index: 'my-index', from: 20, size: 10, body: { foo: 'bar' } }, { ignore: [404], maxRetries: 3 }) 이 방법은 에러를 막을 수 있지만, 검색이 중단되는 것은 동일합니다. 예를들어 ['seoul', 'busan', 'jeju']라는 인덱스들에서 어..

linux 환경 변수 세팅하는 방법

주로 윈도우나 맥을 사용하다보니 환경 변수 세팅하는데 별로 신경을 안썼는데 리눅스에서는 거의 사용해 본 적이 없어 이번에 정리를 해봤습니다. elasticsearch node를 재가동 할 일이 있었는데 시스템 재기동 후 jdk 폴더를 못 찾는 경우가 발생했습니다. openjdk를 포함했고 설치하면서 초기 설치 시 세팅이 되는 것으로 아는데... 의아했지만 모두들 ES 정상화를 기다리고 있어 일단 바로 세팅하기로 했습니다. elasticsearch(7.x 이상)에 포함된 jdk는 elasticsearch폴더안에 jdk 폴더에 포함되어 있습니다. /etc/profile 에 환경 변수를 세팅할 수 있으며 jdk 폴더 경로를 아래와 같이 추가했습니다. > vi /etc/profile . . . export JA..

윈도우 Logstash 에서 Kinesis 연동하기

일반적으로 linux에서 logstash를 운영하지만 테스트를 위해 windows에서 실행해 봤습니다. AWS 계정 설정 c:\users\사용하는계정\.aws에 config , credentials 파일을 생성합니다. config파일에는 아래와 같이 default resion을 설정합니다. [default] region = ap-northeast-2 credentials 파일에는 kinesis에 접근 가능한 인증정보를 삽입합니다. [default] aws_access_key_id = access_key_id_from_iam_account aws_secret_access_key = access_key_id_from_iam_account kinesis 플러그인 설치 logstash 플러그인 툴로 아래와 같이..

S3에 스냅샷 생성 및 복원

Elasticsearch 7.11.0 On Premise 환경에서 AWS S3 에 스냅샷을 생성하는 내용을 정리해 보았습니다. Cloud 환경에서는 조금 다를 수 있으니 참고하세요. 아래 내용은 www.elastic.co/guide/en/elasticsearch/plugins/7.11/repository-s3.html#repository-s3-install의 내용을 참고해서 정리했습니다. 이해를 돕기 위해 이미지가 많이 첨부된 관계로 서술형 문체보다는 간략히 요점만 정리했습니다. 아래와 같은 순서로 정리되어 있습니다. 1. AWS S3 플러그인 설치 2. AWS S3에 스냅샷 저장소 생성 3. Kibana에 AWS S3 저장소 등록 4. 스냅샷 생성/복구하기 5. 검색 가능한 스냅샷 설정 1. AWS S..

ES Cluster Nodes Rolling Upgrade 절차 정리

가동중인 Elasticsearch cluster nodes를 가동 상태를 유지하며 업그레이드 하는 절차를 정리했습니다. Rolling upgrades 에 대한 공식 문서는 이 링크를 참고하세요. 시작 전 각 node에 최신 버전을 미리 설치 후 config 파일을 설정하여 기존 버전을 종료한 후 바로 실행할 수 있게 준비를 해두면 좀 더 빠르게 업그레이드를 마무리 할 수 있습니다. 각 노드를 종료하기 전 allocation이 진행되지 않도록 아래와 같이 allocation 을 disable 시킵니다. # 노드 종료 전 PUT _cluster/settings { "persistent": { "cluster.routing.allocation.enable": "none", "cluster.routing.reb..

Elasticsearch 7.10 Cluster 설치하기

최근 시스템 확장을 위해 Elasticsearch의 최신 버전을 설치하면서 정리한 글입니다. 이전에 정리했던 6.x 버전 설치기, cluster 설정을 보면서 설치중에 불필요한 내용 정리하고 합칠 내용 합쳐서 최신 내용으로 다시 업데이트 하려 정리합니다. 6.x 버전에서는 Java 8을 별도 설치해야 했지만 7.x 버전에서는 OpenJDK가 포함되어 있어 별도 설치할 필요는 없습니다. 이 글은 CentOS 7.9.2009 (Core) release, 그리고 Elasticsearch 7.10.1 버전을 기준으로 작성되었습니다. (곧 7.11이 나올 예정인가보네요. 8.x로 넘어가기 전 마지막 버전일 줄 알았는데... -0-a ) 일단 해당 서버로 elasticsearch-7.10.1-linux-x86_64..

2TB x 2개를 RAID로 묶은 4TB SSD 사용하기

elasticsearch를 위한 머신들을 업그레이드 테스트를 위해 조립용 PC에 OS 용 1TB SSD x 1, 데이타 용 2TB SSD x2 를 RAID 0로 묶어 4TB 디스크를 설치하며 기록으로 남길 겸 내용을 정리해 보았습니다. (가끔 여러분도 뭔가 몰라서 검색하다보면 자신이 올린 글이 나올때가 있지 않나요? ^^a) 이 글은 Raid로 묶인 디바이스를 확인, 파티셔닝하여 /data 라는 폴더에 연결하는 것 까지가 목표입니다. 가능한 잡다한 것들은 버리고 흐름을 정리하는데 집중하겠습니다. 그럼 시작해 보겠습니다. 장치 인식 시키기 bios에서 1TB SSD는 Non-raid로 2TB x 2 는 Raid0로 설정 후 os를 설치합니다. 저는 CentOS 7.x minimal 버전을 설치했습니다. 아..

precision_threshold 이야기

DSL에서는 precision_threshold값을 적용하여 사용했는데, Kibana에서는 적용해본 적이 없다가 사용하시는 동료들이 값이 이상하다며 내용을 찾아보게 되었습니다. Metrics에 Y-Axis의 Aggregation을 Unique Count로 지정했을때 아래와 같은 값이 출력되고 있었습니다. 이 값이 terms로 뽑을 때와 3% 정도 차이가 나고 있어 DSL에 적용한 precision_threshold 설정을 적용해 봤습니다. Metrics 하단에 JSON input 란이 있습니다. 여기에 아래와 같이 입력하면 됩니다. precision_thredshold의 기본값은 3000이며, 최대값은 40000입니다. 아래와 같이 조정이 되지만 terms와 완전히 동일한 값이 되지는 않습니다. hits..

반응형