보안 설정
elasticsearch 보안 설정을 위해선 elasticsearh.yml에서 다음과 같은 코드를 추가하시면 됩니다.
xpack.security.enabled: true
이후 bin/elasticsearch-setup-passwords interactive를 커멘드라인에 입력한 후 비밀번호를 설정하면 되겠습니다.
kibana 역시 보안 설정을 위해 kibana.yml에서 다음과 같은 코드를 추가하시면 됩니다.
elasticsearch.username: "user name"
elasticsearch.password: "password"
xpack.security.encryptionKey: "something_at_least_32_characters"
xpack.security.sessionTimeout: 600000
elasticsearch & kibana가 서버에서 잘 돌아가고 있는지 확인
ps -ef | grep elasticsearch
ps -ef | grep kibana
logstash conf파일
conf파일은 본인이 원하는 대로 설정하는 것으로 편하게 만들면 됩니다. 따로 어느 폴더에 저장된 파일을 수정하는 것이 아니라 sudo vi logstash-simple.conf 명령어를 통해 새로운 파일을 생성하고 작업을 진행하는 것입니다.
logstash는 자동으로 timestamp 값을 현재 입력된 시간으로 설정합니다. 만약 각 데이터에 특정 시간을 timestamp 값으로 설정하고 싶다면 아래와 같이 filter을 사용하면 됩니다.
아래 코드는 임성현님의 블로그를 참고했습니다.
input {
stdin { # stdin의 경우, 커멘드라인에 직접 데이터를 입력합니다.
codec => json
}
}
filter {
date{
match => ["connect_date", "yyyyMMddHHmm"] #connect_date에 해당하는 내용을 날짜 형식으로 변환
}
}
output {
stdout{ # stdout의 경우, 커멘드라인에 결과값이 출력됩니다.
codec => rubydebug
}
elasticsearch {
hosts => ["localhost:9200"]
index => "logstash-simple"
user => "user name"
password => "password"
}
}
아래 conf 파일은 허민석씨의 인프런 무료강의를 참고하면서 따라해봤습니다. 주의할 점은 처음 데이터를 logstash에 입력할 때 sincedb_path => "/dev/null"을 설정하시면 안된다는 것입니다. 만약 동일한 데이터를 다시 입력하게 된다면 sincedb_path => "/dev/null"이 필요합니다. 저 같은 경우, 처음 csv 파일을 logstash에 입력할 때부터 설정해두니 오류가 발생했네요.
input {
file {
path => "/Users/"labtop name"/Downloads/logstash-7.7.1/populationbycountry19802010millions.csv"
start_position => "beginning" #디폴트 값은 "end": 실시간 log는 최신 것부터 읽어야 하기 때문
#sincedb_path => "/dev/null"
#최초로 logstash에 데이터를 입력한 이후에는 start_position을 무시하고 sincedb_path에 저장된 부분부터 읽기 시작
#개발이나 테스트 단계에서는 sincedb 정보를 저장하지 않도록 "/dev/null"으로 설정
}
}
filter {
csv {
separator => ","
columns => ["Country","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010"]
}
mutate {convert => ["1980", "float"]}
mutate {convert => ["1981", "float"]}
mutate {convert => ["1982", "float"]}
mutate {convert => ["1983", "float"]}
mutate {convert => ["1984", "float"]}
mutate {convert => ["1985", "float"]}
mutate {convert => ["1986", "float"]}
mutate {convert => ["1987", "float"]}
mutate {convert => ["1988", "float"]}
mutate {convert => ["1989", "float"]}
mutate {convert => ["1990", "float"]}
mutate {convert => ["1991", "float"]}
mutate {convert => ["1992", "float"]}
mutate {convert => ["1993", "float"]}
mutate {convert => ["1994", "float"]}
mutate {convert => ["1995", "float"]}
mutate {convert => ["1996", "float"]}
mutate {convert => ["1997", "float"]}
mutate {convert => ["1998", "float"]}
mutate {convert => ["1999", "float"]}
mutate {convert => ["2000", "float"]}
mutate {convert => ["2001", "float"]}
mutate {convert => ["2002", "float"]}
mutate {convert => ["2003", "float"]}
mutate {convert => ["2004", "float"]}
mutate {convert => ["2005", "float"]}
mutate {convert => ["2006", "float"]}
mutate {convert => ["2007", "float"]}
mutate {convert => ["2008", "float"]}
mutate {convert => ["2009", "float"]}
mutate {convert => ["2010", "float"]}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "population-data"
user => "user name"
password => "password"
}
stdout {}
}
참! 따로 설정한 logstash conf 파일을 실행하려면 logstash 폴더 내부에서 다음과 같은 명령어를 입력하면 됩니다. 특히 "-f"에 주의하셔야 하는데, 이유는 내가 따로 설정한 conf 파일을 실행하기 위해 꼭 필요한 조건이기 때문입니다. "-e"를 입력하면 command로 conf 설정을 하게 됩니다.
bin/logstash -f /Users/"labtop name"/Downloads/logstash-7.7.1/populationbycountry19802010millions.csv
'문돌이 존버 > ELK 스터디' 카테고리의 다른 글
Django MySQL 멀티 테이블 데이터 처리를 위한 Logstash conf 파일 설정 (0) | 2020.08.15 |
---|---|
AWS EC2 Ubuntu 18.04에 ELK 설치 + Linux 2 AMI에 Django 설치 (2) | 2020.08.14 |
Mac 버전 장고(Django), MySQL, Logstash 연동 튜토리얼 (0) | 2020.08.12 |
Kibana map 시각화에 필요한 geo_point 생성 (2) | 2020.06.13 |
ELK 기본 명령어 스터디(튜토리얼) (0) | 2020.05.24 |