ELK + grafana 구축

개발 2019. 1. 8. 04:33

ELK + grafana 구축하기

  1. 구축 현황 

  2.  

  3. elasticsearch 설치 및 설정

    • 데이터 저장
    • 다운로드
    • 설치: tar.gz 압축해제
      $ tar xvfz elasticsearch-6.5.2.tar.gz
      
    • 설정: {ES 압축 해제한 폴더}/conf/elasticsearch.yml

      # JVM이 memory 영역을 관리할 수 있도록 설정 - /etc/security/limits.conf 에 사용자 설정 추가 필요
      bootstrap.memory_lock : true
      
      # 외부에서 접속 가능하도록 network 설정
      network_host: 0.0.0.0
      network.bind_host: 0.0.0.0 # 설정값이 없어서 key 등록 부터 해줘야 한다
      
    • 설정: {ES 압축 해제한 폴더}/conf/jvm.properties
      # ES 는 heap memory 를 32GB 정도로 잡아주는 것이 일반적이다
      -Xms32g
      -Xmx32g
      
    • 실행:
      ${ES 압축 해제한 폴더}/bin/elasticsearch
      
    • 동작 확인:
      $ curl http://localhost:9200
      
  4. logstash 설치 및 설정

    • 데이터 수집/필터링하여 저장소에 전송
    • 설정: {logstash 압축 해제한 폴더}/conf/logstash.conf # 새로 만들어줘야 한다
      input {
           beats {
                   codec => json     # input type 을 json 으로 해주면 값을 치환하지 않아도 된다
                   port => 5044      # default port 사용
           }
      }
      filter {
       date {                        # elasticsearch 에서 사용할 timestamp 로 치환해주는 것이 좋다
               match => [ "datetime" , "ISO8601" , "yyyy-MM-dd HH:mm:ss" ]
               target => "@timestamp"  #Replacing timestamp
       }
      }
      output {
           elasticsearch {
                   hosts => ["localhost:9200"]
                   index => "INDEX_NAME-%{+YYYY.MM.dd}"  # 데일리 형태로 index 를 만들면 삭제하기 용이하다
           }
      }
      
    • 실행:
      ${logstash 압축 해제한 폴더}/bin/logstash -f {logstash 압축 해제한 폴더}/conf/logstash.conf
      
  5. filebeat 설치 및 설정

    • 데이터를 logstash 로 전송한다
    • 설정: {filebeat 압축 해제한 폴더}/filebeat.yml

       filebeat.inputs:
       - type: log
      
         # Change to true to enable this input configuration.
         enabled: true
      
         # Paths that should be crawled and fetched. Glob based paths.
         paths:
           - /Users/mr.sense/Dev/application/logs/*.log
       output.elasticsearch:
         # Array of hosts to connect to.
         hosts: ["localhost:9200"]
      
    • 실행:
      ${filebeat 압축 해제한 폴더}/filebeat -f {filebeat 압축 해제한 폴더}/filebeat.yml
      
  6. kibana 설치 및 설정

  7. grafana 설치 및 설정

    • 다운로드 링크
    • 설치: tar.gz 압축해제
      $ tar -zxvf grafana-5.4.2.linux-amd64.tar.gz
      
    • 실행:
      ${grafana 압축 해제한 폴더}/bin/grafana-server

         elasticsearch 를 data source 로 설정:


'개발' 카테고리의 다른 글

자바스크립트의 비동기 처리  (0) 2019.01.27
성공적인 Git 브랜치 모델  (0) 2018.10.18
React 튜토리얼  (0) 2018.04.15
vi 사용하기  (0) 2018.02.08
React 의 특징  (0) 2017.12.20
Posted by 감각적신사
,

모니터 없는 서버에서 robotframework 를 활용한 web browser 테스트 하기

  1. 테스트 환경

    • centos 7.4
    • Python 3.6.5
      • robotframework=3.0.4
      • robotframework-selenium2library=3.0.0
      • selenium=3.14.1
    • chromedriver 2.38
  2. headlness chrome

    • headlness chrome 이란?
       decktop 환경이 아니라 모니터가 존재 하지 않는 서버의 환경에서는 일반적인 방식으로는 크롬을 사용할 수 없다. 
       이를 해결해 주는 방식이 바로 Headless 모드이다. 
       브라우저 창을 실제로 운영체제의 '창' 으로 띄우지 않고 대신 
       화면을 그려주는 작업(렌더링)을 가상으로 진행해주는 방법으로 실제 브라우저와 동일하게 동작하지만 창은 뜨지 않는 방식을 말한다
      
    • headlness chrome 사용 예제

        *** Settings ***
        Library   Selenium2Library
      
        *** Test Cases ***
        Basic Test
            Open Html
      
        *** Keywords ***
        Open Html
            Open Browser      http://mrsence.tistory.com      headlesschrome
      
    • 활용
      • CI 서버(Jenkins) 에서의 동작이 가능하다
        • 빌드 후, 빌드된 web service 에 대한 테스트를 자동으로 할 수 있다
        • web service 가 정상 동작 중인지, 주기적으로 batch 형태로 서비스를 테스트 할 수 있다


Posted by 감각적신사
,

성공적인 Git 브랜치 모델

  • 블로그 참고

  • 주요 브랜치
    • master 브랜치:
      • 실제로 직접 코드를 푸시하지 않고, 작업 완료된 브랜치들을 병합하여 제품으로서의 완성된 코드를 관리하는 브랜치 이다
      • TAG 와 Release 를 통해 version 을 관리한다
    • develop 브랜치:
      • 실제 작업이 일어나는 브랜치
      • 직접 코드를 푸시하는 작업이 이루어지기도 하고
      • 별도의 feature 브랜치 를 merge 하기도 한다
  • 임시 브랜치
    • feature 브랜치:
      • develop 브랜치 에서 분기
      • develop 브랜치 에 반영 후 제거한다
    • release-* 브랜치:
      • develop 브랜치에서 분기
      • 이 브랜치가 마스터에 반영되어, 출시될때 까지 존재할 수 있다
      • master / develop 브랜치 에 반영 후 제거한다
      • master 브랜치 에 반영하는 시점에 TAG 를 생성한다
    • hotfix-* 브랜치:
      • master 브랜치에서 분기
      • 현재 배포된 버전에서 발생한 문제를 해결하기 위해 생성하는 브래치 이다
      • master / develop 브랜치 에 반영 후 제거한다
      • master 브랜치 에 반영하는 시점에 TAG 를 생성한다


'개발' 카테고리의 다른 글

자바스크립트의 비동기 처리  (0) 2019.01.27
ELK + grafana 구축  (0) 2019.01.08
React 튜토리얼  (0) 2018.04.15
vi 사용하기  (0) 2018.02.08
React 의 특징  (0) 2017.12.20
Posted by 감각적신사
,