Logstash의 활용 - mysql 데이터를 엘라스틱서치에 자동 등록
우선 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 인덱스에 기록한다. 엘라스틱서치에서 확인해보면 알 수 있다.
아주 단순한 기본적인 방법으로 연동해보았다. 다음엔 좀더 고급 기술을 사용해보겠다.