도커와 함께하는 엘라스틱서치

도커와 함께하는 엘라스틱서치

갑자기 visual하게 통계를 보고 싶어서 오픈소스를 알아보던 중 엘라스틱서치를 접하게 되었다. 그런데 엘라스틱서치에 대해서 문서를 보던중 ELK 스택에 대해서 보게 되었고 보통 이 세가지가 같이 사용된다고 한다. ELK가 의미하는 것들은 다음과 같다.

  • E : ElasticSearch - 분산형 RESTful 검색 및 분석 엔진
  • L : Logstash - 로그 수집도구
  • K : Kibana - 시각화툴(Visualization)

설치하는 법과 간단한 사용법들을 천천히 정리해보자

엘라스틱서치 설치

ELK 스택은 JVM 위에서 돌아가기 때문에 JDK를 필요로 한다. 때문에 자바를 우선 설치해주어야 한다.

1
2
3
apt-get update -y
add-apt-repository -y ppa:webupd8team/java
apt-get -y install oracle-java8-installer

만약 도커 컨테이너를 통해서 우분투를 설치하고 add-apt-repository 를 사용하려고 하면 해당 명령어가 없다고 할 것이다. 그럴땐 다음의 명령어를 실행해주고 재설치를 한다.

1
2
3
4
5
6
7
apt-get install software-properties-common

# 다시 설치도전!
add-apt-repository -y ppa:webupd8team/java
apt-get update -y
apt-get -y install oracle-java8-installer
java -version # 설치된 자바 버전 확인

자바를 설치했다면 이젠 엘라스틱서치를 설치하면된다.

1
2
3
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.1.deb
dpkg -i elasticsearch-5.3.1.deb
systemctl enable elasticsearch.service # (자동 재시작)

또한 관련 파일들의 경로는 아래와 같다.

  • 설치 경로 : /usr/share/elasticsearch
  • 설정파일 경로 : /etc/elasticsearch
  • 스크립트 파일 : /etc/init.d/elasticsearch

앞으로 service elasticsearch start 명령어를 통해서 엘라스틱서치를 실행할 수 있다.

1
2
3
service elasticsearch start
service elasticsearch stop
service elasticsearch restart

설치후 정상적으로 작동한다면 curl 통해 제대로 동작하는지 본다

1
curl -XGET "localhost:9200"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 출력 화면

{
"name" : "StB5wZb",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "BG-SG1nxS0y8TlGtF7ffsdafsdubow",
"version" : {
"number" : "5.3.1",
"build_hash" : "5f9cf58",
"build_date" : "2017-04-17T15:52:53.846Z",
"build_snapshot" : false,
"lucene_version" : "6.4.2"
},
"tagline" : "You Know, for Search"
}

만약 엘라스틱서치의 설정 내용들은 보고 싶다면 /etc/elasticsearch/elasticsearch.yml 를 참고하면 된다. 나의 경우 건드려본 설정은 network.host 밖에 없다.

키바나 설치

다음으로 시각화 툴인 키바나를 설치해보자.

1
2
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.3.1-amd64.deb
dpkg -i kibana-5.3.1-amd64.deb

엘라스틱서치와 같이 사용하기 위해 elasticsearch.yml의 설정을 조금 건드려주어야 한다. 키바나 설정파일 경로는 /etc/kibana/kibana.yml 이다.

1
2
3
# vi /etc/kibana/kibana.yml
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

위의 경우에는 로컬에서 실행하기 때문에 localhost로 해주었지만 서버를 사용하고 있다면 해당 서버의 주소를 설정해주어야 한다.

마지막으로 키바나를 실행해보자.

1
/usr/share/kibana/bin/kibana

로그스태시 설치

마지막으로 로그스태시도 설치해보자!!

1
2
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.deb # 엘라스틱 다운로드 페이지에서 링크 주소 복사
dpkg -i logstash-6.3.0.deb

설치 완료!! 그 다음에 설정을 해주어야 한다. 로그스태시 실행 파일이 /usr/share/logstash/bin에 있기때문에 해당경로로 들어간 후 설정파일과 함께 실행해주어야한다.

1
2
3
4
5
6
7
# vi logstash-simple.conf
input {
stdin { }
}
output {
stdout { }
}

위 와 같이 간단하게 테스트를 위해 설정파일을 만들고 로그스태시를 실행한다

1
./logstash -f logstash-simple.conf
Share

모든 도커 컨테이너 / 이미지 삭제하기

도커 컨테이너 / 이미지 전체 삭제

도커 연습하다 보면 이것저것 이미지들을 많이 받기때문에 용량이 모자랄 때가 있는데 지금이 그 때이다..

생성해놓은 컨테이너도 많고 받아놓은 이미지들도 많아서 일일히 지우기 힘드니 한번에 지우고 싶을땐 다음과 같이 한다.
주의 - 모든 데이터가 날라간다!!

1
2
3
4
5
# 컨테이너 전체 삭제
docker rm $(docker ps -a -q)

# 이미지 전체 삭제
docker rmi $(docker images -q)

컨테이너를 삭제하려면 해당 컨테이너가 stop된 상태여야한다.

Share

ubuntu 16.04에서 add-apt-repository 설치하기

add-apt-repository 설치하기

로그 분석을 위해서 ELK 스택을 설치해보고자 한다. 현재 운영중인 식단알리미 말고 새로운 가상서버를 임대 받기에는 돈이 모자라서 어떻게 연습할 서버를 구하지 하던중, 최근에 잠깐 공부한 도커를 가지고 구현해보려고 한다. ubuntu 16.04를 설치했고 java8을 설치하기위해 add-apt-repository를 사용하려고 했는데 해당 명령어가 없다는 문제가 발생하였다. 그래서 검색을 하던 중 다음과 같은 해결방법을 찾았다.

1
apt-get install software-properties-common

위 와 같은 명령어를 이용하여 해당 패키지를 설치하면 add-apt-repository를 사용할 수 있다!!

Share