logstash를 Docker로 이동하여 Elastic Cloud에 데이터를 업로드해 봅니다.

4423 단어 ElasticsearchLogstash

환경



환경: Elasticsearch는 Elastic Cloud 사용
logstash: 7.9.1
metricbeat: 7.9.1

Elastic Cloud는 설정이 끝난 것으로 한다.
Cloud Id, 패스워드도 메모가 끝난 것으로 한다.

각 기능의 관계는 이런 느낌



logstash 이미지 획득



아래에서 최신 이미지의 경로 확인

logstash | Docker @ Elastic

글을 쓸 때 최신이 7.9.1이었습니다.
docker pull docker.elastic.co/logstash/logstash:7.9.1

시작


docker run --rm -it -p 5044:5044 docker.elastic.co/logstash/logstash:7.9.1

다음이 표시되면 성공
[2020-09-22T02:58:20,563][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

시작 확인


$ docker ps

CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS              PORTS                              NAMES
b8867b83444c        docker.elastic.co/logstash/logstash:7.9.1   "/usr/local/bin/dock…"   7 minutes ago       Up 7 minutes        0.0.0.0:5044->5044/tcp, 9600/tcp   heuristic_mestorf


Metricbeat



Elastic Cloud에 데이터 업로드 Metricbeat에서 데이터 소스를 생성하고 Logstash로 전송

Download Metricbeat
Download Metricbeat • Ship Metrics to Elasticsearch | Elastic

metricbeat.yml 편집



elasticsearch를 주석 처리하고 logstash 사용
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]

output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

metricbeat.yml 실행


./metricbeat -e

logstash 확인



logstash 측에 다음과 같이 표시되면 metricbeat -> logstash에 데이터가 전송되고 있습니다.
{
    "@timestamp" => 2020-09-22T04:31:06.525Z,
         "event" => {
          "module" => "system",
        "duration" => 74705442,
         "dataset" => "system.process"
    },
       "service" => {
        "type" => "system"
    },
     "metricset" => {
          "name" => "process",
        "period" => 10000
    },
    省略

Logstash 설정 변경



기본적으로 수신한 데이터를 표준 출력으로 출력하기만 하므로 Elastic Cloud로 데이터를 전송하도록 설정을 변경한다.

대상의 색인 이름을 확인합니다.



Endpoint에 다음과 같은 Get을 던져라.
Get

https://xxxxxxxxxxx42b7b40a0773f8801e.us-east-1.aws.found.io:9243/_cat/indices?v

logstash.conf 추가



logstash.conf에 다음과 같은 내용으로 한다.

logstash.conf
input {
  beats {
    port => 5044
  }
}
output {
    elasticsearch {
        hosts => ["https://xxxxxxxxxxx42b7b40a0773f8801e.us-east-1.aws.found.io:9243"]
        user => "elastic"
        password => "xxxxxxxxxxxxxxxxxxxxx"
        index => "metricbeat-7.9.1-2020.09.22-000001"
    }
}


logstash를 다시 시작


docker run --rm -it -p 5044:5044 -v /Users/xxxxx/Documents/Logstash:/usr/share/logstash/pipeline/ docker.elastic.co/logstash/logstash:7.9.1 

키바나에서 확인



Kibana의 HOME 화면에서 Visualize and Explore Data → Metrics를 선택



Host Metrics 선택



이런 식으로 표시되면 성공

좋은 웹페이지 즐겨찾기