ELK 분산 로그 시스템 구축

ELK


소개


ELK는 Elasticsearch, Logstash, Kibana라고 각각 밝혔다.그들은 완전한 로그 시스템의 해결 방안을 구성했다.
  • Logstash는 각 서비스의 로그를 수집, 필터링, 전송합니다..
  • Elasticsearch는 Logstash가 전송한 구조화된 데이터를 저장하여 Kibana에 제공한다..
  • Kibana는 사용자 UI 웹 페이지를 제공하고 데이터 전시와 분석을 통해 도표를 형성한다

  • ELK 아키텍처


    ELK 버전 대응 관계


    ELK 버전 대응 관계
    ELK 온가족 배럴 버전 다운로드 주소

    환경 구성


    다운로드 도구 wget

    yum install wget -y

    압축 해제 도구 zip

    yum install zip unzip

    java 환경


    다운로드


    공식 사이트 다운로드: jdk-8u181-linux-x64.rpm
    또는 실행
    wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm?AuthParam=1532483945_1ce1c40fee9c74cdfb2c8c33ba817e88

    다운로드가 끝난 후 rpm 패키지 이름 바꾸기
    mv jdk-8u181-linux-x64.rpm?AuthParam=1532483945_1ce1c40fee9c74cdfb2c8c33ba817e88 jdk-8u181-linux-x64.rpm

    설치

    rpm -ivh jdk-8u181-linux-x64.rpm

    설치 성공 여부 확인


    위의 모든 절차가 끝난 후에 이 때 우리는 설치가 성공했는지 확인하고 아래의 명령을 입력해야 한다. 그림과 같다.
    java -version
    echo $JAVA_HOME

    elisticsearch 2.4.6


    다운로드

    wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.4.6/elasticsearch-2.4.6.zip

    압축 해제

    unzip elasticsearch-2.4.6.zip 

    root 시작 허용 구성


    루트 권한으로 Elasticsearch를 실행하려면해결 방법은 실행할 때 매개 변수를 추가하는 것이다.
    bin/elasticsearch -Des.insecure.allow.root=true

    또는 bin/elasticsearch를 수정하고 ES_JAVA_OPTS 속성:
    ES_JAVA_OPTS="-Des.insecure.allow.root=true"

    방화벽을 닫다

    // 
    systemctl stop firewalld
    // 
    systemctl disable firewalld

    config/elisticearch를 설정합니다.yml

    cluster.name: mntx-cluster
    node.name= node-1
    network.host:192.168.29.129
    http.port:9200

    elasticsearch 시작

    ./elasticsearch-2.4.6/bin/elasticsearch

    백그라운드 실행
    ./elasticsearch-2.4.6/bin/elasticsearch &

    시작 성공 여부 확인


    Head 플러그인 설치

    elasticsearch/bin/plugin install mobz/elasticsearch-head

    head 플러그인 사용
    http://192.168.29.129:9200/_plugin/head/

    Logtash 2.4.6


    다운로드

    Wget https://download.elastic.co/logstash/logstash/logstash-2.4.1.zip

    압축 해제:

    unzip logstash-2.4.1.zip

    새 프로필logstash-es.conf:

    touch ./logstash-2.4.1/config/logstash-es.conf
    input {
        tcp {  
            port => 9601  
            codec => json_lines         
        }
    }
    output {
            elasticsearch {
                    #  elashticsearch 
                    hosts => "localhost:9200"
            }
            stdout { codec => rubydebug}
    }

    들여쓰기는 사양명세에 부합해야 합니다.

    logstash json 플러그인 설치

    ./bin/logstash-plugin install logstash-codec-json_lines

    logstash 실행

    ./bin/logstash -f ./config/logback-es.conf         ## 
    ./bin/logstash -f ./config/logback-es.conf  &  ## 

    logstash 닫기

    ps -ef | grep logstash                    # 
    kill -9 4617                              ##pid 4617  pid

    kibana 설치


    다운로드

    wget https://download.elastic.co/kibana/kibana/kibana-4.6.6-linux-x86_64.tar.gz

    압축 해제

    tar -xzvf kibana-4.6.6-linux-x86_64.tar.gz 

    프로비저닝

    vi ./config/kibana.yml
    server.port: 5601       ## 
    server.host: "localhost"  ## ip   
    
    elasticsearch.url: "http://localhost:9200" ##elasticsearch   elasticsearch 

    부팅

    ./bin/kibana       # 
    ./bin/kibana &

    Sptingboot 항목 구성


    pom 파일 의존

    
        net.logstash.logback
        logstash-logback-encoder
        4.11
    

    logback.xml 프로필

    
    
    
        
            192.168.253.6:9601     
            
        
     
              
     
        
                                                       
                                                        
        
    
    

    테스트


    SpringbootLogbackApplication.java 테스트, 100회 순환하는 로그 기록 쓰기
    @SpringBootApplication
    public class SpringbootLogbackApplication {
        private final static Logger logger = LoggerFactory.getLogger(SpringbootLogbackApplication.class);
     
        public static void main(String[] args) {
            new Thread(()->{
                for (int i=0;i<100;i++){
                    logger.info("---test---"+i);
                }
            }).start();
            SpringApplication.run(SpringbootLogbackApplication.class, args);
        }
    }

    결과 보기


    logtash 컨트롤러에서 로그 기록 출력


    head 플러그인을 사용하여elasticsearch의 데이터를 관찰하다


    키바나를 사용하여 데이터를 관찰하고,


    참고 자료:https://blog.csdn.net/qq_2221...

    좋은 웹페이지 즐겨찾기