[ELK] ELK Stack 설치

CHAN LIM·2024년 3월 11일
0

ELK

목록 보기
2/2
post-thumbnail

No Docker,
Linux Machine 그 자체에 설치하는 방법 정리


1. Java 설치

Java_ubuntu에서 설치

굳이 환경 변수까지 설정하지 않아도 무방하다.


2. Nginx 설치

Kibana가 기본적으로 localhost에서만 접근이 가능하다.

물론,
외부 접근을 허용할 수 있지만
실 프로젝트에서 많이 활용하는 Nginx를 활용하여 리버스 프록시 기능을 구현해보자.

sudo apt-get update
sudo apt install nginx

  • 말 자체는 거창하지만, 사실 한 줄의 명령어로 모두 완료된다.
  • 추후에, 리버스 프록시 관련 설정을 해야한다.

3. ELK 설치

3.0. 설치 전,

  • ELK 설치를 위한 컴포넌트들이 우분투의 기본 패키지 레포에는 포함되어 있지 않다.
  • 따라서 apt를 이용한 설치를 위해 Elastic 패키지 소스 리스트를 추가해야 한다.
  • 다음 명령어를 순서대로 입력하여 추가한다.
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch |sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg

echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

sudo apt update
chan00@chan00-VB:/home/chan00# curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch |sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
chan00@chan00-VB:~$ echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main
chan00@chan00-VB:/home/chan00# sudo apt update
Get:1 https://artifacts.elastic.co/packages/7.x/apt stable InRelease [13.7 kB]
Get:2 https://artifacts.elastic.co/packages/7.x/apt stable/main amd64 Packages [106 kB]
Hit:3 http://kr.archive.ubuntu.com/ubuntu jammy InRelease                               
Hit:4 http://kr.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:5 http://kr.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:6 http://kr.archive.ubuntu.com/ubuntu jammy-security InRelease
Fetched 120 kB in 2s (69.8 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
chan00@chan00-VB:~$

공식문서 에 따라, 다음 순서로 설치

1 Elasticsearch (install instructions)
2 Kibana (install)
3 Logstash (install)
4 Beats (install instructions)
5 APM (install instructions)
6 Elasticsearch Hadoop (install instructions)

이 순서대로 설치를 해야 각 제품의 의존성과 구성요소가 제대로 설치된다고 한다.


3.1 Elasticsearch 설치

sudo apt install elasticsearch

별 문제가 없다면, 정상적으로 설치될 것이다.

이후, 해당 경로에서 Elasticsearch의 기본 설정 파일을 확인할 수 있다.

sudo vi /etc/elasticsearch/elasticsearch.yml
# 또는
sudo nano /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: 192.168.0.1

network.host: ~~ 주석 해제


추가 사항 : 서비스 실행 및 부팅 시 자동 실행 설정

# Elasticsearch 실행
sudo systemctl start elasticsearch

# 자동 실행 설정
sudo systemctl enable elasticsearch

Synchronizing state of elasticsearch.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /lib/systemd/system/elasticsearch.service.
chan00@chan00-VB:~$

# 정상 동작 확인
curl -X GET "localhost:9200"
{
  "name" : "elk-stack",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6KQhFjQcTC-zZmiWQCKtXw",
  "version" : {
    "number" : "7.17.7",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "78dcaaa8cee33438b91eca7f5c7f56a70fec9e80",
    "build_date" : "2022-10-17T15:29:54.167373105Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
chan00@chan00-VB:~$

3.2 Kibana 설치

sudo apt install kibana

별 문제가 없다면, 정상적으로 설치될 것이다.


추가 사항 1: 서비스 실행 및 부팅 시 자동 실행 설정

# Elasticsearch 실행
sudo systemctl start kibana

# 자동 실행 설정
sudo systemctl enable kibana

Synchronizing state of kibana.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable kibana
Created symlink /etc/systemd/system/multi-user.target.wants/kibana.service → /etc/systemd/system/kibana.service.
chan00@chan00-VB:~$

추가 사항 2: 리버스 프록시

Nginx의 기본 사이트 설정 파일을 수정하여 외부에서 Kibana 접속이 가능하도록 한다.

sudo vi /etc/nginx/sites-available/default
server {
    listen 80;

    server_name _;

    location / {
        proxy_pass http://{사용자가 원하는 데로};
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

작성자는 접속 환경 차이로 PortForwarding을 시도한 상태이므로 다를 수 있습니다.


3.3 Logstash 설치

sudo apt install logstash

별 문제가 없다면, 정상적으로 설치될 것이다.


테스트 구성 및 시도

설치 완료 시, Logstash Pipeline 설정을 해야한다.

자세한 구조는 공식문서에서 확인이 가능하다.

기본적으로 Filters 부분은 옵션이고, Inputs와 Outputs는 필수적으로 필요한 요소이다.


sudo vi /etc/logstash/conf.d/beats-input.conf
input {
  beats {
    port => 5044
  }
}
sudo vi /etc/logstash/conf.d/elasticsearch-output.conf
output {
  if [@metadata][pipeline] {
	elasticsearch {
  	hosts => ["localhost:9200"]
  	manage_template => false
  	index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  	pipeline => "%{[@metadata][pipeline]}"
	}
  } else {
	elasticsearch {
  	hosts => ["localhost:9200"]
  	manage_template => false
  	index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
	}
  }
}
  • 위와 같이 conf 파일들을 생성해주고 다음 명령어를 입력하면 Logstash 테스트가 동작한다.
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t

오류가 없다면

Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

가 출력된다.


추가 사항 : 서비스 실행 및 부팅 시 자동 실행 설정

# Elasticsearch 실행
sudo systemctl start logstash

# 자동 실행 설정
sudo systemctl enable logstash


출처

ELK 설치

profile
클라우드, 데이터, DevOps 엔지니어 지향 || 글보단 사진 지향

0개의 댓글