[2] Linux에 ELK 환경구축(Losgstash)
-2022.08.27-
ELK 환경 구축
Elasticsearch Logstash Kibana
이전편은 아래 링크로!
실습 설명
여러가지 데이터들을 적재해보고 Logstash까지 설치후 패턴까지 생성해본다
실습 시작
Dev Tools에서 콘솔창을 열면 해당 명령문에 여러가지 규칙, 변수, 필터링등을 저장할 수 있다.
일반 유저계정에서 루트계정으로 전환 후 elasticsearch.yml파일을 열어 수정해준다.
Network 영역에서 network.host에는 이제 외부에서 접근이 가능하도록 0.0.0.0으로 수정하고
http.port는 9200으로 수정.
Discovery 영역에서 discovery.seed_hosts 앞에 있는 주석을 제거하여 위와 동일하게 세팅한다.
sudo su
//Enter the Password
cd /etc/elasticsearch
ls
vim elasticsearch.yml
IP 192.168.20.132를 입력하면 이제 외부에서도 쉽게 접속 할 수 있다. :)
외부에서도 이제 접속이 가능하다. :)
키바나는 바로 접속이 가능한것이 아니니 조금 기다렸다 접속해보자 :)
엘라스틱서치와 키바나에 이제 외부로 접속 할 수 있다.
벌크를 이용해 데이터를 적재해 보자..
Dev Tools에서 콘솔로 들어가 명령어를 추가해준다.
POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "name" : "ngnicky", "age" : 20, "gender": "M" }
{ "index" : { "_index" : "test", "_id" : "2" } }
{ "name" : "1111", "age" : 20, "gender": "M" }
{ "index" : { "_index" : "test", "_id" : "3" } }
{ "name" : "2222", "age" : 20, "gender": "M" }
그리고 조금전 root 터미널에서 명령어를 이용해준다.
curl -O https://download.elastic.co/demos/kibana/gettingstarted/8.x/shakespeare.json
cat shakespeare.json | more
어느정도 적재가 되었으면 빠져나와준다.
실행까지 꼭 해주자!
그리고 다시 dev tools로 가 그 밑 줄에 위와 같이 입력해준다.
PUT /shakespeare?pretty
{
"mappings": {
"properties": {
"speaker": {"type": "keyword"},
"play_name": {"type": "keyword"},
"line_id": {"type": "integer"},
"speech_number": {"type": "integer"}
}
}
}
그리고 root 터미널로 이동해서 아래 명령어를 입력!
curl -H 'Content-Type: application/x-ndjson' -XPOST '127.0.0.1:9200/shakespeare/_bulk?pretty' --data-binary @shakespeare.json
그리고 디렉토리가 생성된 것을 확인할 수 있다
빨간 1번 박스를 누른 뒤 키바나에서 Index Patterns을 누르고 Create index pattern을 눌러준다.
패턴 이름은 shakespeare로 지정한다.
이후에는 디스커버에서 해당 이름으로 시작되는 것들을 모두 모아서 확인 할 수 있다.
루트 터미널로 돌아와 curl 명령어를 입력하여 account.zip을 다운받고 ls로 파일 목록까지 보아 확인한다.
curl -O https://download.elastic.co/demos/kibana/gettingstarted/8.x/accounts.zip
ls
unzip명령어로 압축을 해제한다.
unzip accounts.zip
엘라스틱에서 확인 할 수 있게 명령어를 입력하여 패치 한다.
curl -H 'Content-Type: application/x-ndjson' -XPOST '127.0.0.1:9200/bank/_bulk?pretty' --data-binary @accounts.json
bank 디렉터리가 적재된것을 확인 할 수 있다.
다시 돌아와 bank 패턴을 생성한다.
대시보드로 들어가 좌측 상단의 Edit을 눌러준다.
Create new를 클릭해준다.
비쥬얼라이제이션에서 데이터 테이블을 누른다.
위 처럼 매트릭스 옵션들을 수정해준다.
Home으로 돌아와 데이터를 업로드 한다.
파일 형식은 위에서 보이듯 csv,ndjson or log file 이 가능하다.
csv 파일로 업로드를 할텐데 무조건 csv파일이 되는것은 아니다. 한글이나 기타 폰트가 깨지지 않게 uft로 변환을 한번 해주어야한다.
파일 변환을 해준다.
임포트를 눌러 데이터를 업로드한다.
최종적으로 이름을 입력하고 잠시 기다려준다.
이제 Logstash 기반을 구성해보려고 한다.
ELK에 로그 스태시 서버를 만들어줘야하는데 ELK가 자바 환경이라 그것에 맞춰줘야한다.
apt update
apt-get install default-jre apt-transport-https wget gnupg ntpdate
이후 구성 환경에 맞추기 위해 java.sh를 만들어 편집에 주어야한다.
vim /etc/profile.d/java.sh
위 명령어를 이용하여 경로로 이동하여 내용을 아래의 명령어로 채운다.
#/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
그리고 나서 재부팅 해준다.
reboot
명령어를 이용하여 로그스태쉬를 다운로드 받는다.
sudo wget https://artifacts.elastic.co/downloads/logstash/logstash-7.8.1.deb
ls
로그 스태쉬를 설치후 서버를 시작한다.
sudo dpkg -i logstash-7.8.1.deb
sudo logstash start
중간에 에러가 나와도 The stdin plugin is now waiting for input : 이 나올때 까지 기다린다.
111, hello를 입력하면 그대로 메세지를 통해 출력하는것을 확인 할 수 있다!
만약 로컬에 있는 파일을 보내고 싶다면? 혹은 원격에 있는 로그 파일을 보내고 싶다면 어떻게 해야 할까
위 명령어를 입력하여 경로로 이동 후 test_log.conf를 수정해보자
cd /etc/logstash/conf.d
ls
sudo vim test_log.conf
input {
file {
path => "/var/log/elasticsearch/elasticsearch.log"
start_position => "beginning"
}
}
output {
elasticsearch {
index=> "output"
}
}
해당 명령어로 output에 elasticsearch의 데이터를 전송한다.
./logstash -f /etc/logstash/conf.d/test_og.conf./logstash -f
명령어를 통해서 elasticsearch가 가진 로그들을 뿌린다.
ouput이 생긴것을 확인 할 수 있다.
키바나에 들어가 패턴을 생성한다.
타임스탬프로 설정을 하고 인덱스 패턴을 생성한다
마 치 며
ELK 구축이 한번 주르륵 할때 따라하기는 쉬웠는데
따라하기만 쉽고 막상 이해하며 구축하기가 어려웠다..
특히 logstash같은 경우에는 명령어도 복잡하고 여러 명령어와 필요한 구성요소를 다운받는게 어려웠다.
로그스태쉬는 보안관점보다는 개발자관점에서 해야하는게 맞는것 같다..ㅠ
'OS > Linux X' 카테고리의 다른 글
[3] Linux에 ELK환경구축(apache,filebeat,metricbeat) (0) | 2022.08.27 |
---|---|
[1] Linux에 ELK 환경 구축(Elasticsearch, Kibana) (0) | 2022.08.25 |
댓글
이 글 공유하기
다른 글
-
[3] Linux에 ELK환경구축(apache,filebeat,metricbeat)
[3] Linux에 ELK환경구축(apache,filebeat,metricbeat)
2022.08.27 -
[1] Linux에 ELK 환경 구축(Elasticsearch, Kibana)
[1] Linux에 ELK 환경 구축(Elasticsearch, Kibana)
2022.08.25