[Logstash] Logstash

이정훈·2023년 3월 23일
0

ELK

목록 보기
3/4
post-thumbnail
  • 로그스테시 다양한 곳에서 들어오는 형태를 일정하게 변형해서 전탈해주는 역할
  • 데이터 파이프라인
  • 작동원리!
    인풋과 필터 그리고 아웃풋
    인풋 : 데이터가 들어오는 곳 여러곳에서 들어온다
    필터 : 형식을 바꿔준다.
    아웃풋 : 변환된 데이터를 어디에 저장할거냐? 어디에 보낼거냐? 원하는 데로

logstash

  • 설치(자반기반)
yum -y install java-1.8.0-openjdk-devel.x86_64  
  • 레포지토리 추가 & 설치
cat > /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

dnf -y install logstash
  • 실행
/usr/share/logstash/bin/logstash  -f  /etc/logstash/conf.d/std.conf

  • 터미널에 프롬프트가 안나오고 입력만 가능한 상태이면 실행중인 것
chgrp logstash /var/log/secure
chmod 640 /var/log/secure
  • logstash의 권한을 줘야한다.

  • 설정

# 누가 접속을 잘못했는지 확인해 보는 코드
input {
  file {
    type => "seucure_log"
    path => "/var/log/secure"
  }
}
filter {
  grok {
    add_tag => [ "sshd_fail" ]
    match => { "message" => "Failed %{WORD:sshd_auth_type} for %{USERNAME:sshd_invalid_user} from %{IP:sshd_client_ip} port %{NUMBER:sshd_port} %{GREEDYDATA:sshd_protocol}" } # 이런 것들만 뽑아내는것
  }
}

output {
  elasticsearch {
    hosts => ["http://200.200.200.70:9200"] # 엘라스틱에 저장
    index => "sshd_fail-%{+YYYY.MM}" # 이러한 인덱스로 저장!
  }
}
  • 재실행
systemctl restart logstash
# 재실행 할떄는 그냥 restart만 해주면 된다.
  • 확인
    로그스테시 putty창을 하나 더 실행해서 로그인을 실패해 본다.

  • 포스트맨으로 엘라스틱서치에 지금 sshd_fail-2023.03 인덱스가 만들어진 것을 확인

  • 키바나에서 확인해 보기
  • 햄버거버튼 → Stack Management → Index Patterns → Create index pattern →
    → Name에 인덱스이름* 입력 → Timstamp field에 @timestamp 선택 → create index pattern
  • 햄버거버튼 → Discover 클릭
  • 로그인 실패시 실시간으로 데이터가 쌓이는 것을 확인할 수 있다.

  • 포스트맨으로 누가 비밀번호를 실패했는지 ip도 확인할 수 있다.
    로그에 쌓인 파일중에 저걸 찾는 명령어이다.
profile
싱숭생숭늉

0개의 댓글