Docker Centos7에 ElasticSearch + Kibana 설치하여 외부 로컬에서 접속하기 (with Docker Hub)

반응형
728x90
반응형

들어가기전

docker에 centos7을 설치 후, 해당 컨테이너를 실행하고 그 안에 Elasticsearch와 Kibana를 설치하여 localhost:5601로 kibana를 띄어볼 것이다. 이를 위한 순서는 아래와 같다.

 

1) Centos 설치
2) JDK 설치
3) Elasticsearch 설치
4) Kibana 설치

 

 

 

1. Centos 설치

 

- docker 이미지 다운로드

docker pull centos

 

- docker 이미지 조회

docker images

 

- docker 이미지 실행

docker run -d --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 5601:5601 이미지명:이미지태그 /usr/sbin/init
여기서, -p 5601:5601을 적어야 외부 로컬에서 해당 컨테이너 안의 Kibana 접속이 가능하다.
포트포워딩을 실행한다는 의미로, localhost:5601 접속시 해당 컨테이너의 5601 포트로 접속시켜준다.

 

# multi port
# docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>)

docker run -d --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 5601:5601 -p 9200:9200 이미지명:이미지태그 /usr/sbin/init
-p 5601:5601 -p 9200:9200 이렇게 포트를 2개 지정할 수 있다. (Elasticsearch, Kibana를 각각 포트포워딩 해준다)

 

- docker 컨테이너 확인

docker ps

 

- docker 컨테이너 접속

docker exec -it 컨테이너ID /bin/bash

 

 

 

 

2. Java 설치 in Centos

 

- java 설치

yum install java-1.8.0-openjdk-devel.x86_64

 

- which 명령어 사용을 위한 설치

yum install which

 

- javac 설치 여부 확인

which javac

결과 : /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el8_2.x86_64/bin/javac

 

- java_home 설정을 위한 파일 수정

vi /etc/profile

 

- 위 파일의 마지막에 which javac으로 확인했던 경로와 함께 아래 한줄을 추가

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el8_2.x86_64
source /etc/profile

 

- 파일 저장

source 파일경로

 

 

 

 

3. Elasticsearch 설치 in Centos

 

- wget 명령어 사용을 위한 설치

yum install wget

 

- Elasticsearch 7.10 버전 설치

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-x86_64.rpm

rpm -i elasticsearch-7.10.0-x86_64.rpm

 

- 방화벽 해제를 위한 명령어 설치

yum install firewalld

yum install system-config-firewall

 

- 방화벽 명령어 사용 허가

systemctl unmask firewalld
systemctl enable firewalld
systemctl start firewalld

 

- 방화벽 해제

firewall-cmd --permanent --zone=public --add-port=9200/tcp

firewall-cmd --reload

firewall-cmd --list-ports

 

- Elasticsearch 시작/종료/상태확인

systemctl enable elasticsearch
systemctl start elasticsearch
systemctl stop elasticsearch
systemctl status elasticsearch

 

- 외부에서 접속 허용

# 파일 열기
vi /etc/elasticsearch/elasticsearch.yml

# 수정
network.host: 192.168.0.1 -> network.host: 0.0.0.0으로 변경

# 저장
esc + :wq!

 

- Elasticsearch 작동 확인

curl -XGET localhost:9200

 

 

4. Kibana 설치 in Centos

 

- Kibana 설치

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-x86_64.rpm

rpm -i kibana-7.10.0-x86_64.rpm

 

- Kibana 파일 수정

vi /etc/kibana/kibana.yml

# 여기서, port, host 등 주석을 제거한다.
# 외부 접속을 위해서 localhost를 0.0.0.0 으로 변경한다.

 

- 방화벽 해제

firewall-cmd --permanent --zone=public --add-port=5601/tcp

firewall-cmd --permanent --zone=public --add-service=kibana

firewall-cmd --reload

firewall-cmd --list-ports

 

- Kibana 시작/종료

systemctl status kibana

systemctl start kibana

 

 

 

이후 해당 컨테이너 저장하기 (Docker Hub- Commit/Push)

 

- docker login

docker login

# username 입력
# password 입력
# 로그인 이후에도 아래 commit/push 가 되지 않는다면 로그아웃 후 재로그인 해보자.

docker logout

 

- docker commit

docker commit 컨테이너ID 이미지명

 

- docker push

docker push 이미지명

 

 

여기서, 만약 push가 작동하지 않는다면 이미지명에 dockerId가 포함되어있는지 체크하자.

dockerID/centos 이런식으로 이미지명에 ID가 존재해야 push가 가능하다.

 

- 이미지명 변경

docker tag 기존이미지명 new이미지명

 

 

 

반응형

Designed by JB FACTORY