Elastic Stack 실전 학습 강좌 ~ 로그 데이터 수집, 분석 및 시각화

Elastic Stack 소개


최근 몇 년 동안 인터넷의 데이터 생성 속도가 끊임없이 증가하고 있다. 사용자가 원하는 내용을 더욱 빠르고 정확하게 찾을 수 있도록 하기 위해 사이트 내 검색이나 응용 프로그램 내 검색은 없어서는 안 될 기능 중의 하나가 되었다.이 동시에 기업이 축적한 데이터도 끊임없이 증가하고 대량의 데이터 분석 처리, 가시화에 대한 수요도 점점 높아진다.
이 분야에서 개원 프로젝트인 Elastic Search는 시장의 관심을 얻었다. 예를 들어 작년에 Elastic회사와 아리운이 합작 파트너 관계를 맺어 아리운 Elasticsearch의 클라우드 서비스를 제공했다. 올해 10월에 Elastic회사가 상장되었고 올해 11월에 Elastic 중국 개발자 대회가 열렸다. 현재 각 클라우드 업체들은 거의 Elasticsearch를 바탕으로 하는 클라우드 검색 서비스를 제공하고 있다.Elasticsearch가 기업에서 점점 보편화되고 중요해지고 있음을 나타낸다.
먼저 홈페이지 소개, ok, 핵심 키워드: 검색, 분석.
Elasticsearch is a distributed, RESTful search and analytics engine
capable of solving a growing number of use cases. As the heart of the
Elastic Stack, it centrally stores your data so you can discover the
expected and uncover the unexpected.
Elasticsearch는 분포식 RESTful 스타일의 검색과 데이터 분석 엔진으로 끊임없이 쏟아지는 각종 용례를 해결할 수 있다.엘라스틱으로.
Stack의 핵심은 데이터를 집중적으로 저장하여 예상치 못한 상황과 예상치 못한 상황을 발견하는 데 도움을 줍니다.
제품의 장점: 속도가 빠르고 확장성, 탄력성, 유연성은 일부 응용 장면에서 Elasticsearch를 사용할 뿐만 아니라 Elastic 산하의 다른 제품, 예를 들어 Kibana, Logstash 등을 사용한다. 흔히 볼 수 있는 ELK는 Elasticsearch, Logstash, Kibana 등 세 가지 제품을 가리키는데 Elastic Stack은 Elastic 산하의 모든 소스 제품을 가리킨다.
응용 장면: (사진은 Elastic 홈페이지에 캡처)

필드 실전


이어서 우리는 실전에서 응용 장면을 하나 실전할 것이다.장면: 백엔드 응용 프로그램이 클라우드 서버에 배치되면 백엔드 응용 프로그램은 파일 형식으로 로그를 기록합니다.수요는 로그 내용을 수집하고 각 줄의 로그를 분석하며 구조화된 데이터를 얻어 검색, 처리와 시각화에 편리하다.
방안: Filebeat를 사용하여 로그를 Logstash로 전송하고 후자는 데이터를 해석하거나 변환한 다음에 Elasticsearch로 전송하여 저장한다. 그 다음에 데이터는 임의로 처리한다. 여기서 우리는 로그 데이터를 특정한 수요에 따라 가시화하고 가시화하는 일을 Kibana에게 맡긴다.(다른 방안도 가능: Filebeat를 통해 로그 데이터를 Elasticsearch에 직접 전송하고 Elasticsearch Ingest node가 데이터의 처리를 책임진다)

필요한 소프트웨어


이 사례에서 사용된 제품의 버전은 다음과 같다. 시스템: CentOS, 여기는 따로 배치되어 있고 함께 놓을 수 있다.1、Kibana_v6.2.3 (IP: 192.168.0.26)2、Elasticsearch_v6.2.3 (IP: 192.168.0.26)3、Filebeat_v6.2.3 (IP: 192.168.0.25)4、Logstash_v6.2.3 (IP: 192.168.0.25)

로그 내용


한 줄의 로그 내용이 다음과 같다고 가정하십시오. (로그 파일은/root/logs 디렉터리에 있습니다.)
 :
2018-11-08 20:46:25,949|https-jsse-nio-10.44.97.19-8979-exec-11|INFO|CompatibleClusterServiceImpl.getClusterResizeStatus.resizeStatus=|com.huawei.hwclouds.rds.trove.api.service.impl.CompatibleClusterServiceImpl.getResizeStatus(CompatibleClusterServiceImpl.java:775) 

 5 , “|” 
2018-11-08 20:46:25,949|  # 
https-jsse-nio-10.44.97.19-8979-exec-11|  #  
INFO|   #  
CompatibleClusterServiceImpl.getClusterResizeStatus.resizeStatus=| #  
trove.api.service.impl.CompatibleClusterServiceImpl.getResizeStatus(CompatibleClusterServiceImpl.java:775)   #  

파일 디렉토리는 다음과 같습니다(Elasticsearch와 Kibana는 다른 서버에 있으며 시작되었습니다).

Logstash 구성


logs 디렉터리에 수집해야 할 응용 로그,logstash를 저장합니다.conf가 Logstash를 위해 준비한 프로필입니다.
logstash.conf 내용은 다음과 같습니다(슬라이딩 가능).

input {
  beats {
    port => 5044
  }
}

filter {
  grok {
    match => { "message" => "%{GREEDYDATA:Timestamp}\|%{GREEDYDATA:ThreadName}\|%{WORD:LogLevel}\|%{GREEDYDATA:TextInformation}\|%{GREEDYDATA:ClassName}" }
  }
  date {
    match => [ "Timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ]
  }
}

output {
  elasticsearch {
    hosts => "192.168.0.26:9200"
    manage_template => false
    index => "java_log"
  }
}

다음 Logstash를 시작합니다. (가동 성공, 5044 포트 감청, 로그 데이터 전송 대기):

Filebeat 구성


Filebeat 구성 파일을 보려면 다음과 같이 하십시오.
filebeat.prospectors:
- type: log
  enabled: true
  #  
  paths:
    - /root/logs/*.log

filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false

setup.template.settings:
  index.number_of_shards: 3
  #index.codec: best_compression
  #_source.enabled: false

setup.kibana:
  host: "192.168.0.26:5601"

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

Filebeat 시작: (로그 파일이 업데이트되면 Filebeat에 감청되어 전송됩니다.)

로그 조회 및 시각화


마지막으로 Kibana를 보고 로그를 가시화하세요.Kibana에서 index pattern을 만듭니다.log.Discover 페이지에서 로그 데이터를 조회합니다.
Visualize에서 시각 형상을 작성합니다.
Dashboard에서 도면을 조합합니다.
이로써 간단한 로그 데이터의 수집, 분석, 시각화를 완성할 수 있다.
Elastic Stack에는 강력한 기능이 많이 있습니다. 다음은 응용 프로그램 내 검색 사례를 살펴보겠습니다.

참고 자료

  • https://www.elastic.co/cn/blo...아리운은 엘라스틱 회사와 합작했다
  • https://www.elastic.co/guide/...입문하다
  • https://www.elastic.co/guide/...grok 플러그인
  • 좋은 웹페이지 즐겨찾기