https://github.com/miintto/elk-stack
Monitoring system with ELK stack for Web Application
https://github.com/miintto/elk-stack
docker-compose elasticsearch elk-stack kibana logstash
Last synced: 2 months ago
JSON representation
Monitoring system with ELK stack for Web Application
- Host: GitHub
- URL: https://github.com/miintto/elk-stack
- Owner: miintto
- Created: 2021-12-12T07:52:00.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-08-21T10:57:41.000Z (almost 4 years ago)
- Last Synced: 2025-03-24T07:55:43.843Z (over 1 year ago)
- Topics: docker-compose, elasticsearch, elk-stack, kibana, logstash
- Language: Dockerfile
- Homepage:
- Size: 6.84 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# ELK Stack
ELK 스택을 이용한 웹 어플리케이션 모니터링 시스템
- **Elasticsearch**: 검색 엔진 및 NoSQL 데이터베이스
- **Logstash**: 로그 데이터 파이프라인
- **Kibana**: 데이터 시각화 인터페이스
# 1. Architecture

## 1.1 [Web Application Server](http://kakao.miintto.com)
- Django 프레임워크 사용
- Filebeat 사용하여 Logstash로 로그 데이터 전송
## 1.2 RDB
- PostgreSQL 12.7 (1GB RAM / 1 vCPU / 40GB SSD)
## 1.3 ELK Cluster
- Docker-Compose 로 ELK 스택을 한 인스턴스에 구성
- 각 컨테이너마다 메모리 1GB씩 할당
# 2. Structure
~~~bash
$> git clone https://github.com/miintto/elk-stack.git
$> cd elk-stack
$> tree
.
├── docker-compose.yml # Service 정의
├── elasticsearch # Elastirsearch
│ ├── Dockerfile
│ └── config
│ └── elasticsearch.yml
├── kibana # Kibana
│ ├── Dockerfile
│ └── config
│ └── kibana.yml
└── logstash # Logstash
├── Dockerfile
├── config
│ └── logstash.yml
└── pipeline
└── logstash.conf
~~~
# 3. Quick Start
## 3.1 Requirement
- Docker: 20.10.7
- Docker-Compose: 2.2.3
## 3.1 Set Env
`.env` 파일을 생성하여 설정할 환경 변수를 입력합니다.
~~~bash
$> cp .env.example .env
$> vim .env
ELK_VERSION=1.7.1
ELASTIC_USERNAME=elastic
ELASTIC_PASSWORD=....
~~~
## 3.2 Check config files
설정한 환경 변수들이 제대로 세팅되었는지 확인합니다.
~~~bash
$> docker-compose config
networks:
elastic:
driver: bridge
services:
elasticsearch:
build:
...
~~~
## 3.3 Run
~~~bash
$> docker-compose up -d
~~~
## 3.4 Check running processes
~~~bash
$> docker ps
CONTAINER ID IMAGE COMMAND CREATED ...
cde0ed296b44 elk-stack_logstash "/usr/local/bin/dock…" 30 minutes ago ...
d938664e87bc elk-stack_kibana "/bin/tini -- /usr/l…" 30 minutes ago ...
285ac83fbe91 elk-stack_elasticsearch "/bin/tini -- /usr/l…" 30 minutes ago ...
~~~
## 3.5 Access to Kibana
http://<서버 IP 혹은 host>:5601 로 접속하여 설정한 아이디와 비밀번호로 로그인할 수 있습니다.

# 4. Extra settings
## 4.1 Filebeat agent
Logstash 서버로 로그를 보내주는 filebeat는 간단히 다음과 같이 구성할 수 있습니다.
```yml
# filebeat.yml
filebeat.inputs:
- type: filestream
id: django-was-log
paths:
- /project/log/path/*.log
output.logstash:
hosts: [ '${LOGSTASH_HOST}:5044' ]
```
[Filebeat 더 알아보기](https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html)