본문 바로가기
elastic-stack

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

by jiseok.woo 2020. 7. 7.
반응형

 

 

올해 초 elastic stack 글을 쓰기 시작했었는데 어쩌다보니 반년이 흘러버려서...

다시 elasticsearch 블로그 글을 시작하려다보니...

버전이 반년만에 7.5.1 -> 7.8.0으로 최신버전이 변경되었네...

복습하는겸 빠르게 7.8.0으로 VM들을 다시 설치해보자.

(주요 내용은 이전 블로그 그대로 복붙해야지)

 

 

기본적인 구성은 아래 그림과 같이 elasticsearch 3개 및 kibana 1개로 구성할 예정이다.

 

생성할 VM의 스펙은 아래와 같다. (OS도 최신버전으로 다시깔아야지..)

 

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

 

 

 

 

 

 

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" 선택

 

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

 

 

 

 

 

  • root 계정 패스워드 설정 해주자.

 

  • 그리고 일반계정을 하나 만들어 주자. (Make this user administrator 체크해서 관리자 권한 부여해주겠다.)

 

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

 

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

 

  • 설치가 끝났다.

 

 

 


 

 

 

4. VM 설정 

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

Host IP
Elasticsearch-7.8.0_1 192.168.100.11
Elasticsearch-7.8.0_2 192.168.100.12
Elasticsearch-7.8.0_3 192.168.100.13
Kibana-7.8.0 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.8/targz.html

 

 

 

  • elasticsearch, kibana 아카이브 다운로드
    • 지금 설정하고 있는 VM을 clone해서 kibana, elasticsearch VM들을 생성할 거니까 둘다 받아두자.
[elastic@localhost ~]$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-darwin-x86_64.tar.gz
--2020-07-06 11:34:33--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-darwin-x86_64.tar.gz
Resolving artifacts.elastic.co (artifacts.elastic.co)... 151.101.110.222, 2a04:4e42:1a::734
Connecting to artifacts.elastic.co (artifacts.elastic.co)|151.101.110.222|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 301261627 (287M) [application/x-gzip]
Saving to: 'elasticsearch-7.8.0-darwin-x86_64.tar.gz'

elasticsearch-7.8.0-darwin-x8 100%[================================================>] 287.30M  1.87MB/s    in 1m 40s  

2020-07-06 11:36:15 (2.87 MB/s) - 'elasticsearch-7.8.0-darwin-x86_64.tar.gz' saved [301261627/301261627]

[elastic@localhost ~]$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
--2020-07-06 11:36:45--  https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
Resolving artifacts.elastic.co (artifacts.elastic.co)... 151.101.110.222, 2a04:4e42:1a::734
Connecting to artifacts.elastic.co (artifacts.elastic.co)|151.101.110.222|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 334236568 (319M) [application/x-gzip]
Saving to: 'kibana-7.8.0-linux-x86_64.tar.gz'

kibana-7.8.0-linux-x86_64.tar 100%[================================================>] 318.75M  6.86MB/s    in 77s     

2020-07-06 11:38:02 (4.16 MB/s) - 'kibana-7.8.0-linux-x86_64.tar.gz' saved [334236568/334236568]

 


 

 

 

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

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

 

  • shutdown now 명령으로 VM을 종료한다.
[elastic@localhost ~]$ sudo shutdown now

 

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

 

 

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

 

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

 

 

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

Host IP
Elasticsearch-7.8.0_1 192.168.100.11
Elasticsearch-7.8.0_2 192.168.100.12
Elasticsearch-7.8.0_3 192.168.100.13
Kibana-7.8.0 192.168.100.10

 

 

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

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

 

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



 

 

휴....

반년전에 했던 VM세팅을 그대로 다시해봤네...

 

다음 포스팅에서는 elasticsearch와 kibana 설정도 다시 진행해봐야겠다ㅠ

 

 

 

끝.

 

반응형

댓글