일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- blue-green
- 딥레이서
- terraform
- 쿠버네티스
- AWS 딥레이서
- livenessPorbe
- github action 사용법
- SAA 합격 후기
- Kubernetes
- 메탈LB
- 쿠버네티스 컴포넌트
- 딥레이서 보상함수
- kubernetes 동작 원리
- Firelens
- headless service
- Aurora cluster
- LoadBalancer Controller
- Solution Architecture
- 깃허브 액션
- 그라파나 시각화
- grafana on kubernetes
- jenkins
- 로드밸런서 컨트롤러
- Kubernets on Jenkins
- 그라파나 대시보드
- 솔데스크
- helm
- Prometheus install
- EFS CSI Driver
- EKS 클러스터
mingming
Kibana 설치 및 기본설정 및 ElasticSearch 연동 본문
Kibana
Elasticsearch와 함께 사용되며, 대용량 데이터를 검색, 분석 및 시각화할 수 있는 오픈 소스 툴입니다.
- 시각화 및 대시보드: Kibana는 다양한 시각화 도구를 제공하여 데이터를 그래픽적으로 표현하고, 이를 기반으로 대시보드를 만들 수 있습니다. 막대 그래프, 라인 차트, 파이 차트, 지도 등 다양한 시각화 유형을 지원합니다.
- 데이터 탐색과 검색: Elasticsearch로 색인된 데이터를 탐색하고, 사용자가 원하는 대로 데이터를 검색할 수 있습니다. 강력한 쿼리 및 필터링 기능을 활용하여 데이터를 검색하고 분석할 수 있습니다.
- 인터랙티브한 대시보드: 사용자는 시각화 객체를 클릭하거나 선택하여 다른 시각화에 영향을 주는 등, 대화형 대시보드를 생성할 수 있습니다.
Kibana는 Elasticsearch와 함께 사용되어 Elasticsearch로 수집된 데이터를 시각적으로 탐색하고 분석하는 강력한 도구입니다. 주로 데이터 시각화, 대시보드 생성, 검색 기능 등을 활용하여 다양한 유형의 데이터를 분석하고 시각화하는 데 사용됩니다.
Kibana 설치
0. 설치환경
VM : VirtualBox 7.0
OS : ubuntu 20.04
ram : 4GB
elasticsearch: 7.0
logstash: 7.0
앞서 설치한 elastic search와 logstash의 버전이 7.0 버전이기 때문에 키바나 역시 같은 버전으로 설치하도록 하겠습니다.
위의 링크에서 os에 맞는 설치 가이드를 따라하시면 됩니다. 제 경우 우분투 환경이기 때문에 deb package 설치 가이드를 보고 설치했습니다.
1. public singing key 다운로드
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
2. 패키지 저장소 추가
echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
3. install
sudo apt-get install -y kibana
4. kibana 실행
sudo systemctl enable --now kibana
Kibana 설정 파일
/etc/kibana
- kibana.yml
- Kibana의 주요 설정 파일입니다. 서버의 구성을 지정하는데 사용됩니다.
- HTTP 포트 , ElasticSearch 연결, 클러스터 설정, SSL 설정등에 관한 내용을 담고 있습니다.
- node.options
- Kibana node를 실행할는 데 사용되는 Node.js의 설정 옵션을 지정하는 파일입니다.
- kibana.keystore
- Kibana에서 사용하는 저장소 파일입니다. 주로 보안관련 정보가 저장되어 있습니다.
Kibana 접속
kibana를 설치하면 외부에서 접속 가능하도록 설정파일을 세팅해야 합니다. server.host 부분을 다음과 같이 수정 후 kibana를 재시작 합니다.
vi /etc/kibana/kibana.yml
# Kibana is served by a back end server. This setting specifies the port to use.
#server.port: 5601
# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: 0.0.0.0
IP의 5601 포트로 접속할 수 있습니다.
index pattern 생성
현재 Elaistc Search에 두개의 index가 위치하고 있습니다.
logstash-* 인덱스 패턴을 생성해 logstash 로부터 들어온 로그정보를 확인할 수 있습니다.
Discover 탭으로 이동해 쌓인 로그들을 확인할 수 있습니다.
KQL ( Kibana Query Language )를 이용해 원하는 결과 값을 추출할 수 있습니다.
Kibana Query Language (KQL)은 Kibana에서 데이터를 검색하고 필터링하는 데 사용되는 질의 언어입니다. Elasticsearch에 쿼리를 보내고 결과를 시각화하기 위해 Kibana에서 사용됩니다.
Error
ElasticSearch Failed
키바나를 설치 했을 때 elasticsearch 데몬이 failed 상태로 정상작동하지 않는 상황이 발생했습니다.
● elasticsearch.service - Elasticsearch
Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor prese>
Active: failed (Result: signal) since Tue 2023-12-05 21:16:20 KST; 21ms ago
Docs: http://www.elastic.co
Process: 14241 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}>
Main PID: 14241 (code=killed, signal=KILL)
리소스 부족으로 인해 데몬이 정상작동하지 못했습니다. 메모리 용량을 4기가로 확장 후 재시작하니 정상작동 했습니다.
ElasticSearch version
처음 kibana를 7.17 버전으로 설치했을 때 발생했던 에러입니다. elasticsearch와 버전이 맞지않아 연결할 수 없다는 에러입니다. Kibana를 7.0 버전으로 재설치 했습니다.
43 │ {"type":"log","@timestamp":"2023-12-05T21:49:04+09:00","tags":["error","elast
│ icsearch-service"],"pid":676,"message":"Unable to retrieve version informatio
│ n from Elasticsearch nodes. connect ECONNREFUSED 127.0.0.1:9200"}
logstash 설정 오류
logstash를 통해 elasticsearch로 로그를 보내기 위해 output 설정을 수정했습니다. 처음 localhost 부분을 ""로 감싸주지 않아 다음과 같은 에러가 발생했습니다.
[2023-12-05T13:31:32,682][ERROR][logstash.agent] Failed to execute action
{:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>
"LogStash::ConfigurationError", :message=>"Expected one of #, {, ,, ] at line 12, column 24
(byte 195) after output {\n elasticsearch {\n hosts => [localhost", :backtrace=>
["/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:41:in `compile_imperative'",
"/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:49:in `compile_graph'",
"/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:11:in `block in compile_sources'",
"org/jruby/RubyArray.java:2577:in `map'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:10:in `compile_sources'",
"org/logstash/execution/AbstractPipelineExt.java:151:in `initialize'", "org/logstash/execution/JavaBasePipelineExt.java:47:in `initialize'",
"/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:23:in `initialize'",
"/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:36:in `execute'",
"/usr/share/logstash/logstash-core/lib/logstash/agent.rb:325:in `block in converge_state'"]}
아래와 같이 수정후 정상동작함을 확인했습니다.
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
}
ELK 구축해본 후기...!
Kibana까지 마저 설치를 완료하며 ELK 스택을 구축했습니다. 생각보다 구축은 어렵지 않게 했던 것 같습니다.
물론 각각의 설정파일과 다양한 플러그인을 다루는 방법은 아직 잘 모르지만 기본적인 흐름에 대해 파악할 수 있는 실습이었습니다. 현재 가장 의문인 부분은 ELK 를 이용해 어떤 유의미한 결과값을 도출해낼 수 있을지에 대한 것 입니다. 조금 더 깊이있게 공부하다보면 이러한 의문도 자연스럽게 해소되지 않을까 합니다. 가상머신에 직접 설치를 완료했으니 다음엔 쿠버네티스상에 파드로 배포해보려고 합니다. ELK를 처음 접하고자 하시는 분들에게 도움이 되었으면 좋겠습니다.
'ELK' 카테고리의 다른 글
ELK on Kubernetes - Logstash (4) | 2023.12.07 |
---|---|
ELK on Kubernetes - ElasticSearch (2) | 2023.12.06 |
Logstash - beats를 통한 로그 입력 및 로그 파싱 (0) | 2023.11.25 |
Logstash 설치 및 기본설정 (0) | 2023.11.25 |
ElasticSearch 설치 및 기본설정 (4) | 2023.11.24 |