본문 바로가기

문돌이 존버/ELK 스터디

AWS EC2 Ubuntu 18.04에 ELK 설치 + Linux 2 AMI에 Django 설치

반응형
ELK 버전 바뀜 주의!

이번 글에서는 AWS EC2 Ubuntu 18.04 LTS 서버에서 ELK를 구축하는 과정을 공유하고자 합니다. 일단 우분투 유형을 선택했기 때문에 ELK 패키지는 Debian package를 사용했습니다. (전 윈도우라 putty를 사용했고, AWS EC2 인스턴스 생성과 putty 사용 방법에 대해서는 추후에 따로 설명드리겠습니다. 이번 글은 이미 기본 환경에 갖추어진 상태라고 가정하고 진행합니다.)

sudo apt-get update
sudo apt-get install openjdk-8-jdk # 자바 설치가 우선적으로 이루어져야 합니다
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo apt-get update && sudo apt-get install kibana
위의 과정이 담긴 공식 문서는 아래 사이트에서 확인 가능합니다.
Install Elasticsearch with Debian Package | Elasticsearch Guide [7.14] | Elastic

다음은 elasticsearch.yml과 kibana.yml에서 외부에서 접속할 수 있는 조건을 추가하기 위한 몇 가지 수정 사항입니다.

sudo vi /etc/elasticsearch/elasticsearch.yml 에서

node.name: node-1
network.host: "0.0.0.0"
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"] 

sudo vi /etc/kibana/kibana.yml에서

server.host: "0.0.0.0"

이후에 아래 명령어를 통해 elasticsearch와 kibana를 시작하면 되겠습니다.

# 실행
sudo systemctl start elasticsearch.service
sudo systemctl start kibana.service

# 중지
sudo systemctl stop elasticsearch.service
sudo systemctl stop kibana.service

# 재실행
sudo systemctl restart elasticsearch.service
sudo systemctl restart kibana.service

elasticsearch가 잘 작동되는지 확인하시려면 curl -XGET "http://본인 ip:9200"를 입력해보시고요, 아니면 sudo systemctl status elasticsearch를 통해서도 확인 가능합니다(kibana도 마찬가지).

다음은 logstash를 설치하기 위한 과정입니다. 

sudo apt-get update && sudo apt-get install logstash
sudo vi /etc/logstash/logstash-test.conf # conf 파일 만들기
sudo /usr/share/logstash/bin/logstash -f /etc/logstash/logstash-test.conf #해당 conf 파일 실행하기

logstash를 실행시키는 방법은 위 elasticsearch, kibana와 동일합니다. 

 


 

참, 저는 AWS EC2 인스턴스를 2개 돌리고 있는데요. 하나는 위에서 소개한 ELK를 위한 우분투이고, 다른 하나는 장고 웹서버를 위한 AWS EC2 Linux 2AMI(HVM) 기반입니다. 지금부터 장고 웹서버 세팅 과정도 소개할까 합니다.

우선, 기본적으로 웹사이트를 위한 서버(아파치) 구축을 해보겠습니다. 

sudo yum install httpd -q
sudo service http start
sudo chkconfig httpd on
python --version # 파이썬 버전 확인 (아마도 2.x.x)
sudo yum install python3 -y
which python3 # 파이썬 3 설치 확인
pip3 install --user virtualenv 
mkdir myvenv
cd myvenv
virtualenv -p /usr/bin/python3 python3
python3 -m venv myvenv

source /home/ec2-user/myvenv/python3/bin/activate를 입력하면 가상환경이 시작됩니다. 그럼 앞에 커맨드라인 맨 왼쪽에 (python3)라고 표시되어 가상환경이 시작되었음을 알 수 있습니다.   

이후에 장고를 다운로드하고 센스있게 app도 설치합니다.

pip install Django==2.1.* 
django-admin startproject myproject
cd myproject
django-admin startapp myproject_app

마지막으로 수정해야 할 부분은 myproject 내부의 settings.py 파일에 들어가서 아래와 같이 바꿔주면 됩니다. * 표시는 모든 서버에 대해 접속 가능하게 하는 것입니다. 

ALLOWED_HOSTS = ['*']

이제 python manage.py runserver 0.0.0.0:8000 을 통해 잘 설치되었는지 확인해보시죠. "AWS 인스턴스 url 주소:8000"을 검색창에 입력하시면 확인 가능합니다. 

728x90
반응형