728x90
반응형

 

어플리케이션이 구동 중 발생하는 Exception을 모니터링할 수 있는 시스템을 위해 ELK Stack 환경을 구성하려고 합니다.

 

 

 

ELS (ElK Stack) 구성

Java 8

Elasticsearch 7.1

Logstash 7.1

Kibana 7.1

 

 

 

Mac OS X에 ELK Stack을 구성해보겠습니다.

 

www.elastic.co/kr/

 

오픈 소스 검색: Elasticsearch, ELK Stack 및 Kibana 개발사 | Elastic

우리는 Elastic (ELK) Stack -- Elasticsearch, Kibana, Beats 및 Logstash를 만든 개발사입니다. 클라우드 또는 온-프레미스에서 데이터를 안전하고 안정적으로 검색하고 분석하고 시각화하세요.

www.elastic.co

 

 

Homebrew 설치

Homebrew를 사용하여 ELK를 설치 합니다.

 

기존 환경에 Homebrew 가 설치되어있다면 업데이트를 진행합니다.

brew update

 

 

 

설치하지 않았다면 터미널에서 아래의 명령어로 설치를 진행합니다.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

 

 

 

 

Java 설치

ELK는 JVM 환경에서 동작하기 때문에 Java 설치는 필수 입니다.

 

최소 Java 8을 설치 해야 합니다.

www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

java -version을 확인해보니 10.0.2 버전을 사용하고 있네요.

 

Mac OS X 는 기본적으로 Java 가 설치되어있음으로 해당 명령어로 현재 버전을 확인할 수 있습니다.

java -version

java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

 

 

 

공식 사이트 내용을 보면 Logstash는 Java9를 지원하지 않기 때문에 Java8을 맞춰줘야 됩니다.

 

만약 다른 Java 버전을 사용한다면 brew services에 등록된 상태를 보면 error로 보여집니다. (pipeline.yml 에서 오류가 발생하여 start가 안되던 문제였습니다.)

 

www.elastic.co/guide/kr/logstash/current/installing-logstash.html

 

Logstash 설치 | Logstash 참조 [5.4] | Elastic

앞서 설명한 echo 메서드를 사용하여 Logstash 리포지토리를 추가합니다. add-apt-repository`는 사용하지 마십시오. 이는 `deb-src 항목도 추가하는데 소스 패키지가 제공되지 않습니다. deb-src 항목을 추가

www.elastic.co

Logstash에는 Java 8이 필요합니다. Java 9는 지원되지 않습니다. official Oracle distribution 또는 오픈소스 배포판(예: OpenJDK)을 사용합니다.

 

 

 

vi 편집기나 open 명령어로 파일을 열어서 JAVA_HOME 환경변수를 Java 8로 변경하였습니다.

open ~/.bash_profile
or
vi ~/.bash_profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home

 

 

 

source 명령어를 통해 환경변수를 다시 로드 합니다.

source ~/.bash_profile

 

 

 

 

Elasticsearch 설치

www.elastic.co/kr/downloads/past-releases/elasticsearch-7-2-0

 

Elasticsearch 7.2.0 | Elastic

View the detailed release notes here. Not the version you're looking for? View past releases. The pure Apache 2.0 licensed distribution is available here. The distribution that's not bundled with a JDK is available here. You can obtain the source code for

www.elastic.co

기본 환경이 만들어졌다면 Elasticsearch 아래의 명령어로 구성 요소 설치를 진행합니다.

 

Elasticsearch는 데이터 저장소 및 검색엔진 역할을 합니다.

brew install elasticsearch && brew info elasticsearch

 

 

 

Homebrew로 Elasticsearch 를 시작합니다.

brew services start elasticsearch
==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Enumerating objects: 34, done.
remote: Counting objects: 100% (34/34), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 1155 (delta 13), reused 13 (delta 9), pack-reused 1121
Receiving objects: 100% (1155/1155), 335.91 KiB | 5.17 MiB/s, done.
Resolving deltas: 100% (490/490), done.
Tapped 1 command (41 files, 425.7KB).
==> Successfully started `elasticsearch` (label: homebrew.mxcl.elasticsearch)

 

 

 

터미널을 통해 curl 명령어로 접속하거나 브라우저를 통해 http://localhost:9200 으로 접속하면 아래와 같이 출력됩니다.

curl -X GET localhost:9200
{
  "name" : "gigasui-MacBookPro.local",
  "cluster_name" : "elasticsearch_brew",
  "cluster_uuid" : "8TGDIm0lT6-IjUmdz29zig",
  "version" : {
    "number" : "7.10.1-SNAPSHOT",
    "build_flavor" : "oss",
    "build_type" : "tar",
    "build_hash" : "unknown",
    "build_date" : "2020-12-09T19:28:12.431816Z",
    "build_snapshot" : true,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

 

 

 

 

Logstash 설치

www.elastic.co/kr/downloads/past-releases/logstash-7-2-0

 

Logstash 7.2.0 | Elastic

View the detailed release notes here.

www.elastic.co

이번엔 아래의 명령어로 Logstash 설치를 진행합니다.

 

Logstash는 데이터 수집, 필터링, Elasticsearch에 색인하는 역할을 합니다.

brew install logstash

 

 

 

아직 Logstash 파이프라인을 구성하지 않아서 의미가 없지만 아래에서 구성을 진행하도록 하겠습니다.

brew services start logstash
==> Successfully started `logstash` (label: homebrew.mxcl.logstash)

 

 

 

 

Kibana 설치

www.elastic.co/kr/downloads/past-releases/kibana-7-2-0

 

Kibana 7.2.0 | Elastic

View the detailed release notes here.

www.elastic.co

ELK의 마지막 구성 요소인 Kibana를 설치하겠습니다.

 

Kibana는 수집된 데이터를 시각화 해주는 역할을 합니다.

 

아래의 명령어를 통해 Kibana 설치를 진행합니다.

brew install kibana

 

 

 

Kibana를 실행합니다.

brew services start kibana
==> Successfully started `kibana` (label: homebrew.mxcl.kibana)

 

 

 

 

Kibana를 시작하고 모든 ELK 서비스가 실행 중인지 확인합니다.

 

logstash 서비스 상태는 error로 나오는데 다음글에서 다루겠습니다.

brew services list
Name          Status  User  Plist
elasticsearch started gigas /Users/gigas/Library/LaunchAgents/homebrew.mxcl.elasticsearch.plist
kibana        started gigas /Users/gigas/Library/LaunchAgents/homebrew.mxcl.kibana.plist
logstash      error   gigas /Users/gigas/Library/LaunchAgents/homebrew.mxcl.logstash.plist

 

 

 

Kibana를 접속하려면 설정을 변경해야합니다.

 

Kibana 설정이 있는 kibana.yml 파일을 열어줍니다.

sudo vi /usr/local/etc/kibana/kibana.yml

 

 

 

server.port 와 elasticsearch.hosts 라인의 주석을 해제 합니다.

 

기본값으로 진행을 하지만 서버 환경에 맞는 설정으로 수정하면 됩니다.

server.port: 5601
elasticsearch.hosts: ["http://localhost:9200"]

 

 

기본적으로 Kibana server.host는 localhost 로 되어있습니다.

 

외부접속을 허용할 수 있도록 server.host="localhost" 주석을 해제하고 특정 ip를 허용하면 됩니다.

 

0.0.0.0 으로 모든 ip를 허용하도록 처리해보겠습니다.

server.host: "0.0.0.0"

 

 

 

수정 뒤 Kibana를 재시작 합니다.

brew services restart kibana

 

 

 

설정 수정이 완료되었다면 Kibana 상태를 보여주는 페이지이동해 봅니다.

 

정상적으로 설정이 되었다면 아래처럼 페이지 내용이 보여집니다.

http://localhost:5601/status

 

 

이것으로 기본적은 설치를 마무리 하였습니다.

 

728x90
반응형

+ Recent posts