우선 mysql 테이블의 데이터를 담을 엘라스틱서치의 인덱스를 생성해준다.
$curl -u elastic:****** -XPUT 'localhost:9200/test?pretty'
이렇게 index만 생성해준다. 매핑은 필요없다. 테이블의 값을 가져와서 그대로 담아주기때문에 그때 자동으로 매핑이 생성된다.
이제 logstash를 위한 config파일을 만들어보자.
$cd /usr/share/logstash/data
config파일은 어디에 있어도 상관없다.
$vi test.conf
test.conf에 위 내용을 입력하고 저장한다.대충 보면 무슨 뜻인지 알것이다.
input은 데이터를 가져오는거고 output은 데이터를 입력하는거다.mysql의 testtable에서 엘라스틱서치의 test 인덱스에 넣는거다.
여기서 중요하게 봐야할것은 output의 document_id이다. 유니크한 pk를 입력해주어야한다. mysql 테이블의 pk를 입력해주면 좋다. idx라고 돼 있는것은 mysql 테이블의 컬럼명이다.
config를 만들었으니 실행해보자
$cd /usr/share/logstash/bin
$./logstash -f ../data/test.conf
$nohup ./logstash -f ../data/test.conf & -> 백그라운드로 계속 실행할때 사용
이렇게 해주고 기다리면 testtable을 읽어와서 test 인덱스에 기록한다. 엘라스틱서치에서 확인해보면 알 수 있다.
아주 단순한 기본적인 방법으로 연동해보았다. 다음엔 좀더 고급 기술을 사용해보겠다.
'엘라스틱서치' 카테고리의 다른 글
엘라스틱서치에서 group by 사용하기 - aggs (0) | 2023.07.25 |
---|---|
Logstash의 활용 - 새롭게 등록되거나 수정된 데이터만 등록 (0) | 2023.07.03 |
Logstash의 활용 - Mysql과 연동하기, 우분투(UBUNTU)에 JDBC설치, plugin설치 (0) | 2023.06.30 |
Logstash의 활용 - 우분투(UBUNTU)에 Logstash 설치 (0) | 2023.06.30 |
엘라스틱서치 조건으로 문서 삭제 _delete_by_query (0) | 2021.01.01 |