Post

Db와 Logstash Elasticsearch 연결(3)

Db와 Logstash Elasticsearch 연결(3)

데이터를 크롤링해서 db에 저장했다면 검색 엔진을 테스트할 수 있도록 logstash와 elasticsearch의 연결이 필요하다 먼저 logstash의 yml파일을 수정해서 db에서 데이터를 가져올 수 있도록 한다

Logstash와 Elasticseatch 설치

1
sudo apt install elasticsearch

elasticsearch를 우분투에서 설치

1
sudo systemctl start elasticsearch

elasticsearch를 실행시키기

 

1
sudo apt install logstash

logstash를 우분투에 설치

1
sudo systemctl start logstash

elasticsearch를 실행시키기 

jdbc 설치

마리아나 db를 사용하기 때문에 해당 db를 연결해줄 수 있는 jdbc를 다운 받아야한다

https://mariadb.com/downloads/connectors/connectors-data-access/java8-connector/

이 링크에서 자신에게 맞는 jdbc를 다운 받는다

내가 설치할 위치로 이동해서 wget으로 설치를 진행

1
wget https://dlm.mariadb.com/3752081/Connectors/java/connector-java-3.3.3/mariadb-java-client-3.3.3.jar

 

logstash yml 파일 설정하기

Logstash는 conf파일을 만들어서 데이터를 읽고 어떻게 저장할지를 작성하는 문서가 필요하다

notices.conf로 파일을 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
input {
   jdbc {
        jdbc_driver_library => "/etc/logstash/mariadb-java-client-3.3.3.jar" # jdbc의 위치를 작성
        jdbc_driver_class => "org.mariadb.jdbc.Driver"
        jdbc_connection_string => "jdbc:mariadb://localhost:3306/notice" # database name
        jdbc_user => "test" #user name
        jdbc_password => "1234"
        # use_column_value => true # 추적할 컬럼을 사용할 것인가 -> 나중에 불필요한 중복 방지를 위해서 사용
        # tracking_column => idx
        # last_run_metadata_path => "/etc/logstash/inspector-index.dat" #추적 데이터 저장 파일
        statement => "select * from notice_table" # 실행한 sql명령어
        # schedule =>"57 * * * *" # 주기적으로 실행할 때 사용함
    }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "testindex" # 인덱스 이름
    document_id => "%{title}"  # 고유 ID 필드가 있다면 이를 문서 ID로 사용
    # document_id가 겹친다면 최신 데이터만 반영
  }
  stdout { codec => json_lines }
}

 

etc/logstash/conf.d안에 파일을 위치시킨다면 logstash를 실행 시킬 때 자동으로 실행된다 만약 정상적으로 실행이 안된다면 etc/logstash의 pipeline.yml 내용에 추가

1
2
- pipeline.id: main
  path.config: "/etc/logstash/conf.d/*.conf"

해당 폴더 내에 모든 conf파일을 실행한다는 명령어

 

1
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t

conf 파일이 정상인지 테스트 오류가 없다면

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

 

1
sudo tail -f /var/log/logstash/logstash-plain.log

logstash의 실시간 로그를 보는 명령어

 

결과

This post is licensed under CC BY 4.0 by the author.