로컬 ELK 스택 설정

4366 단어 docker
사진 제공: Chandler Cruttenden on Unsplash

에서 약속한 대로 여기서는 ELK 을 스핀업하는 방법을 살펴보겠습니다. 갑시다! 🚀

탄력있는



바로 본론으로: 오픈Portainer . "컨테이너"로 이동하여 "컨테이너 추가"버튼을 부수십시오. 그런 다음 아래 스크린샷을 보고 이름, 이미지, 포트 및 볼륨 값을 채웁니다. 재시작 정책을 중지하지 않는 한으로 변경할 수 있습니다. 한 가지 가벼운 차이점은 Elastic 허브에서 이미지를 가져올 수 있으려면 "고급 모드"를 클릭해야 한다는 것입니다. 스크린샷에는 이미 고급을 선택했기 때문에 "단순 모드"라고 표시되어 있습니다.



그런 다음 "컨테이너 배포"버튼을 누르고 잠시 기다립니다.

에 대한 내 첫 번째 기사를 읽었다면 거의 새로운 것이 없습니다. 당신은 그것을 읽었습니까? 🤔

여기서는 볼륨을 생성하지 않습니다. 그러나 당신은 확실히 할 수 있습니다. /usr/share/elasticsearch/data 에 매핑하십시오.

키바나



먼저 볼륨을 생성합니다(예: kibana_data ). 그런 다음 아래 스크린샷과 같이 컨테이너를 만듭니다.



로그스태시



야, 이걸 반복하는 게 지겨워? 😅 볼륨을 만들고 입력하고 있는 내용을 스크린샷과 비교하십시오.



배포하고 기다리십시오.

다음으로 구성합니다.

sudo nano /var/lib/docker/volumes/logstash_data/_data/config/logstash.yml


이것이 무엇인지 모르지만 중요합니다.

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://172.17.0.1:9200" ]


이제 파이프라인. 메인 구성과 파이프라인 구성을 분리해야 하는 이유에 대한 설명이 전혀 없지만, 처음 알아냈을 때 욕설과 좌절감, 눈의 피로감에 3시간이 걸렸습니다. 문서 어딘가에 있을 수도 있지만 너무 잘 묻혀 있어서 찾을 수 없었습니다.

sudo nano /var/lib/docker/volumes/logstash_data/_data/pipeline/logstash.conf


비트가 필요하지 않거나 호출되지 않았기 때문에 아래에서 이 구성을 사용했습니다. Logstash에 로그를 게시하고 싶습니다. official documentation을 참조하여 언제든지 원하는 대로 구성할 수 있습니다.

input {
  http {
    port => 5044
  }
}

output {
  stdout {
    codec => json
  }
  elasticsearch {
    hosts => ["http://172.17.0.1:9200"]
    index => "logstash-%{+YYYY}"
  }
}


이제 우리는 이것을 시도합니다! 단순curl -XPUT 'http://127.0.0.1:5044/' -d 'log'이면 충분합니다. 이제 http://0.0.0.0:5601/app/management 으로 이동합니다. 토스트 메뉴의 "관리"/"스택 관리"아래에 있습니다. 사이드 메뉴에서 "데이터"아래의 "인덱스 관리"를 선택합니다. "logstash-2021"인덱스를 볼 수 있습니다. 또는 당신이 살고 있는 연도에 상관없이 데이터가 있다는 뜻입니다!



http://0.0.0.0:5601/app/discover으로 이동합니다. 토스트 메뉴 안에 있는 "Kibana"/"Discover"입니다. 그리고 우리는 무엇을 보게 될까요? 맞아, 우리가 방금 보낸 하나의 히트!



여기에서 원하는 대로 모든 것을 필터링할 수 있습니다 🐧


이 기사에서 새로운 것을 배웠기를 바랍니다. 이제 Docker와 Portainer의 도움으로 로컬 배포의 마스터가 되었습니다! 건배와 행복한 코딩!

좋은 웹페이지 즐겨찾기