
목차
ㄴ ELK란?
ㄴ 1단계 - Java 설치 확인 및 설치
ㄴ 2단계 - Elasticsearch 설치
ㄴ 3단계 - Kibana 설치
ㄴ 4단계 - Logstash 설치
ㄴ 5단계 - Kibana에서 데이터 확인 및 시각화
■ ELK란?
Elasticsearch, Logstash, Kibana를 묶어서 부르는 이름입니다. 이 세 가지 오픈 소스 도구는 데이터 수집, 분석, 시각화에 사용됩니다. ELK Stack이라고도 불리며, 다양한 로그 데이터와 메트릭 데이터를 수집하고 분석하여 시스템과 애플리케이션의 상태를 모니터링하고 문제를 해결하는 데 사용됩니다.
1. ELK 구성 요소
- Elasticsearch: 중앙 데이터 저장소로, 데이터를 저장하고 검색합니다.
- Logstash: 다양한 소스에서 데이터를 수집하고, 필터링 및 변환하여 Elasticsearch로 전송합니다.
- Kibana: 데이터 시각화 툴로, Elasticsearch에 저장된 데이터를 분석하고 그래프, 차트 등으로 시각화하여 보여줍니다.
2. ELK Stack의 활용
- 로그 모니터링: 서버, 애플리케이션, 네트워크 장비 등에서 발생하는 로그를 수집하고 분석하여 시스템의 상태를 파악합니다.
- 인프라 모니터링: 시스템의 CPU 사용량, 메모리 사용량, 디스크 사용량 등 인프라 관련 정보를 수집하고 분석하여 시스템의 성능을 측정합니다.
- 보안 분석: 시스템에 발생하는 보안 이벤트 로그를 수집하고 분석하여 보안 위협을 식별합니다.
- 애플리케이션 모니터링: 애플리케이션의 성능, 오류, 트래픽 등을 모니터링하여 애플리케이션의 상태를 파악합니다.
■ 1단계 - Java 설치 확인 및 설치
Elasticsearch와 Logstash는 Java로 작동합니다. 먼저 Java가 설치되어 있는지 확인하고, 없다면 설치해야 합니다.

1. Java 설치 확인:
1) 윈도우 키를 누르고 검색창에 cmd라고 입력한 후 명령 프롬프트를 실행합니다.
2) 명령 프롬프트 창에 java -version이라고 입력하고 Enter 키를 누릅니다.
3) 만약 Java가 설치되어 있다면 버전 정보가 표시됩니다.
※ 예 : openjdk version "1.8.0_..."
4) 만약 "java" 내부 또는 외부 명령, 실행할 수 있는 프로그램 또는 배치 파일이 아닙니다.라는 메시지가 나온다면 Java가 설치되어 있지 않은 것입니다.
2. Java 설치 (설치되어 있지 않은 경우):
1) Adoptium (권장): https://adoptium.net/releases.html 링크로 이동합니다.
2) LTS 버전 중에서 최신 버전을 클릭하여 Windows x64용 .msi 파일을 다운로드합니다.
3) 다운로드한 .msi 파일을 실행하여 설치를 진행합니다. (기본 설정으로 설치하시면 됩니다.)
4) 설치가 완료되면 다시 명령 프롬프트를 열고 java -version을 입력하여 Java가 제대로 설치되었는지 확인합니다.
■ 2단계 - Elasticsearch 설치
Elasticsearch는 로그 데이터를 저장하고 검색하는 역할을 합니다.

1. Elasticsearch 다운로드
1) https://www.elastic.co/kr/downloads/elasticsearch 링크로 이동합니다.
2) Windows 탭을 클릭하고, .zip 파일을 다운로드합니다. (현재 최신 버전이 9.x일 수 있습니다.)
2. Elasticsearch 압축 해제:
1) 다운로드한 .zip 파일을 원하는 폴더에 압축 해제합니다.
※ 예: C:\ELK\elasticsearch-9.x.x
3. Elasticsearch 실행
1) 윈도우 키를 누르고 검색창에 cmd라고 입력한 후 명령 프롬프트를 관리자 권한으로 실행합니다.
2) 명령 프롬프트 창에서 Elasticsearch가 압축 해제된 폴더의 bin 폴더로 이동합니다.
※ 예 : C:\ELK\elasticsearch-9.x.x\bin
3) elasticsearch.bat 파일을 실행합니다.
4) 명령 프롬프트 창에 여러 줄의 로그가 표시되면서 Elasticsearch가 시작됩니다. 처음 시작하는 데 시간이 걸릴 수 있습니다.
5) Elasticsearch가 정상적으로 실행되면 마지막 줄에 started라는 메시지가 보일 것입니다.
4. Elasticsearch 확인
1) 웹 브라우저를 열고 주소창에 https://localhost:9200을 입력하고 Enter 키를 누릅니다.

2) Default 아이디는 'elastic' 이며, 패스워드는 elasticsearch.bat 실행시 cmd 프로프트창에 아래와 같이 패스워드가 표시됩니다.
※ 중요 : 최초 설치를 위해 elasticsearch.bat 실행시 패스워드 정보는 1회성으로 표시되므로, 꼭 별도로 기록해주세요

3) 정상적으로 설치되었다면 로그인 성공시 아래와 같이 JSON 형태의 정보가 웹 페이지에 표시됩니다.
※ 예 : {"name": "...", "cluster_name": "elasticsearch", ...}

5. Elasticsearch 버전 호환성 확인
ELK 스택을 구성하는 Elasticsearch, Kibana, Logstash는 버전 호환성이 매우 중요합니다. 각 도구의 버전이 맞지 않으면 예기치 않은 오류가 발생하거나 기능이 제대로 작동하지 않을 수 있습니다.
1) Elasticsearch 버전 확인 : 다운로드 페이지 또는 설치 후 실행 로그를 통해 버전을 확인할 수 있습니다.
2) 공식 문서 확인 : Elastic 공식 문서 (https://www.elastic.co/kr/guide/index.html)에서 각 구성 요소의 호환성 매트릭스를 확인하여 설치하려는 버전들이 서로 호환되는지 확인하는 것을 강력히 권장합니다.
6. Elasticsearch 설정 파일 살펴보기
Elasticsearch의 동작 방식은 설정 파일(elasticsearch.yml)을 통해 세밀하게 조정할 수 있습니다. 이 파일은 Elasticsearch 압축 해제 폴더의 config 폴더에 위치합니다.

1) 네트워크 설정 : 기본적으로 network.host: 127.0.0.1로 설정되어 로컬에서만 접근 가능합니다. 외부에서 접근해야 한다면 해당 설정을 변경해야 합니다.
2) 포트 설정 : 기본 포트는 9200입니다. 필요에 따라 http.port 설정을 변경할 수 있습니다.
3) 클러스터 이름 : 여러 Elasticsearch 노드를 묶어 하나의 클러스터로 관리할 때 사용하는 cluster.name 설정을 확인할 수 있습니다.
※ 주의 : 설정 파일을 잘못 수정하면 Elasticsearch가 제대로 작동하지 않을 수 있으므로, 변경하기 전에 충분히 이해하고 백업하는 것이 중요합니다.
■ 3단계 - Kibana 설치
Kibana는 Elasticsearch의 데이터를 시각화하고 관리하는 도구입니다.

1. Kibana 다운로드:
1) https://www.elastic.co/kr/downloads/kibana 링크로 이동합니다.
2) Windows 탭을 클릭하고, Elasticsearch와 동일한 버전의 .zip 파일을 다운로드합니다.
2. Kibana 압축 해제:
1) 다운로드한 .zip 파일을 원하는 폴더에 압축 해제합니다.
※ 예: C:\ELK\kibana-9.x.x
3. Kibana 설정:
1) Kibana가 압축 해제된 폴더로 이동한 후 config 폴더로 들어갑니다.
2) kibana.yml 파일을 텍스트 편집기 (메모장 등)로 엽니다.
3) 다음 줄을 찾아서 주석(#)을 제거하고 Elasticsearch 주소를 확인합니다.
- 기본적으로 elasticsearch.hosts: ["https://localhost:9200"]로 되어 있을 것입니다.

4. Kibana 실행
1) 윈도우 키를 누르고 검색창에 cmd라고 입력한 후 명령 프롬프트를 실행합니다.
2) 명령 프롬프트 창에서 Kibana가 압축 해제된 폴더의 bin 폴더로 이동합니다.
※ 예 : C:\ELK\kibana-9.x.x\bin
3) kibana.bat 파일을 실행합니다.
4) 명령 프롬프트 창에 여러 줄의 로그가 표시되면서 Kibana가 시작됩니다.
5. Kibana 접속
1) 웹 브라우저를 열고 주소창에 https://localhost:5601을 입력하고 Enter 키를 누릅니다.
2) Kibana 웹 인터페이스가 나타납니다.

6. Kibana 설정 파일 상세 안내
Kibana의 동작 방식은 kibana.yml 파일을 통해 설정할 수 있습니다. 이 파일은 Kibana 압축 해제 폴더의 config 폴더에 위치합니다.

1) elasticsearch.hosts: Kibana가 연결할 Elasticsearch 인스턴스의 주소를 지정합니다. 기본적으로 ["https://localhost:9200"]으로 설정되어 있습니다. Elasticsearch의 주소나 포트가 변경되었다면 이 설정을 수정해야 합니다.
2) server.port: Kibana 웹 인터페이스가 사용할 포트를 설정합니다. 기본값은 5601입니다.
3) server.host: Kibana 서버가 바인딩할 호스트 주소를 설정합니다. 기본적으로 0.0.0.0으로 설정되어 모든 네트워크 인터페이스에서 접근 가능합니다.
※ 참고: 필요에 따라 로캘 설정, 타임존 설정 등 다양한 옵션을 kibana.yml 파일에서 변경할 수 있습니다. 자세한 내용은 Kibana 공식 문서를 참고하시기 바랍니다.
■ 4단계 - Logstash 설치
Logstash는 로그 데이터를 수집하고 Elasticsearch로 보내는 역할을 합니다.
1. Logstash 다운로드:
1) https://www.elastic.co/kr/downloads/logstash 링크로 이동합니다.
2) Windows 탭을 클릭하고, Elasticsearch 및 Kibana와 동일한 버전의 .zip 파일을 다운로드합니다.
2. Logstash 압축 해제:
1) 다운로드한 .zip 파일을 원하는 폴더에 압축 해제합니다.
※ 예: C:\ELK\logstash-8.x.x
3. Logstash 설정 파일 생성:
1) Logstash가 압축 해제된 폴더 안에 새로운 폴더를 만들고 이름을 config로 지정합니다.
2) config 폴더 안에 logstash.conf라는 이름의 텍스트 파일을 생성하고 다음과 같이 내용을 작성합니다.
(엑셀 파일을 CSV로 저장했다고 가정합니다.)
<!-- end list -->
input {
file {
path => "C:/path/to/your/excel_data.csv" # 실제 CSV 파일 경로로 수정
start_position => "beginning"
sincedb_path => "NUL" # 윈도우에서 처음부터 읽도록 설정
codec => csv {
separator => ","
columns => ["timestamp", "user_id", "event_type", "details"] # 실제 엑셀 컬럼명에 맞춰 수정
}
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "excel-logs-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug } # 콘솔에 처리 결과 출력 (확인용)
}
3) C:/path/to/your/excel_data.csv 부분을 실제 엑셀 파일을 CSV로 저장한 경로로 수정해야 합니다.
※ C:/Users/YourName/Documents/logs.csv와 같이 작성합니다.
4) columns 부분은 엑셀 파일의 컬럼 순서대로 이름을 적어줍니다.
4. Logstash 실행:
1) 윈도우 키를 누르고 검색창에 cmd라고 입력한 후 명령 프롬프트를 실행합니다.
2) 명령 프롬프트 창에서 Logstash가 압축 해제된 폴더의 bin 폴더로 이동합니다.
※ 예: cd C:\ELK\logstash-8.x.x\bin
3) 작성한 설정 파일을 사용하여 Logstash를 실행합니다.
<!-- end list -->
Bash
logstash -f C:\ELK\logstash-8.x.x\config\logstash.conf
4) Logstash가 설정 파일을 읽고 데이터를 Elasticsearch로 전송하기 시작합니다. 명령 프롬프트 창에 처리된 로그 내용이 출력될 것입니다.
5. Logstash 설정 파일 Input 플러그인 다양하게 알아보기
Logstash는 다양한 Input 플러그인을 통해 여러 종류의 데이터 소스로부터 데이터를 수집할 수 있습니다. 앞에서는 file Input 플러그인을 사용하여 CSV 파일을 읽는 방법을 설명했습니다. 몇 가지 유용한 Input 플러그인을 더 소개해 드립니다.
1) syslog : 시스템 로그 메시지를 수집하는 데 사용됩니다. 다양한 장비에서 발생하는 Syslog 데이터를 중앙 집중식으로 관리하고 분석할 수 있습니다.
2) beats : Elastic Beats (Filebeat, Metricbeat 등)에서 전송하는 데이터를 수신하는 데 사용됩니다. Beats는 다양한 시스템 및 서비스로부터 데이터를 효율적으로 수집하여 Logstash로 전송하는 경량 에이전트입니다.
3) tcp / udp : 특정 TCP 또는 UDP 포트로 들어오는 데이터를 수집할 수 있습니다. 네트워크 장비나 사용자 정의 애플리케이션 로그 수집에 유용합니다.
4) kafka : Apache Kafka와 연동하여 Kafka 토픽의 데이터를 실시간으로 수집할 수 있습니다.
각 Input 플러그인은 다양한 설정 옵션을 제공하며, 필요에 따라 여러 Input 플러그인을 동시에 사용할 수 있습니다. 자세한 내용은 Logstash 공식 문서를 참조하시기 바랍니다.
6. Logstash 실행 시 Troubleshooting
Logstash 실행 시 다음과 같은 일반적인 문제가 발생할 수 있으며, 몇 가지 해결 방법을 제시합니다. Logstash 실행 시 발생하는 오류 메시지를 주의 깊게 확인하면 문제 해결에 도움이 될 수 있습니다.
1) 설정 파일 오류 : logstash.conf 파일에 문법 오류가 있는 경우 Logstash가 시작되지 않거나 오류 메시지를 출력할 수 있습니다. 설정 파일을 꼼꼼히 확인하고, 필요하다면 온라인 Lint 도구를 사용하여 문법을 검사해보세요.
2) Java 버전 문제 : Elasticsearch 및 Kibana와 마찬가지로 Logstash도 특정 Java 버전을 요구할 수 있습니다. Java 버전 호환성을 확인하고, 필요한 경우 Java 버전을 변경해보세요.
3) 권한 문제 : Logstash가 접근해야 하는 파일이나 디렉토리에 대한 권한이 부족하면 오류가 발생할 수 있습니다. 해당 파일 및 디렉토리의 권한을 확인하고 필요에 따라 수정하세요.
4) 포트 충돌 : 다른 애플리케이션이 Logstash가 사용하려는 포트 (특히 Beats Input 플러그인 등에서 사용)를 이미 사용하고 있는 경우 충돌이 발생할 수 있습니다. 충돌하는 포트를 확인하고 Logstash 설정을 변경하거나 충돌하는 애플리케이션을 종료하세요.
■ 5단계 - Kibana에서 데이터 확인 및 시각화
1. Kibana 접속: 웹 브라우저에서 http://localhost:5601로 접속합니다.
2. 인덱스 패턴 생성
1) 왼쪽 메뉴에서 Stack Management -> Index Patterns를 클릭합니다.
2) Create index pattern 버튼을 클릭합니다.
3) Index pattern 입력란에 excel-logs-* 라고 입력하고 Next step 버튼을 클릭합니다.
4) Timestamp field 드롭다운 메뉴에서 시간 관련 필드
※ 예: timestamp)를 선택하고 Create index pattern 버튼을 클릭합니다.
3. 데이터 탐색
1) 왼쪽 메뉴에서 Discover를 클릭합니다.
2) 방금 생성한 인덱스 패턴 (excel-logs-*)을 선택합니다.
3) 엑셀 파일의 로그 데이터가 Kibana에 표시되는 것을 확인할 수 있습니다. 검색창에 검색어를 입력하거나 필터를 추가하여 원하는 로그를 찾을 수 있습니다.
4. 시각화
1) 왼쪽 메뉴에서 Visualize Library를 클릭합니다.
2) Create visualization 버튼을 클릭하고 원하는 차트 종류
(예: 막대 그래프, 꺾은선 그래프, 파이 차트)를 선택합니다.
3) 데이터 소스로 생성한 인덱스 패턴 (excel-logs-*)을 선택하고, 차트에 표시할 필드와 집계 방식을 설정합니다.
5. Kibana의 다양한 시각화 도구 활용
Kibana는 단순한 차트 외에도 다양한 시각화 도구를 제공하여 데이터를 다각적으로 분석하고 이해할 수 있도록 돕습니다. Kibana의 다양한 시각화 도구를 활용하여 데이터의 특성과 분석 목적에 맞는 효과적인 시각화를 구성해보세요.
1) Vertical bar chart / Horizontal bar chart : 범주형 데이터의 빈도 또는 값을 비교하는 데 유용합니다.
2) Line chart : 시간 경과에 따른 데이터의 추세를 파악하는 데 효과적입니다.
3) Pie chart / Donut chart : 전체에서 각 부분이 차지하는 비율을 시각적으로 나타냅니다.
4) Data table : 원시 데이터 또는 집계된 데이터를 테이블 형태로 표시합니다.
5) Gauge / Metric : 단일 값의 현재 상태를 직관적으로 보여줍니다.
6) Map : 지리적 데이터를 지도 위에 시각화하여 위치 기반 분석을 수행할 수 있습니다.
7) Timelion : 시계열 데이터를 위한 강력한 표현식 기반 시각화 도구입니다. 복잡한 계산이나 비교를 수행할 수 있습니다.
8) Canvas : 픽셀 기반 레이아웃 도구로, 데이터를 자유롭게 디자인하여 대시보드를 만들 수 있습니다.
감사합니다.
| SBOM과 오픈소스 취약점 관리 – 정보보호 전문가 실전 가이드 (2) | 2025.06.01 |
|---|---|
| 하마치(Hamachi) VPN 설치 및 활용법 (0) | 2025.05.19 |
| 사무실내/외 CCTV 설치 기준 및 절차 (5) | 2025.05.11 |
| VPN(Virtual Private Network)이란 무엇인가? (0) | 2025.05.10 |
| FDS(이상금융거래탐지시스템)란 무엇인가? (1) | 2025.05.06 |