Docker에서 ELK(Elastic Logstash Kibana) 실행

3147 단어 docker
ELK(Elastic Logstash Kibana)는 Elastic 스택의 일부인 소프트웨어 구성 요소 집합입니다.

ELK는 무엇을 합니까?



평신도 용어로 이것을 각각이하는 일을 설명하려면

  • Elasticsearch는 주로 데이터 저장소입니다
  • .

  • Logstash는 Elasticsearch에 데이터를 원하는 형식으로 저장하는 데이터 파싱 소프트웨어입니다

  • Kibana는 Elasticsearch에 저장된 데이터를 쿼리/시각화하는 데 사용할 수 있는 UI입니다

  • 그들이하는 일과 작동 방식에 대한 심층적 인 이해를 얻으려면 다음을 권장합니다.

    ELK를 어떻게 실행합니까?



    위의 각 구성 요소는 별도의 소프트웨어 조각이므로 이를 실행하는 한 가지 방법은 설치 지침으로 이동하여 각 구성 요소를 개별적으로 실행하는 것입니다.

    더 쉽고 편리한 실행 방법은 Docker를 사용하는 것입니다.

    이 스택으로 실험하고 있는 자신을 발견했다면 이 3가지를 모두 함께 실행하고 싶을 것입니다. dockerdocker-compose를 사용하는 것보다 더 나은 방법은 무엇입니까?

    도커 작성



    이 포스트를 작성할 당시 저는 ELK 스택 버전6.6을 실험하고 있었습니다. 따라서 다음docker-compose.yml은 이미지 버전6.6을 나타냅니다.




    위의 요지를 보면 이름으로 디렉토리를 참조합니다logstash-conf. 이 디렉토리의 내용은 데이터 구문 분석 방법을 지시하는 logstash 구성 파일입니다.



    이 파일의 내용은 다음과 같습니다.




    <스크립트 id="gist-ltag"src="https://gist.github.com/anandsunderraman/736bceba231a4dce7522bfa924062449.js?file=jsonlogs-pipeline.conf"/>


    Logstash에서 무엇을 구성하고 있습니까?



    다음 섹션에서는 beats의 또 다른 소프트웨어인 Elastic를 통해 logstash에 대한 입력을 얻을 것이라고 나와 있습니다. 이는 다른 게시물에서 설명하려고 합니다.



    포트5044를 통해 데이터를 얻도록 구성하고 데이터가 json 형식일 것으로 예상합니다.




    input {
        beats {
            port => "5044"
            codec => "json"
        }
    }
    


    여기에서는 logstash에서 json 플러그인을 사용하고 있으며 로그 메시지의 json 필드에서 message 데이터를 추출하려고 한다고 명시합니다. 다소 모호하게 들릴 수 있다는 것을 압니다. 하지만 이 문제에 대해 저와 함께 믿음의 도약을 하시길 바랍니다.




    filter {
      json {
        source => "message"
      }
    }
    


    드디어 출력이 되었습니다. 우리는 기본적으로 "%{[fields][project]}-%{[fields][application]}-%{+YYYY.MM.dd}"
    로 정의된 인덱스에 데이터를 저장하기 위해 데이터를 Elasticsearch에 전달합니다.




    output {
        elasticsearch {
            hosts => "${ELASTIC_HOST}"
            index => "%{[fields][project]}-%{[fields][application]}-%{+YYYY.MM.dd}"
            codec => json
        }
    }
    


    그것을 실행하는 방법?



    <울>
  • 로컬 컴퓨터에서 시작docker
  • docker-compose up가있는 디렉토리에서 docker-compose.yml를 실행하십시오.


  • Kibana로 이동하려면 어떻게 합니까?



    <울>
  • 브라우저에서 http://localhost:5601/
  • 를 가리키도록 합니다.
  • 이것은 5601kibana 이미지에 제공된 포트docker-compose.yml를 기반으로 합니다.


  • 결론



    이 튜토리얼의 주요 목표는 도커를 사용하여 ELK 스택을 실행하는 방법을 보여주는 것이었습니다.

    좋은 웹페이지 즐겨찾기