올해 초 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 설정도 다시 진행해봐야겠다ㅠ
끝.
'elastic-stack' 카테고리의 다른 글
VM을 활용한 Elastic Stack 실습 환경 구축 4 - kibana 기본 설정 (0) | 2020.01.24 |
---|---|
VM을 활용한 Elastic Stack 실습 환경 구축 3 - cluster 기본 설정 (0) | 2020.01.16 |
VM을 활용한 Elastic Stack 실습 환경 구축 2 - elasticsearch 기본 설정 (0) | 2020.01.16 |
VM을 활용한 Elastic Stack 실습 환경 구축 1 - VM 생성하기 (2) | 2020.01.11 |
Elasticsearch의 shard와 replica (0) | 2020.01.11 |
댓글