ELK

[ELK] 파이썬 API 서버, Logstash, Kibana, Elasticsearch 연동

VicGameStudio_Choi 2023. 10. 28. 00:36

설명하기 앞서, API 서버, ELK 설치가 되었다는 가정하에 연동을 진행한다.

https://victorygamestudio.tistory.com/29

 

[ELK] ELK 설치하기 윈도우

1. ELK 란? ELK 는 Elasticsearch + logstash + kibana 의 앞글자만 딴 단어다. Elasticsearch : 분석 및 저장 logstash : 수집할 로그를 선정하고, 지정된 서버(Elasticsearch) 에 인덱싱하여 전송함. kibana : 데이터를 시각

victorygamestudio.tistory.com

https://victorygamestudio.tistory.com/32

 

[ELK] 파이썬 로그 API 서버 구현

이 글은 ELK 와 연동하기 위한 로그를 생성하는 서버 구현이다. 만약 ELK 설치가 궁금하다면 아래 링크를 참고하는 것이 좋다. https://victorygamestudio.tistory.com/29 [ELK] ELK 설치하기 윈도우 1. ELK 란? ELK

victorygamestudio.tistory.com

 

1. Elasticsearch 설정

Elasticsearch 는 버전 8.x 대에 들어서서 ssl 보안 설정이 자동으로 되어있다.

따라서 curl 나 logstash 가 접근할 때, 401 에러 또는 Attempted to resurrect connection to dead ES instance

뱉어낼 수 있으니 ssl 설정을 해제한다.

 

elasticsearch.yml 에서 아래 사진처럼 수정한다.

 

elasticsearch.yml

2. Kibana 설정

kibana.yml 

파일에서 아래 텍스트들을 찾으면 # 으로 처리되어 있을텐데, # 을 제거한다.

그리고 아래 처럼 데이터를 넣어준다.

server.host: "localhost"
server.port: 5601
elasticsearch.hosts: ["http://localhost:9200"]

이렇게 하면, 동작 안 하던 Kibana 도 살아난다.

 

3. Logstash 설정

위의 ssl 을 껐던 이유는 사실 Logstash 때문이다.

ssl 이 켜져있는 상태에서 logstash 접근 시, 인증서 부재로 인해서

401 에러 또는 Attempted to resurrect connection to dead ES instance 가 발생한다.

 

ssl 을 꺼주었기 때문에, 로컬에서라면 편하게 접근 가능하다.

.conf 파일을 생성해주자. 이름은 아무렇게나 상관없지만, logstash-conf.conf 로 지었다.

 

logstash-conf.conf 

input{
	file{
		path => "로그파일경로/log/*.txt"
		start_position=>"beginning"
	}
}

output {
	elasticsearch{
		hosts => ["localhost:9200"]
		index => "log-%{+YYYY.MM.dd}"
	}
}

 

위 .conf 에서 중요한 것은 index 설정이다.

  • index
    • Kibana 에서 Elasticsearch 로 접근해서 시각화하려면 index 가 필요하다.

3 - 1 Discover Create a View

 

  • Name
    • Data View 를 구분할 이름을 적는다.
    • 예를 들어, 개발한 게임이름으로 구분 짓는다던지 할 수 있겠다.
  • Index pattern
    • 요게 중요한데, 위에서 말했던 것 처럼 Kibana 는 Elasticsearch 에 index 를 통해서 가져온다.
    • 중요한 것은 한 개의 index 로 너무 많은 데이터를 처리할 경우 과부하가 일어날 수 있기 때문에 Logstash 설정에서 index => "log-%{+YYYY.MM.dd}" 을 넣었었다.
    • 우리는 log- 로 시작하는 것들을 시각화하여야하기 때문에 log-* 을 넣어준다.

위 2개만 설정하고 저장한다.

 

4. 시연

요약

  • 로그를 생성하는 클라이언트를 실행한다.
  • 로그 서버는 받은 정보를 log 파일에 저장한다.
  • Logstash 는 Elasticsearch 로 전달한다.
  • Kibana 는 index 를 통해서 로그를 출력한다.

 

 

 

 

 

 

'ELK' 카테고리의 다른 글

[ELK] Kibana 외부망에서 접근하기  (0) 2023.10.30
[ELK] 파이썬 로그 API 서버 구현  (1) 2023.10.22
[ELK] ELK 설치하기 윈도우  (0) 2023.10.21