로그스태시에 dB연동하여 여러 쿼리를 쓸때 쓰는방법입니다.
1. sqljdbc6-6.4.0.jre8.jar 파일을 로그스태시 폴더에 위치
2. jdbc연결정보 ,쿼리, 스케줄(크론탭) 입력.(비밀번호는 평문은 ELK마다 암호화 하는법-키생성 이 있습니다. 필요하신분은 체크하셔서 암호화변수로 사용가능 합니다.)
3. 쿼리 index 구분은 type으로 실행 (7버전 이후는 type이 없어졌다고 들었는데 적용이되네요??)
4. 중복값 방지를 위해 elastic 부분에 document_id를 추가(혹은 마지막값을 쿼리설정에 추적하는방법)
- 로그 데이터가 기간을 두고 변동될확률이 있다면 변동값 반영을 위해 그기간만큼 select where절을
잡고 document_id로 pk를 관리하는 방법이 좋습니다.
5. elk및 기타 외국솔루션은 utc+9 해주지 않으면 날짜 인덱스 생성시에 그시간만큼 중복값이 발생합니다.
쿼리에 +9시간 을 해주세요..
-----------------------------------------------------------------------------------------------------------------------------------
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
jdbc {
jdbc_driver_library => "C:/Users/shind/Downloads/logstash-7.2.1/logstash-7.2.1/bin/sqljdbc6-6.4.0.jre8.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string=>"jdbc:sqlserver://localhost:1433;databaseName=rpa;"
jdbc_user => "sa"
jdbc_password => "pass"
statement => "select top 100 * from job"
type => "job"
schedule => "* * * * *"
}
jdbc {
jdbc_driver_library => "C:/Users/shind/Downloads/logstash-7.2.1/logstash-7.2.1/bin/sqljdbc6-6.4.0.jre8.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string=>"jdbc:sqlserver://localhost:1433;databaseName=rpa;"
jdbc_user => "sa"
jdbc_password => "pass"
statement => "select top 100 * from queue"
type => "queue"
schedule => "* * * * *"
}
}
output {
if [type] == "job" {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "logstashjob-%{+YYYY.MM.dd}"
}
}
if [type] == "queue" {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "logstashqueue-%{+YYYY.MM.dd}"
}
}
}
'IT_tech > ElasticSearch' 카테고리의 다른 글
logstash 쿼리문에 sp 넣기 (0) | 2020.04.27 |
---|---|
Elk 용량부족 관련오류 (0) | 2020.04.24 |
logstash 시간 gmt-> 한국시간 변경하기 (0) | 2019.06.12 |
ELK)logstash DB연동데이터 PK로 지정해 갱신받기 (0) | 2019.05.22 |
Elastic Stack (실시간 데이터 분석&시각화) - kibana (0) | 2019.02.12 |