wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
sudo apt-get install apt-transport-https
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
sudo apt-get update && sudo apt-get install elasticsearch
- cluster.name: test
- node.name: test-node
- network.host: 0.0.0.0
- http.port: 9200
- discovery.seed_hosts: ["127.0.0.1"]
- xpack.security.enabled: false
옵션명 옵션 설명
- cluster.name 클러스터 명 설정 (default는 elasticsearch이며 충돌을 방지하기 위해 반드시 고유한 이름으로 설정 필요)
- node.name elasticsearch 노드 명 설정
- path.data 색인된 데이터를 저장하는 경로 지정
- path.logs elasticsearch 실행 로그를 저장하는 경로 지정
- bootstrap.memory_lock Elasticsearch가 사용중인 힙메모리 영역을 다른 자바 프로그램이 간섭 못하도록 미리 점유하는 설정 (항상 true로 사용하는 것을 권장)
- network.host Elasticsearch가 실행되는 서버의 ip 주소 (default는 127.0.0.1(loopback)이며 0.0.0.0으로 설정 시 ANY로 통신이 가능)
- http.port Elasticsearch가 클라이언트와 통신하기 위한 http 포트를 설정 (default는 9200이며, 포트가 이미 사용 중인 경우 9200 ~ 9299 사이 값을 차례대로 사용)
- transport.port Elasticsearch 노드들 끼리 서로 통신하기 위한 tcp 포트를 설정 (default는 9300이며, 포트가 이미 사용 중인 경우 9300 ~ 9399 사이 값을 차례대로 사용)
- cluster.initial_master_nodes 클러스터가 최초 실행 될 때 명시된 노드들을 대상으로 마스터 노드를 선출
- node.master 마스터 후보(master eligible) 노드 여부를 설정
- 기본 힙 크기는 1GB
- 전체 메모리 크기의 절반이하로 설정하는것이 좋음.
- vim /etc/elasticsearch/jvm.options
Xms512m
Xmx512m
systemctl enable elasticsearch
systemctl start elasticsearch
curl -X GET "localhost:9200"
공식문서 : https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
sudo apt-get update && sudo apt-get install logstash
1) input
- filebeat에서 데이터를 받을 때는 input을 beats로 설정한다.
- 데이터를 받을 포트 지정 (기본 포트 5044)
- 호스트 상관없이 모든 데이터를 받을 경우 호스트는 0.0.0.0으로 작성
2) filter
- elasticsearch로 전달하기 전에 원하는 데이터의 타입, 형태 등으로 필터링/전처리하는 과정
(이번 글에서는 작성하지 않고 데이터를 받아오는 과정만 진행한다.)
3) output
- filebeat에서 데이터를 받아 logstash에서 전처리를 한 데이터를 전송할 곳을 지정
- vim /etc/logstash/conf.d/logstash.conf (신규 생성)
input {
beats {
port => 5044
host => "0.0.0.0"
}
}
output {
elasticsearch {
hosts => "localhost:9200"
index => "%{[some_field][sub_field]}-%{+YYYY.MM.dd}"
}
}
cd /usr/share/logstash/bin
./system-install
(체크) Successfully created system startup script for Logstash
systemctl start logstash
systemctl enable logstash
tail -f /var/log/logstash/logstash-plain.log
sudo apt-get update && sudo apt-get install kibana
server.host: "0.0.0.0" # "localhost" > "0.0.0.0" 으로 변경
systemctl daemon-reload
systemctl start kibana
systemctl enable kibana
http://3.38.138.101:5601