반응형
콩니🔧
개지니어 콩니
콩니🔧
전체 방문자
오늘
어제
  • 분류 전체보기 (79)
    • Life outside of work (13)
    • DevOps (29)
    • Developments (23)
    • CS and others (7)
    • Book reviews (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

  • 제가 누군지 궁금하시다면

인기 글

태그

  • Java
  • 프로그래머스
  • Network
  • web
  • Jenkins
  • programmers
  • HTML
  • Infra
  • DevOps
  • kubernetes

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
콩니🔧

개지니어 콩니

CI/CD 로그 시각화를 위한 ELK stack with Jenkins (1)
DevOps

CI/CD 로그 시각화를 위한 ELK stack with Jenkins (1)

2021. 5. 14. 23:19
반응형
[포스팅을 작성하게 된 배경]

올해 팀 타겟 중 CI/CD 로그 시각화 관련된 타겟이 있었다는 것을 인지는 하고 있었지만, 어떻게 구현해야 할 지에 대한 생각은 전혀 없었던 상태였습니다.
다른 팀과 완전히 다른 이야기를 하다가 시스템 관련 로그들은 ELK 연동이 되어 있다고 해서 헛... 그렇다면 거기에 로깅 설정만 좀 변경하고 탑승해서 날로 먹어볼까? 라는 마음으로 발을 들였다가 결국 완전 분리된 별개의 프로젝트를 시작하게 되었습니다.
지금도 아직 지표 도출 및 온보딩까지는 많은 단계가 남았지만, 이는 통계나 다른 인프라 측면의 문제이지 구현 방식은 별다른 차이가 없을 것이라 보여집니다. (이렇게 말 해 놓고 온갖 삽질을 하면서 긴 시간을 때려 부을 것으로 예상되기는 함)
Jenkins 로그를 좀 더 상세하게, 예쁘게 까 보고 싶은데 번거로운 건 싫은 분들을 위해 정리한 내용을 공유합니다.

ELK Stack?

  • ELK stack은 Elasticsearch, Logstash, Kibana 이 세 가지 오픈소스의 이니셜을 딴 말입니다. Elasticsearch는 검색&분석 엔진이고, Logstash는 서버 사이드 데이터 처리 파이프라인입니다. Kibana는 이 Elasticsearch로부터 전송받은 데이터를 보기 좋게 만들어 주는 시각화 툴입니다. 자세한 내용은 ELK란 무엇인가 페이지에서 확인하실 수 있습니다.


  • 각 오픈소스에 대한 설명은 구글에 쳐 보기만 해도 수천 페이지는 나오므로, 여기에서는 간단하게, Logstash로 데이터를 잘 프로세싱해서 Elasticsearch로 보내고, Elasticsearch에서는 데이터를 저장하고 인덱싱하여 Kibana에서 사용하게 해 주고, Kibana는 이 수집된 데이터들을 사용자가 보기 쉽게 시각화 해 준다는 정도로만 이해해 주시면 될 듯 합니다.

 

Prerequisite

선결조건으로, Jenkins가 어떤 역할을 하는 툴인지에 대한 이해는 있으셔야 합니다 !!!
  • 1.8 이상 버전 Java
  • 설치된 Jenkins
  • Jenkins 설치는 모르시면 구글링하시면 정말 많은 자료가 나와 있습니다. 플러그인 설치를 위해 외부 통신이 되는 상태의 젠킨스를 준비해 주시면 됩니다. 외부 통신이 안 되더라도 뭐... 수동으로 파일 끌고와서 설치 원하시면 그렇게 하셔도.. 😉
  • Jenkins, Logstash, Elasticsearch, Kibana 가 각각 혹은 하나의 서버에서 상호 통신 가능한 상태
  • 이 포스팅에서는 저 4종을 각각 별도의 서버에 설치하였습니다. 서버 한 대에 하시거나 로컬에 하시는 건 상관 없는데, 이 포스팅에서처럼 여러 대로 돌리실 거라면 방화벽이 막혀 있지 않은 상태인지 먼저 확인해 주시면 됩니다.
  • 윈도우 환경에 대해서는 저는 모릅니다.. 🥰

Expected outcome

  • Jenkins build log를 아래와 같은 JSON 형태의 데이터 셋으로 전달받을 수 있습니다.
  • 전달받은 데이터에서 유의미한 지표를 발굴하여 아래와 같은 방식으로 시각화할 수 있습니다.

 

Jenkins Plugin 설치 및 설정

  • 젠킨스 > 플러그인 관리 > 설치 가능한 플러그인에서 Logstash 플러그인과 Statistics Gatherer 플러그인을 설치합니다. 왜 두 가지를 설치하냐면, 인덱스 타입을 두 가지로 해서 보여드리고 둘 중 마음에 드는 걸로 골라 쓰시라고 두 가지를 일단 안내 드립니다. 포스팅 쭉 보시고 둘 중 결과가 마음에 드는 한 쪽만 선택하셔서 설치하셔도 됩니다. (statistics gatherer 플러그인 관련해서는 두 포스팅을 참고하였습니다.
    https://towardsdatascience.com/jenkins-events-logs-and-metrics-7c3e8b28962b https://gintrie.tistory.com/45?category=389204)
  • 두 플러그인 모두 http request 날리는 방식으로 데이터를 전달하도록 할 예정입니다. 이 방식 때문에 이후 다른 툴에서도 http 관련 플러그인을 설치해야 하여, 기억해 주시면 됩니다.
  • 제 환경 같은 경우, 외부 통신을 위해 Plugin manager에서 proxy 설정을 먼저 해 주었습니다. 다이렉트로 외부 연결이 어려운 경우, 플러그인이 설치되지 않는다면 프록시 설정을 먼저 보시기 바랍니다.
 

[Jenkins] Elasticsearch-Kibana를 이용한 로그 모니터링 (1)

https://towardsdatascience.com/jenkins-events-logs-and-metrics-7c3e8b28962b Jenkins Events, Logs, and Metrics How to collect information about Jenkins for analysis and data visualization towardsdata..

gintrie.tistory.com

 

Jenkins Events, Logs, and Metrics

How to collect information about Jenkins for analysis and data visualization

towardsdatascience.com

 

여기까지 쓰고 티스토리 에디터때문에 성질뻗쳐서 나머지는 aws 인강보고 다시 돌아오는걸로ㅜ

반응형
저작자표시 비영리 변경금지 (새창열림)

'DevOps' 카테고리의 다른 글

Nginx Basics - Reverse proxy, load balancing, static content deploy  (1) 2021.05.24
[이럴땐이렇게] 리눅스 서버 disk full인데 지울거 없을때 임시조치 / linux disk full  (0) 2021.05.15
Load Balancing : L2, L3, L4, L7의 차이  (0) 2021.05.09
Nexus 구성 - Proxy Central Repository 외에 추가로 Local 의존성 추가하기  (0) 2020.12.06
[이럴땐이렇게] Eclipse - Tomcat 이 사용 중이라고 나올 때  (1) 2020.06.25
    콩니🔧
    콩니🔧
    개발알못 인프라알못 콩니

    티스토리툴바