본문 바로가기
[ElasticSeach] Elastic Stack(ELK 스택) 무엇일까! ELK 스택은 Elasticsearch, Logstash, kibana로 구성된 오픈 소스 프로젝트의 조합으로 각 프로젝트의 앞글자를 따서 ELK Stack이라 부릅니다. ▶ E : ElasticSearch 검색 및 분석 엔진 ▶ L : Logstash 여러 소스에서 동시에 데이터를 수집하여 변환 한 후 ElasticSearch같은 stash로 전송하는 데이터 처리 파이프 라인 (데이터 수집 도구) ▶ K : Kibana elasticSearch에서 차트와 그래프를 이용해 데이터를 시각화 하게 해주는 시각화 툴 ▶ Beat 단일 목적의 데이터 수집기, Logstash나 Elasticsearch에 데이터 전송 Elasticsearch에 직접 전송이 필요한 경우 직접 전송하면 된다. ● ELK Stack 구.. 2022. 7. 13.
[ElasticSearch] 노드, 인덱스, 샤드 기본 개념 ● 노드 노드란? → 컴퓨터 과학에 쓰이는 기초적인 단위, 대형 네트워크에서는 장치나 데이터 지점을 의미함. 엘라스틱 서치에는 4종류의 노드가 있고 노드마다 하는 일이 다르다. * ElasticSearch는 아무리 작은 클러스터라도 데이터 가용성과 무결성을위해 최소 3개의 노드로 구성할것을 권장합니다. 엘라스틱 서치의 4가지 노드 1. 마스터 노드 (MasterNode) - 클러스터를 관리한다. - 노드 추가와 제거 같은 클러스터의 전반적인 관리를 담당 - 네트워크 속도가 빠르고, 지연이 없는 노드를 마스터 노드로 선정해야함. elasticsearch.yml 설정 node.master: true node.data: false node.ingest: false node.remote.connect: fals.. 2022. 7. 13.
[ElasticSearch] data too large data... 문제kibana에서 "data too large data..." 에러가 보이면서 정상적으로 처리되지 않았다.해결 - PostMan을 사용하여 아래의 API 호출 PUT localhost:9200/_cluster/settings{ "transient": { "indices.breaker.total.limit": "80%" }} persistent : 영구적으로 설정 유지 indices.breaker.total.limit은 동적으로 변경 가능한 설정, 즉시 적용됨 따라서, 위와 같이 transient 설정을 적용하신 후에는 Elasticsearch를 재시작할 필요가 없음 2021. 6. 15.
[ElasticSearch] 샤드 개수 부족으로 로그 수집 안되는 문제 문제갑자기 로그가 수집이 안되는 현상이 발생 원인logstash 로그를 확인해보았는데, 아래와 같은 로그가 찍혀있는데, 확인해보니 샤드 개수 부족이었다.- [logstash.outputs.elasticsearch][main] Could not index event to Elasticsearch.{:status=>400, :action=>["index", {:_id=>nil, :_index=>"인덱스인덱스인덱스", :routing=>nil, :_type=>"_doc"}, #], :response=>{"index"=>{"_index"=>"인덱스인덱스인덱스", "_type"=>"_doc", "_id"=>nil, "status"=>400, "error"=>{"type"=>"validation_exception".. 2021. 6. 11.
[logstash] logstash로 'file' 수집하기 사용특정 인덱스가 수집 되지 않아서, 로그를 재수집 하고 싶을때 사용하면 유용방법logstash config의 input/ output 부분 수정하면 file을 수집하여 elasticsearch로 보낸다. logstash.conf 파일을 열고 아래의 내용을 적는다. ex) logstash.conf input { file { path=>"D:/TestFilePath/textlog.txt" start_position => "beginning" type => textfile }}filter { #...}output { if [type] == "textfile" { elasticsearch { hosts => ["http://localhost:9200","http://localhost:9.. 2020. 10. 12.