aws 인스턴스에서 ubuntu 18.04에 ELK를 설치하려고 한다.
elk 스택은 java 기반으로 실행되기 때문에 먼저 java 8 버전을 설치하여 준다.
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-set-default
$ java --version
이제 elasticsearch를 apt로 설치하여 주는데 그전에 elasticsearch 키를 import 해 준다.
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
OK
$ echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
deb https://artifacts.elastic.co/packages/6.x/apt stable main
이제 elasticsearch를 설치해 준다.
$ sudo apt update
$ sudo apt install elasticsearch
이제 설치가 완료되고 /etc/elasticsearch 경로의 elasticsearch.yml 파일의 설정을 다음과 같이 변경하여 준다.
/etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0
discovery.seed_hosts: ["127.0.0.1:9200"]
실행을 해주고 문제가 없다면 다음의 GET 요청 response를 확인할 수 있다.
$ sudo systemctl start elasticsearch
$ curl -X GET "localhost:9200"
{
"name" : "test-001.com",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "uQchFKeDSDCODb6wo5cOPQ",
"version" : {
"number" : "7.13.3",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "5d21bea28db1e89ecc1f66311ebdec9dc3aa7d64",
"build_date" : "2021-07-02T12:06:10.804015202Z",
"build_snapshot" : false,
"lucene_version" : "8.8.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
이번에는 kibana를 설치하여 주겠다. 위에서 패키지를 추가하였기 때문에 바로 설치하면 된다.
$ sudo apt install kibana
$ sudo systemctl start kibana
$ sudo systemctl enable kibana
설치가 완료되고 /etc/kibana 경로로 들어가서 kibana.yml 파일의 설정을 변경하여 준다. 여기서 elasticsearch와 연결해준다.
/etc/kibana/kibana.yml
server.host: "0.0.0.0"
elasticsearch.hosts: ["localhost:9200"]
이제 실행을 하고 localhost:5601 접속을 해보면
$ sudo systemctl start kibana
다음과 같이 kibana에 접속하여 elasticsearch의 데이터를 검색하고 시각화할 수 있다.
이제 logstash를 설치하여 준다. logstash는 elasticsearch에 rds 데이터를 input 하여 주는 역할을 한다.
$ sudo apt install logstash
이제 /etc/kibana/conf.d 경로에 설정 파일을 만들고 jdbc를 이용하여 rds와 연결하고 input과 output을 설정하여 준다.
$ sudo vi /etc/logstash/conf.d/rds.conf
input {
jdbc {
jdbc_connection_string => "jdbc:postgresql://boltnnutplatform.crt62jbermqa.aa
p-northeast-2.rds.amazonaws.com/"
jdbc_user => "id"
jdbc_password => "password"
schedule => "*/2 * * * *"
statement => "select * from data"
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "rds"
}
이제 logstash를 실행하고 schedule (cron)에서 설정된 시간만큼 지난 후에 kibana에 접속하여 index management를 확인하여 보면 연결한 rds의 데이터가 elasticsearch에 output 된 것을 확인할 수 있다.
'Elasticsearch' 카테고리의 다른 글
Elasticsearch + nori 한글 형태소 분석기로 데이터 검색하기 # 2 (0) | 2021.08.30 |
---|---|
Elasticsearch + nori 한글 형태소 분석기로 데이터 검색하기 # 1 (0) | 2021.08.27 |
댓글