ELK + grafana 구축하기
구축 현황
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
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
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
kibana 설치 및 설정
- elasticsearch 에 저장된 데이터를 보여주는 대시보드
- 다운로드 링크: https://www.elastic.co/kr/downloads/past-releases/kibana-6-2-3
- 설정: {kibana 압축 해제한 폴더}/kibana.yml
server.host: "localhost" server.port: 5601
- 실행:
${kibana 압축 해제한 폴더}/bin/kibana
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 |