Debian package 로 Elasticsearch 설치
아래 명령어를 차례대로 입력해주시면 됩니다. 참고로 저는 aws ec2 Ubuntu20.04를 사용하고 있습니다.
1.
공개 서명키를 다운로드하고 설치합니다.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
2. apt-transport-https 패키지 설치
sudo apt-get install apt-transport-https
3. /usr/share/keyrings에 GPG 추가 + 리포지토리 정의
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
4. 실제 Elasticsearch 설치
sudo apt-get update && sudo apt-get install elasticsearch
차례대로 적어주셨다면 정상적으로 잘 설치될겁니다.
아래 링크로 들어가셔서
https://www.elastic.co/guide/en/elasticsearch/reference/8.8/deb.html#deb-repo
Kibana 도 동일하게 위와 같은 방식으로 설치해주시면 됩니다. 바로 아래 링크 남겨드리겠습니다.
위 Elasticsearch 설치를 진행하셨다면 Kibana 설치는 아래 명령어만 입력해주셔도 됩니다.
sudo apt-get update && sudo apt-get install kibana
https://www.elastic.co/guide/en/kibana/8.8/deb.html#deb-repo
설정 파일 작성( /etc/elasticsearch/elasticsearch.yml, /etc/kibana/kibana.yml )
이제 설정파일을 작성해 보겠습니다.
sudo vi /etc/elasticsearch/elasticsearch.yml
# ---------------------------------- Network -----------------------------------
#
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
network.host: 0.0.0.0
#
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
#
#http.port: 9200
#
# For more information, consult the network module documentation.
Elasticsearch로 모든 ip 접근을 허용했습니다.
문제가 생길만하다면 Elasticsearch로 접근하는 ip들을 특정해서 넣어줄 계획입니다.
# --------------------------------------------------------------------------------
# Enable security features
xpack.security.enabled: false
xpack.security.enrollment.enabled: true
그리고 이 xpack.security.enable: true -> false 로 바꿔주었습니다.
이렇게 해주지 않으면 브라우저로 Kibana에 접근할 때 접근이 막힙니다.
이럴 땐 추가적인 설정이 더 필요한데 이는 나중에 필요한 상황이 오면 설정 추가해서 따로 포스팅 하겠습니다.
이젠 kibana입니다.
sudo vi /etc/kibana/kibana.yml
# =================== System: Kibana Server ===================
# Kibana is served by a back end server. This setting specifies the port to use.
#server.port: 5601
# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "0.0.0.0"
server.host 를 모든 ip 접속 허용으로 바꿔주었습니다.
# =================== System: Elasticsearch ===================
# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://서버주소:9200"]
Elasticsearch 와 Kibana를 하나의 서버내에 설치하시는 분들이라면 저 서버 주소는 localhost가 될거고,
그게 기본 세팅입니다. 서로 다른 환경에서 구축하시는 분들이라면 Elasicsearch 서버 주소를 적어주시면 됩니다.
이제 설치 및 설정파일 작성 후 서비스 가동을 위해
sudo systemcstl start elasticsearch.service
sudo systemcstl start kibana.service
각각 명령어 입력해주시면 됩니다.
그리고 서버를 끄고 다시 켰을 경우 자동으로 해당 서비스들이 동작하길 원하시면
sudo systemctl enable elasticsearch.service
sudo systemctl enable kibana.service
두 명령어를 적어주시면 됩니다.
그리고 설정파일 변경 후 적용은 아래와 같은 명령어로
sudo systemctl restart elasticsearch.service
sudo systemctl restart kibana.service
서비스 재시작 해주시면 됩니다.
systemctl status elasticsearch.service 로 잘 동작하는지 확인해주시고, 혹시 inactive로 나오면 어디가 문제가 생겼는지
아래처럼 찍힌 정보들을 잘 살펴봐주세요.
systemctl status kibana.service
이제 설치는 잘 되었습니다. 다음에는 filebeat,metricbeat를 이용해서 ec2 서버의 log, metricebeat 전송과 kibana 시각화에 대해서 포스팅 해보겠습니다.
'Server' 카테고리의 다른 글
Spring boot 애플리케이션 ec2에 jar로 배포 (0) | 2023.07.23 |
---|---|
aws ec2에서 Nginx + Spring boot Application 연동 (0) | 2023.07.23 |
filebeat, metricbeat의 module 사용해서 Kibana로 시각화해보기 (1) | 2023.07.16 |
Elasticsearch 기본 - 엘라스틱 스택 개발부터 운영까지 (0) | 2023.07.14 |
Nginx 서버에 filebeat와 metricbeat 설치 후 설정파일 작성 (0) | 2023.07.13 |