로그스태시란?
로그는 표준화되지 않은 임의의 데이터 뭉치들이라고 할 수 있다.
이러한 데이터들을 수집하는 과정에서 형태를 분석하고, 시스템에서 인식해서 저장할 수 있도록 정제하는 작업을 편리하게 지원한다.
이전 게시글에서 로그스태시를 설치하였다.
https://csg1353.tistory.com/35
로그스태시를 통해 csv파일을 적재해보자.
파일 적재
자세한 적재 방법은 개인정보 문제로 Notion에 기술한다. 여기서는 사용 방법만 작성하였다.
scp -i [Your-PrivateKey.pem] [Your-Local-File] ec2-user@[Your-Instance-IP]:[Your-Server-Directory]
//실제 사용 예시
scp -i your-key.pem example.txt ec2-user@[Your-Instance-IP]:~
Config 파일 작성
Logstash 작동을 정의하는 configuration 파일을 작성한다.
# 로그스태시 Config
# mutate 함수는 동적 매핑이 아닌 임의의 숫자 자료형으로의 변경을 위해 작성하였음.
input {
file {
path => "/home/ubuntu/csvFiles/test.csv" # 여기에 실제 CSV 파일 경로를 입력
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
# 분리자는 csv파일이기에, ','로 하도록 한다.
separator => ","
columns => ["id","accommodation_name","accommodation_type","accommodation_addr","accommodation_score","accommodation_pic","accommodation_price","accommodation_lat","accommodation_lng"]
}
# 현재 숫자 값에 파싱데이터 ',' 가 포함되어 있어 임시 취소 처리 (100000이 아닌 100,000 이렇게 되어있음)
# mutate {convert => ["accommodation_score", "float"]}
# mutate {convert => ["accommodation_price", "integer"]}
# mutate {convert => ["accommodation_lat", "float"]}
# mutate {convert => ["accommodation_lng", "float"]}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "test_logstash_accommodations"
}
}
해당 config파일을 logstash.config로 만들고, 기본 디렉토리의 csvFiles에 보관했다.
/usr/share/logstash/bin/logstash -f /home/ubuntu/logstash/logstash.conf
해당 명령어로 로그스테시를 실행하자. (절대 경로를 사용해야 한다.)
중간에 에러가 있었는데, /usr/share/logstash/data 쓰기 권한이 없는 경우가 있었다.
이 경우 해당 명령어로 권한을 추가해주어야 한다.
sudo chmod -R 777 /usr/share/logstash/data
파싱 불가 이슈
.csv파일은 일반적으로 ',' 로 쉼표 구분한다. 그런데 우리의 데이터셋에는 ','가 자주 사용되어 파신 과정에서 에러가 나는 것 같다.
따라서 구분자를 쉼표가 아닌 커스텀 구분자를 사용해야 할 듯 하다.
https://learnandcreate.tistory.com/560
따라서, '|||' 로 구분을 하고자 한다.
'프로젝트 > 여행지 오픈 API' 카테고리의 다른 글
[ElasticSearch] 로그스태시 최종 삽입 (0) | 2023.11.02 |
---|---|
[ElasticSearch]Springboot 매치 쿼리 - @Query, @Mapping, @Setting (1) | 2023.11.01 |
[ElasticSearch] Nori 분석기, 오타 보정(fuzzy), 로그스태시(logStash) (0) | 2023.10.30 |
[ElasticSearch] 엘라스틱서치 - Springboot 연동 (2) | 2023.10.30 |
짧게 진행하는 이번주 회고 (0) | 2023.10.27 |