ElasticSearch

Elasticsearch 보안 – 인증서

Elasticsearch 가 버전이 높아짐에 따라 인증서에 대한 이해가 필요하게 되었다. 사실 이 인증서가 필요한 이유가 Elastic 에서 배포하는 X-Pack 중에 Security 플러그인 때문인데, 이 Security 를 활성화 하게 되면 TCP, HTTP 통신을 TLS 통신을 하도록 강제하고 있다. 문제는 Elasticsearch 자바 기반이며, 따라서 생성하는 파일이 여느 다른 인증서와는 다른 면도 있다. ‘다른 면도 있다’ 라고 표현한 이유는 일반적인 PEM 형식의 보안키와 인증서를 모두 지원하지만 여전히 자바 세계에서만 통용되는 방법을 여전히 고수하고 있기 때문이다. keystore 파일 최신 버전의 Elasticsearch 7 을 설치하게 […]

ElasticSearch

Nginx 로그를 위한 Logstash Pipeline 설정하기

Logstash 를 이용해 로그를 프로세싱 해보자. Logstash 에 대한 기초적인 설정은 다음글에서 확인 가능하다. Logstash 살펴보기 또, 이 글은 Elastic 홈페이지에 내용을 기반으로 한다. Parsing Logs with Logstash filebeat 설정 및 기동 먼저 파일 filebeat 설정을 다음과 한다.

Elastic 홈페이지에는 간단하게 설정하도록 나오지만 여기서는 몇가지 설정을 추가 하였다. tags 를 설정하였고 fields 도 추가 하였다. 다음과 같이 시작 한다.

logstash Nginx pipeline 설정 먼저 filebeat 으로부터 메시지가 잘 들어오는지 디버깅을 먼저 해보자. 다음과 같이 간단하게 설정을 해본다.

[…]

ElasticSearch

Logstash 살펴보기

ELK 스택에서 로그를 프로세싱하고 저장소에 실시간으로 적재해주는 프로그램인 Logstash 에 대해서 살펴본다. 자바 프로그램 Logstash 는 자바 프로그램이다. 그래서 Java Runtime 이 필요하다. 그런데, Logstash 에는 Java Runtime 이 내장되어 있어서 별도로 설치하지 않아도 된다. 하지만 이 자바 때문에 프로그램이 무겁다. Logstash 정의 다음과 같이 정의가 머리속에 담아 두기 좋다. 실시간 파이프라인(Pipeline) 기능을 가진 데이터 수집 엔진을 가진 오픈 소스 소프트웨어다. 파이프라인(Pipeline) Logstash 는 파이프라인(Pipeline) 형식으로 데이터를 처리 한다. INPUTS 은 데이터를 입력받는 부분에 대한 설정이다. OUTPUTS 은 어디로 데이터를 […]

ElasticSearch

로그 저장과 트래킹

로그(log) 는 각종 시스템과 소프트웨어 프로그램의 정보를 담고 있다. 한 사람이 하나의 시스템, 하나의 소프트웨어 프로그램을 다루거나 관리를 한다면 별 문제가 없겠지만 요즘 처럼 분산형 시스템과 소프트웨어를 사용하는 시대에 로그를 하나씩 다 들여다 본다는 건 불가능이다. 거기다 로그를 본다는 것도 여간 쉬운일이 아니다. 매우 지루하고 많은 시간을 허비해야 하는데, 수 많은 로그속에서 내가 필요로하는 정보를 찾기란 매우 어렵다. 그래서 이것을 손쉽게 처리할 수 있도록 도와주는 프로그램 그룹이 만들어졌는데, 다음과 같은 것이다. Splunk 스플렁크(Splunk) 는 사용 소프트웨어다. 대량으로 로그를 저장하고 분석하도록 […]

ElasticSearch

ElasticSearch RPM 패키지 설치 Security

ElasticSearch 를 RPM 패키지로 설치할 경우에 Security 설정을 어떻게 해야하는지에 대해서 다룬다. Security 설정은 X-Pack 을 활성화 하기 위함이며 이를 위해서는 인증서 관련 문제를 해결해야 한다. 사례 일단, 엘라스틱 서치는 대부분 3대로 구성한다. 대부분 호스트를 다음과 같이 정할 것이다. es-01 es-02 es-03 이때, es-01 서버에서 다음과 같은 작업을 해야 한다. es-01 서버에서 인증서 작업 X-Pack 을 활성화하기 위해서는 보안을 활성화해야 하는데, 보안을 활성화할 경우에 각 노드별로 SSL 통신을 하게된다. 이때 인증서가 필요한데, 인증서 작업을 해야 한다. 중요한 것은 인증서를 한 […]

ElasticSearch

ElasticSearch 7.13 설치

ElasticSearch 7.13 으로 넘어오면서 변화가 있었다. 그중에는 Node Type 이 없어지고 이제는 Node Role 로 바뀌었다. 6.4 에서 다양하게 있었던 Node Type 은 비교적 대거 정리가 된 느낌이다. Node Role Node Role 은 ElasticSearch 7.13 의 설정 파일인 elasticsearch.yml 파일에서 정의하도록 되어 있는데, 여기에 정의할 수 있는 목록은 다음과 같다. master data data_content data_hot data_warm data_cold data_frozen ingest ml remote_cluster_client transform 필요한 것이 master, data 정도라고 보면 된다. 하나의 노드에 다양한 Role 를 부여할 수 있다. 형식은 다음과 같다.

[…]

ElasticSearch

ElasticSearch 7.13 기반 책 리뷰

오래전에 “시작하세요! 엘라스틱서치” 라는 책을 구매해 본적이 있다. 지금도 소장하고 있는데, 엘라스틱서치에 대한 기본적인 개념을 익히는데 손색이 없는 책이라 평가하고 싶다. 단, 내가 볼때에 엘라스틱서치에 버전이 6.4 이다 보니 없어져버린 기능들은, 예를들어 펫싯, 볼 필요가 없었다. 오늘은 최신의 ElasticSearch 7.13 버전에서 이 책에 내용을 한번 살펴보고자 한다. 엘라스틱서치는 버전이 올라감에 따라 변경된 부분이 상당히 많아진다는 점을 생각해보면 꽤 도움이 될법한 내용들이라 생각한다. 엘라스틱서치의 데이터 구조 – 타입(Type) 없어짐 엘라스틱서치의 데이터 구조를 설명에서 인덱스(Index), 타입(Type), 도큐먼트(Document) 단위로 이루어진다고 설명했다. 하지만 엘라스틱서치 […]

ElasticSearch

ElasticSearch Multi Instance 설치.

ElasticSearch 도 Tomcat 과 같이 Multi Instance 설치를 지원한다. 이는 ES_HOME의 쉘 환경 변수를 지정함으로써 실현된다. Tomcat 의 경우에는 CATALINA_HOME, CATALINA_BASE 였다. 대신 ElasticSearch 에서는 ES_BASE 가 없다. ENV 변수 ElasticSearch 에서 사용하는 환경변수는 다음과 같다. ES_HOME: elasticsearch 바이너리 설치 위치. ES_PATH_CONF: elasticsearch 설정파일이 있는 디렉토리 위치. ES_TMPDIR: elasticsearch 임시 디렉토리 위 두 변수를 가지고 MultiInstance 구성을 할 수있다. ES_HOME 설치 ES_HOME 설치는 elasticsearch 의 바이너리를 압축해제함으로써 끝이 난다.

/opt 디렉토리에 압축을 해제한 후에 심볼릭링크를 걸어준다. ES_BASE 생성 ES_BASE […]

ElasticSearch

ElasticSearch 6.4.x 노리(Nori) 형태소 분석기

ElasticSearch 는 루신을 기반으로 하는 전문 텍스트 검색 엔진이다. ElasticSearch 는 어떤 문장에 대해서 이를 분해한다. 문제는 ElasticSearch 가 외국에서 만든거라서 영어를 기반으로한 문장에 대해서는 분해하고 분석해준다. 하지만 그외에 대해서는 공백을 기반으로 문장을 분석한다. 여기서 문장에 대해서 좀 더 생각을 해봐야 한다. 문장을 분석할때에는 약간의 지식이 필요하다. 예를들어 다음과 같은게 있다고 하자. 고양이는 귀엽다 ElasticSearch 가 이 문장을 분석하면 ‘고양이는’, ‘귀엽다’ 로 분해한다. 하지만 이 문장에는 ‘고양이’ 라는 명사가 있고 ‘는’ 이라는 조사, ‘귀엽다’ 라는 동사가 존재한다. (정확한지는 나도 잘 […]