2 minute read

Elastic

설치

  1. 가상머신 준비
         cpu	mem	프로그램
     centos8	2	4	엘라스틱서치    ip : 192.168.197.100
     centos8	1	2	로그스태시      ip : 192.168.197.110
     centos8	1	2	키바나          ip : 192.168.197.120
    
  2. 엘라스틱 서치
    • 방화벽 해제
      systemctl stop firewalld
      systemctl disable firewalld
      setenforce 0
      
  • 레포지터리 추가
    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 elasticsearch
    
  • 바인딩 주소 설정
    vi /etc/elasticsearch/elasticsearch.yml
    
network.host: 192.168.197.100
discovery.seed_hosts: ["192.168.197.100"]
cluster.initial_master_nodes: ["192.168.197.100"]

image

  • 실행
    systemctl enable elasticsearch
    systemctl restart elasticsearch
    
  1. 로그스태시
  • 방화벽 해제
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    
  • 레포지터리 추가
    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
    
  • 간단한 파이프라인 설정
    chgrp logstash /var/log/secure	# 권한 설정
    chmod 640 /var/log/secure		# 권한 설정
    vi /etc/logstash/conf.d/sshd.conf
    



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://192.168.197.100:9200"]    #엘라스틱서치 아이피
    index => "sshd_fail-%{+YYYY.MM}"
  }
}
  • 실행
    systemctl restart logstash
    # 만약 오류가 나면
    # ps -ef | grep logstash
    # kill -9 logstash번호
    
  • 확인
    로그스태시를 다른 창에 실행시켜 접속 아이디를 틀려보면
    curl 192.168.197.100:9200/_cat/indices?v
    

    image

  1. 키바나
  • 방화벽 해제
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    
  • 레포지터리 추가
    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 kibana
    
  • 키바나 설정
    vi /etc/kibana/kibana.yml
    

    ```shell

    7번 라인 주석 해제 후 다음과 같이 설정

    server.host: “0.0.0.0”

32번 라인 주석 해제 후

elasticsearch.hosts: [“http:// 엘라스틱 서치의 IP :9200”]

![image](/assets/img/image/elastic/5.png)<br/>
![image](/assets/img/image/elastic/6.png)<br/>

- 실행
```shell
systemctl enable kibana
systemctl restart kibana
  • 확인
    윈도우에서 웹브라우저로 http://키바나IP주소:5601
    image
    image
    image
    image
    image

Kafka와 연결

` logstash `

vi /etc/logstash/conf.d/kafka.conf
input {
        kafka {
                bootstrap_servers => "192.168.197.10:9092"  # 내 카프카 ip
                topics => ["logging.post.like"]
        }
}

output {
        file {
                path => "/etc/logstash/data/kafka.log"
        }
}
  • 확인
    ```shell mkdir /etc/logstash/data cd /etc/logstash/data touch kafka.log chmod 755 kafka.log chown logstash:logstash kafka.log

systemctl restart logstash # 재시작


```shell
tail -f kafka.log

장고의 like버튼을 눌러 확인
image

엘라스틱에 카프카 정보 보내기

` logstash `

vi /etc/logstash/conf.d/kafka.conf

input {
        kafka {
                bootstrap_servers => "192.168.197.10:9092"
                topics => ["logging.post.like"]
        }
}


output {
        elasticsearch {
                hosts => ["http://192.168.197.100:9200"]    # 엘라스틱 ip
                index => "post-like-%{+YYYY.MM}"
        }
}
  • 재시작
    systemctl restart logstash
    systemctl restart elasticsearch
    
  • 확인
    image
    홈페이지에서 like를 누르면 카프카의 정보가 로그스태시를 통해 키바나로 이동되어 키바나 홈페이지에 출력된다.

Tags:

Categories:

Updated: