본문 바로가기
elastic-stack

VM을 활용한 Elastic Stack 실습 환경 구축 1 - VM 생성하기

by jiseok.woo 2020. 1. 11.
반응형

먼저 VM을 활용해 Elastic Stack 환경을 구축해볼건데 OS, Elastic Stack 모두 현재 기준으로 최신버전으로 설치할 예정이다. 일단 elasticsearch는 3개 노드로 간단하게 cluster를 구성해볼 예정이고 그 외에 kibana도 설치할 예정이다. VM 스펙은 아래와 같이 구성해봤다.

 

  • OS : CentOS-8-x86_64-1905
  • CPU : 1 Core
  • RAM : 2 GB
  • HDD : 20 GB
  • Network : vmnet100
  • Elasticsearch : elasticsearch-7.5.1
  • Kibana : kibana-7.5.1

 

개인적으로는 ubuntu를 선호하지만, 대체적으로 centos를 많이 쓰는 것 같아 이번엔 centos로 진행할 예정이다.

램은 개인 노트북의 램이 16GB라 일단 각 VM의 램을 2GB 정도씩만 할당해보려 한다.

network가 vmnet100으로 되어있는데 저건 일반적으로 쓰는 nat 모드랑 같은데 IP 대역만 내가 원하는 대역으로 설정하려고 만들었다.

 

 

자, 그럼 차근차근 VM을 만들어 보자.

참고로 나는 맥북을 쓰므로 모든 과정은 맥북 기준이다. (윈도우라고 뭐 크게 다르진 않겠지.)

 

 

 


 

 

1. CentOS 이미지 다운로드

먼저 CentOS의 이미지를 아래 링크에서 받자.

 

 


 

 

 

2. VM Custom Network 생성

Custom Network를 생성하는 이유는 그냥 원하는 대역의 사설 IP를 사용하고 싶어서이다. 큰 의미는 없다.

 

  • 아래와 같이 VMWare Fusion > Preference > Network 메뉴 클릭

 

  • Custom에 아래와 같이 vmnet100 네트워크 생성
    • NAT 모드를 사용하고, 맥북 호스트와 통신이 가능하며, DHCP IP 대역을 192.168.100.0/24로 설정

 

 


 

 

 

3. VM 생성 (다들 할줄 알겠지만 상세하게 써본다.)

  • File > New 메뉴 클릭

 

  • Install from disc or image 클릭

 

  • 다운 받은 CentOS iso 이미지 드래그 앤 드롭

 

  • Use Easy Install 체크 해제 (centos 최신버전을 easy install로 해보니 잘 안되더라.)

 

  • Customize Settings 클릭

 

  • VM 이름을 적절히 기재 후 저장

 

  • Processors & Memory 클릭

 

  • 아래와 같이 2048MB로 설정

 

  • Network Adapter 클릭 후 아래와 같이 새로 생성한 vmnet100으로 변경

 

  • VM을 시작한 뒤에 아래 화면에서 "Install CentOS Lunix 8.0.1905" 선택

 

  • 적절하게 언어 선택 해주고 파티션 선택해주고 패스워드 설정해주면 된다.

 

 

 

 

 

  • 그리고 일반계정을 하나 만들어 주자. (나는 elastic으로 만들었다.)

 

  • 커피한잔하면서 기다려보면 설치가 완료된다.

 

  • 재부팅하고 나면 아래와 같이 license 어쩌고 저쩌고 나오는데 그냥 동의하면 된다.

 

  • 설치가 끝났다.

 

 

 


 

 

 

4. VM 설정 - IP 설정

VM은 아래와 같이 3개 elasticsearch, 1개 kibana로 구성할거다. 위에서 설치한 VM에 기본 설정만 해두고 clone을 통해 4개 VM을 완성해 보자. VM 별 IP는 아래와 같이 설정할 예정이다.

Host IP
Elasticsearch-7.5.1-1 192.168.100.11
Elasticsearch-7.5.1-2 192.168.100.12
Elasticsearch-7.5.1-3 192.168.100.13
Kibana-7.5.1-1 192.168.100.10

 

설치한 VM에 루트 계정으로 로그인한 뒤 IP부터 설정해 보자.

 

  • ip link 혹은 ifconfig 를 통해 인터페이스 확인
[root@localhost ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:a6:f6:93 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:be:13:68 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:be:13:68 brd ff:ff:ff:ff:ff:ff

 

 

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:a6:f6:93  txqueuelen 1000  (Ethernet)
        RX packets 23  bytes 2350 (2.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 456  bytes 39408 (38.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 456  bytes 39408 (38.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:be:13:68  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



  • 해당 인터페이스의 설정파일 편집(/etc/sysconfig/network-scripts/ifcfg-ens33)
    • BOOTPROTO=static : dhcp 자동 할당이 아닌 이 컨피그파일에 설정된 정보로 수동 설정
    • ONBOOT=yes : 부팅시 자동 활성화
    • IPADDR=192.168.100.11 : IP 기재
    • GATEWAY=192.168.100.2 : vmnet100 생성시 로컬 맥북을 해당 네트워크에 연결하도록 설정해 맥북이 192.168.100.1 IP를 잡는다. gateway는 그 뒤를 이어 192.168.100.2로 설정된다.
    • NETMASK=255.255.255.0 : vmnet100 생성시 입력한 서브넷으로 설정
    • DNS1=168.126.631 : DNS 주소 설정. DNS2 설정시 보조 DNS 세팅 가능하다.
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=15d420b1-ad28-4b3d-8cca-51596ad97e9c
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.11
GATEWAY=192.168.100.2
NETMASK=255.255.255.0
DNS1=168.126.63.1

 

 

  • 네트워크 데몬 재시작
    • 기존엔 networking, network 서비스를 재시작했는데 기존 서비스가 사라져 NetworkManager를 재시작 해야한다.
[root@localhost ~]# service NetworkManager restart
Redirecting to /bin/systemctl restart NetworkManager.service

[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.11  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::96a2:bf49:6fa7:8120  prefixlen 64  scopeid 0x20
        ether 00:0c:29:a6:f6:93  txqueuelen 1000  (Ethernet)
        RX packets 24  bytes 2460 (2.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28  bytes 3384 (3.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

  • ping 테스트
    • 혹시 외부 통신이 안된다면 VM의 network adapter 설정과 centos의 인터페이스 설정이 잘 맞는지 확인해봐야 한다.
[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=164 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=79.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=69.0 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=74.3 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 6ms
rtt min/avg/max/mdev = 69.004/96.656/164.178/39.149 ms

 


 

 

5. VM 설정 - elastic stack 설치 파일 다운로드

elastic stack은 elasticsearch, kibana, logstash를 각각 설치하면 된다. 설치 방법에는 tar 아카이브를 받아 압축 푸는 방법과 rpm을 이용해 설치하는 방법이 있다. 본 포스팅에서는 기본적인 tar 아카이브를 이용한 설치를 진행해보겠다.


설치 과정은 elasticsearch 공식 도큐먼트에 잘 나와 있으니 참고하면 된다.

https://www.elastic.co/guide/en/elasticsearch/reference/7.5/targz.html

 

 

 

  • elasticsearch, kibana 아카이브 다운로드
    • 지금 설정하고 있는 VM을 clone해서 kibana, elasticsearch VM들을 생성할 거니까 둘다 받아두자.
[elastic@localhost ~]$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-linux-x86_64.tar.gz
--2020-01-11 08:42:04--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-linux-x86_64.tar.gz
Resolving artifacts.elastic.co (artifacts.elastic.co)... 151.101.230.222, 2a04:4e42:36::734
Connecting to artifacts.elastic.co (artifacts.elastic.co)|151.101.230.222|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 290094012 (277M) [application/x-gzip]
Saving to: ‘elasticsearch-7.5.1-linux-x86_64.tar.gz’

elasticsearch-7.5.1-linux-x86_64.t 100%[================================================================>] 276.65M  10.5MB/s    in 37s     

2020-01-11 08:42:43 (7.46 MB/s) - ‘elasticsearch-7.5.1-linux-x86_64.tar.gz’ saved [290094012/290094012]



[elastic@localhost ~]$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.5.1-linux-x86_64.tar.gz
--2020-01-11 08:46:55--  https://artifacts.elastic.co/downloads/kibana/kibana-7.5.1-linux-x86_64.tar.gz
Resolving artifacts.elastic.co (artifacts.elastic.co)... 151.101.230.222, 2a04:4e42:36::734
Connecting to artifacts.elastic.co (artifacts.elastic.co)|151.101.230.222|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 238481011 (227M) [application/x-gzip]
Saving to: ‘kibana-7.5.1-linux-x86_64.tar.gz’

kibana-7.5.1-linux-x86_64.tar.gz   100%[================================================================>] 227.43M  10.5MB/s    in 33s     

2020-01-11 08:47:30 (6.89 MB/s) - ‘kibana-7.5.1-linux-x86_64.tar.gz’ saved [238481011/238481011]

 


 

 

 

6. VM 설정 - 스냅샷 생성 및 VM 복제

VM을 복제해 여러 elasticsearch node를 생성할거다. VM을 복제하려면 shutdown 된 VM이 종료된 상태이어야 한다.

 

  • shutdown now 명령으로 VM을 종료한다.
[root@localhost ~]# shutdown now

 

  • VMWare에서 조금전 생성한 VM을 선택 후 마우스 오른쪽 버튼을 클릭해보면 아래와 같이 "Create Full Clone" 메뉴가 보인다.

 

 

  • 적절하게 이름을 변경한 뒤 저장한다.

 

  • 최종적으로 아래와 같이 VM들을 생성하면 된다.

 

 

 

 

이제 복제한 VM들의 IP를 아래와 같이 변경해주기만 하면 VM 설정은 끝이다. (설정은 각자 알아서 해보자.)

Host IP
Elasticsearch-7.5.1-1 192.168.100.11
Elasticsearch-7.5.1-2 192.168.100.12
Elasticsearch-7.5.1-3 192.168.100.13
Kibana-7.5.1-1 192.168.100.10

 

 

아, 추가로 여러개의 VM을 사용하다보면 어떤 VM을 사용중인지 헷갈릴 경우가 있다.

아래와 같이 각 VM별로 호스트네임을 변경해주자.

 

  • "hostnamectl set-hostname 호스트명" 명령으로 각 VM 의 호스트네임 변경
[elastic@localhost ~]$ hostnamectl set-hostname elastic1

 

 

[elastic@localhost ~]$ hostnamectl set-hostname kibana



이정도면 기본적인 VM 생성 및 설정은 끝났다.

휴 과정을 다 캡쳐하다보니 포스팅이 많이 길어졌는데 사실 별내용은 아니었다.

 

다음 포스팅에서는 elasticsearch와 kibana 설정을 진행해보자.

 

 

 

끝.

 

 

 

2020/01/11 - [elastic-stack] - VM을 활용한 Elastic Stack 실습 환경 구축 1 - VM 생성하기

2020/01/16 - [elastic-stack] - VM을 활용한 Elastic Stack 실습 환경 구축 2 - elasticsearch 기본 설정

2020/01/16 - [elastic-stack] - VM을 활용한 Elastic Stack 실습 환경 구축 3 - cluster 기본 설정

2020/01/24 - [elastic-stack] - VM을 활용한 Elastic Stack 실습 환경 구축 4 - kibana 기본 설정

반응형

댓글