엘라스틱서치에 데이터를 잔득 넣어놨는데, 데이터가 조회가 안되는 일이 발생했다.
...랜섬웨어 공격당했던데?
누구든 봐도 상관없는 데이터였지만, 랜섬웨어로 데이터가 날라가는건(....) 안된다;
그래서 보안설정이 디폴트로 들어가있는 v8로 변경했다.
version: '3.3'
services:
data:
image: elasticsearch:8.4.3
container_name: elasticsearch
environment:
- cluster.name=es-docker-cluster
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms2g -Xmx2g"
- bootstrap.memory_lock= true
- xpack.security.enabled= true
- xpack.license.self_generated.type=basic
ports:
- 9200:9200
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
networks:
- elastic
kibana:
image: kibana:8.4.3
environment:
ELASTICSEARCH_UTL : http://elasticsearch:9200
ELASTICSEARCH_HOSTS: http://elasticsearch:9200
ELASTICSEARCH_USERNAME: ID
ELASTICSEARCH_PASSWORD: PASSWORD
ports:
- 5601:5601
networks:
- elastic
volumes:
elasticsearch-data:
driver: local
networks:
elastic:
driver: bridge
그러면 아래처럼 로컬에서도 접근이 불가능해진다.
인증서를 만든다거나 다양한 방식이 있었는데, 그냥 난 아이디 비밀번호로 접근하기로 했다(ㅎㅎ..)
이렇게 하면 여러가지 정보가 나오는데, 이 중 elastic에 있는 것으로 로그인을 하면 접근이 가능해진다.
그리고 비밀번호를 바꾸거나, 새롭게 적용하려면 아래 명령어를 쓰면 된다.
그렇지만 로그인창이 떠있는 것으로 접근을 한다면 DSL Query를 사용할 때, 어떻게 해야할지 찾아봤는데...?
로그인창이 없어도 접근 엄청 잘된다 ! !
근데 템플릿이 잘 안들어간다(...) 보안설정때문에 그런 것 같은데(...)
그래서 그냥 REST API로 꾸겨넣었다
PUT http://localhost:9200/_template/address
근데 이거 레거시라네(허참...) 나중에 고쳐놔야겠다 ㅠㅠ
자주 쓰는 path
http://localhost:9200/_cat/indices?v
http://localhost:9200/_template/address?pretty
http://localhost:9200/address/_count
http://localhost:9200/address/_search?pretty
Elasticsearch Connectiong
Elasticsearch IP Filter <- 원래 이거로 하려고 했더니, 라이센스 결제를 해야만 쓸 수 있더라(ㅋㅋ)
ELK STACK 보안설정
ELK docker-compose.yaml 설정방법