본문 바로가기

공부방

(97)
인덱스와 샤드 Elasticsearch 용어 정리 엘라스틱 서치에 들어가는 낱개의 데이터 -> 도큐먼트 도큐먼트의 논리적인 집합 -> 인덱스 (RDBMS 테이블) 인덱스는 하나의 저장되지 않고 샤드라는 개념으로 쪼개서 저장이 됨 -> 여러개의 노드에 흩어져서 저장이 됨 RDBMS Elasticsearch 테이블 인덱스 파티션 샤드 (Shard) 행(Row). 레코드 도큐먼트 (Document) 열 필드 (Field) 스키마 (Schema) 매핑 (Mapping) SQL Query DSL 프라이머리 샤드(Primary Shard)와 복제본(Replica) 인덱스를 생성할 때 별도의 설정을 하지 않으면 7.0 버전부터는 디폴트로 1개의 인덱스는 1개의 샤드로 구성 6.x 이하 버전에서는 5개로 구성 클러스터에 노드를 추가..
pm2를 이용한 데몬 실행 Elasticsearch background 실행 Elasticsearch를 실행할 때 추가적으로 -d, -p 옵션을 사용할 수 있다. -d: Elasticsearch를 백그라운드 데몬으로 실행합니다. -p : Elasticsearch 프로세스 ID를 지정한 파일에 저장합니다. 실행이 종료되면 저장된 파일은 자동으로 삭제됩니다. echo 'bin/elasticsearch -d -p es.pid' > start.sh echo 'kill `cat es.pid`' > stop.sh chmod 755 start.sh stop.sh Kibana background 실행 kibana process는 node로 찾아야 한다. ps -ef | grep node nvm 설치 node 버전 설치 kibana 폴더에 있는 ..
Kibana 아래와 같은 서버 구성을 진행할 것이다. 키바나는 elastic 3번 노드 인스턴스에 같이 올려볼 것이다. client가 elastic1에 접속할 때는 curl command를 통해서 통신 kibana에 접속할 때는 kibana와 elasticsearch와 rest api를 통신 우리는 kibana 브라우저에 접속하고 5601 포트를 사용 5601 방화벽도 열어줘야함 노드 상태 확인 // local curl "http://elastic-1:9200/_cat/nodes?v" -u elastic // 패스워드 입력 kibana.yaml 파일에서 중요한 설정을 살펴보자 // /etc/hosts에 mapping 시켜놓았기 때문에 아래와 같이 사용 가능 server.host: "elastic-3" server.n..
elasticsearch - TLS 적용 보안 기능을 활성화 하자 elasticsearch.yaml 파일 설정 추가 xpack.security.enabled: true 노드간의 통신 보안 https://www.elastic.co/guide/en/elasticsearch/reference/7.11/encrypting-internode.html 공개키 생성 ./bin/elasticsearch-certutil ca // 공개키 패스워드 설정하라는 창이 뜸, 비밀번호를 입력한다 votmdnjem Certification 생성 elasticsearch는 certification 만들 수 있는 certutil을 제공 https://www.elastic.co/guide/en/elasticsearch/reference/7.11/encrypting-commun..
elasticsearch 기본 설정 및 cluster 구성 1. Elasticsearch 실행 상태 확인 아래 명령어를 통해서 elasticsearch가 돌아가고 있는 것을 확인할 수 있습니다. curl localhost:9200 만약에 curl: (7) Failed connect to localhost:9200; Connection refused 와 같은 에러가 발생한다면 elasticsearch.yml 파일을 통해 network 설정을 확인해보면 됩니다. // less -S ./elasticsearch-7.9.1/config/elasticsearch.yml // 만약 운영하고 있는 서버라면 내부 ip만을 통해 접근할 수 있도록 설정해 놓았을 수도 있을겁니다. // 아래와 같이 특정 ip만 접근 가능하도록 설정할 수도 있습니다. network.host: 10...
Kafka zookeeper -> kafka 실행 # kafka-topics --bootstrap-server 192.168.56.101:9092 # topic 생성 kafka-topics --bootstrap-server localhost:9092 --create --topic test_topic_01 # 9092 브로커에 생성 되어있는 topic들을 확인할 수 있다. kafka-topics --bootstrap-server localhost:9092 --list # partition 3개를 가지는 topic을 만든다. kafka-topics --bootstrap-server localhost:9092 --create --topic test_topic_02 --partitions 3 # topic의 정보를 살펴봄..
logstash https://www.youtube.com/watch?v=E3CSlX--6Cc C:\Users\Public\Documents windows ubuntu 에서 확인 curl "localhost:9200" #index 확인 GET _cat/indices GET logstash-*/_search # command로 logstash 실행 logstash.bat -e "input { stdin { } } output { stdout {} }" # 파일로 logstash 실행 logstash.bat -f ../upload_setting.conf ## 파일 내용 input { stdin {} } output { stdout {} } # 파일로 logstash 실행 (tcp) logstash.bat -f ../uplo..
[Java] 제네릭과 와일드카드 타입에 대해 쉽고 완벽하게 이해하기(공변과 불공변, 상한 타입과 하한 타입) [망나니 개발자] https://mangkyu.tistory.com/241 이번에는 공변과 불공변에 대해서 먼저 알아보고, 이후에 제네릭과 와일드카드에 대해 알아보도록 하겠습니다. 많은 분들이 어려워하는 제네릭인 만큼 쉽게 풀어서 설명하려고 노력했는데, 많은 도움이 되기를 바라겠습니다. 1. 공변과 불공변 [ 공변과 불공변 ] 제네릭과 와일드카드에 대해 이해하기 위해서 우리는 먼저 공변과 불공변에 대해 알아야 한다. 공변과 불공변은 각각 다음과 같다. 공변(covariant) : A가 B의 하위 타입일 때, T 가 T의 하위 타입이면 T는 공변 불공변(invariant) : A가 B의 하위 타입일 때, T 가 T의 하위 타입이 아니면 T는 불공변 대표적으로 배열은 공변이며, 제네릭은 불공변인데 이를 코드..