실습 주제
- 주제 : 서버의 데이터 가져오기
- 방법 : 같은 환경의 EC2 띄워서 데이터를 가져오기
- Logstash : 데이터 정제를 하는 것이다.
- 생략이 가능하다.
- Input → Filter → Output 순서대로 작성한다.
- Input Plugin : 특정 이벤트 소스를 logstash에서 불러와 데이터가 스트리밍 되는 방식의 수집 기능을 제공한다.
- Filter Plugin : 데이터를 동적으로 변환, 통합한다.
- Output Plugin : 다양한 출력을 제공한다.
- 본 실습에서는 Output Plugin에서 Elastic으로 보낸다.
- Beats → Logstash → Elasticsearch → Kibana
- Beat와 Logstash는 생략 가능하다.
1. EC2 서버 만들기
(1) AWS 홈페이지 > EC2 서비스 > 인스턴스 클릭
(2) 우측 상단의 인스턴스 시작을 클릭한다.
(3) 설정을 아래와 같이 한다.
(4) EC2에 접속한다.
2. JAVA 11 설치
logstash 사용을 위해 JAVA를 설치한다.
만약 elastic이 서버에 설치되어 있다면 JAVA까지 elastic이 가져오기 때문에 설치가 필요 없지만, 현재 서버에는 elastic이 설치되어 있지 않기 때문에 JAVA 설치를 한다.
sudo su
yum install java-11-amazon-corretto.x86_64
su ec2-user
3. logstash 설치
(1) 아래 링크에서 logstash 설치 링크를 복사해온다.
Download Logstash Free | Get Started Now | Elastic
(2) 아래 사진과 같이 "Linux x86_64"로 운영체제를 선택하고 다운로드 버튼을 누르지 않고 우클릭을 하여 링크 복사를 한다.
(3) 아래 명령어를 입력하여 logstash를 다운로드 한다.
wget 링크붙여넣기
(4) 아래 명령어를 입력하여 파일을 압축해제 한다.
tar -xvf logstash-8.11.3-linux-x86_64.tar.gz
(5) 아래 명령어를 입력하여 sample.conf 파일에 접근하여 copy한다. (copy한 파일명은 자유롭게 작성 가능)
혹시 디렉토리나 파일명이 다르다면 "ll" 명령어로 확인하여 각자 맞게 명령어 수정하여 입력해주세요.
cd logstash-8.11.3
cd config
cp logstash-sample.conf logstash-sample2.conf(새 파일명)
vi logstash-sample2.conf
그럼 아래와 같이 logstash-sample2.conf 파일 내용을 볼 수 있다. 그러면 output의 hosts에 아직 ealsticsearch 주소가 없는 것을 알 수 있다.
(6) 해당 파일 내용을 아래와 같이 수정한다.
수정할 때는 i 를 입력하여 수정 모드로 바꿔주고, 파일 종료하기 위해서는 esc 입력 후 :q 또는 :wq 를 입력하여 빠져나온다. (리눅스 vi 관련 명령어 참고)
"ouput { elasticsearch { cloud_id => " 에는 본인의 cloud ID를 작성해준다.
"ouput { elasticsearch { cloud_auth => " 에는 본인의 elasticsearch "ID:PW" 를 작성해준다.
"ouput { elasticsearch { index => " 에는 본인이 원하는 테이블명을 작성해준다.
(7) test.json 작성하기
vi test.json
test.json 안에 아래와 같이 테스트용 json 데이터를 작성한다.
{"name": "John", "age": 25, "city": "ExampleCity"}
{"name": "Jane", "age": 30, "city": "SampleVille"}
{"name": "Bob", "age": 22, "city": "Testburg"}
(8) test.json 실행하기
cd ..
bin /logstash -f /home/ec2-user/logstash-8.11.3/config/logstash-sample2.conf
4. Elastic Cloud에서 확인하기
(1) 왼쪽 메뉴의 Stack Managemnet 클릭
(2) 왼쪽 메뉴의 Index Managemnet 클릭
위 사진과 같이 아까 index에 설정했던 이름의 index가 뜨면 빌드 성공한 것이다.
(3) 메뉴에서 Discover 클릭하여 생성한다.
Name은 아까 사용했던 json_test로 작성한다. (무엇으로 하든 무방하다.)
Index pattern은 아까 사용했던 index 이름으로 작성한다.
5. Metricbeat 세팅하기
(1) 아래 링크에서 metricbeat 설치를 위한 링크를 복사한다.
Download Metricbeat • Ship Metrics to Elasticsearch | Elastic
(2) EC2 서버에 접속하여 metricbeat를 설치하고 압축을 푼다.
wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.11.3-linux-x86_64.tar.gz
tar -xvf metricbeat-8.11.3-linux-x86_64.tar.gz
(3) metricbeat.yml 파일을 수정한다.
metric 폴더 내를 확인하면 metricbeat 실행 파일과 matricbeat.yml 설정 파일을 확인할 수 있다.
vi metricbeat.yml
아래와 같이 주석을 더하고 빼준다.
logstash로 output을 설정해야 하므로 ealsticsearch output 부분은 모두 주석처리 한다.
logstash output에서 hosts를 설정하는데 원래는 localhost가 아니지만, logstash와 같은 인스턴스에 설치하고 있기 때문에 localhost로 지정이 가능하다.
(4) 아래와 같이 conf 파일이 있는 곳으로 이동하여 logstash-sample.conf 파일을 수정한다.
input {
beats {
port => 5044
}
}
output {
elasticsearch {
cloud_id => "{EScloud_id}"
cloud_auth => "{ESid}:{ESpw}"
index => "metricbeat"
}
}
(5) logstash를 백그라운드로 실행시킨다.
nohup bin/logstash -f /home/ec2-user/logstash-8.11.3/config/logstash-sample.conf &
ps -ef | grep logstash
실행결과가 아래와 같아야 백그라운드 실행 중인 것이다.
(6) metricbeat 실행시킨다.
metricbeat로 이동하여 실행해야 한다.
6. elastic에서 확인하기
(1) elasticsearch > Stack Management > Index Management 에 metricbeat 인덱스가 추가되었는지 확인한다.
7. Integration 활용하기
(1) Integration에서 System을 통합한다.
Integrations > Systems (검색) 에서 AWS, Azure, GCP 등과 통합이 가능하다.
(2) Install Elastic Agent를 클릭하여 안내되는 코드를 EC2 서버에 입력한다.
이때 경로는 /home/ec2-user/에서 명령어들을 실행해야 한다.
curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.11.3-linux-x86_64.tar.gz
tar xzvf elastic-agent-8.11.3-linux-x86_64.tar.gz
cd elastic-agent-8.11.3-linux-x86_64
sudo ./elastic-agent install --url=https://2ddb2675cdee41468d14d6ede521212c.fleet.us-east-2.aws.elastic-cloud.com:443 --enrollment-token=OVZvdHJvd0JOQl9VX054TTEwOXA6Uk1paEtremlRaGE4OEtUYV9wbFQ4UQ==
실행이 정상적으로 되면 아래와 같은 화면이 elastic에 표시된다.
(3) Add the Integration > Confirm incoming data 클릭하여 마무리한다.
(4) 이후 Stack Managemnet > Index Managemnet > Data streams 에서 metrics 관련된 것들을 확인할 수 있다.
(5) Discover 에서 로그들을 확인할 수 있다.
(6) Console을 통해서도 내부 데이터를 확인할 수 있다.
GET testip/_search
'Cloud > ElasticSearch' 카테고리의 다른 글
[실습] Elastic APM 사용하여 접속 기록 수집하기 (0) | 2023.12.28 |
---|---|
[실습] Elastic으로 데이터 시각화 하는 방법 (Visualize Library, Dashboard) (0) | 2023.12.28 |
[실습] 데이터 관리 - Roles, User, Space, ILM, Snapshot, Connector (1) | 2023.12.28 |
[이론] 데이터 전처리, 색인 관리, 시각화 (0) | 2023.12.28 |
[이론] ElasticSearch 개념, 특징, 기능 (0) | 2023.12.27 |