개발자로서 살아남기 52

FileBeat VS Logstash

🔍개요 회사에서 기존 서버에 ELK 환경을 구축하는 업무를 받았다. Docker를 이용해서 ELK를 구축하면서 어느정도의 개념을 익혔으니 실제로 머신 2대를 받아서 ELK를 구축하려 했다. 이제 사용중인 기존 서버에 적용하려다 보니까 생각해야될 점이 많았다. 가장 먼저 생각이 드는건 트래픽 문제였다. 많은 트래픽이 ES로 들어올 텐데 어떤식으로 설계를 해야 트래픽을 감당할 수 있을까를 많이 생각했다. 그중 하나가 'logstash와 filebeat 중에 어떤 것을 사용할까' 였다. 이에 대해 알아본 내용을 정리해볼려한다. 🔍 FileBeat vs Logstash Filebeat의 사용 여부 요즘 ELK를 구축하는 방법을 찾아보면 각 서버에 Filebeat를 통해 로그 데이터를 수집하고 logstash로 ..

서버 개발자로서 살아남기 - 프록시(Proxy)란?

🔍개요 회사에서 다른 팀이 진행하던 프로젝트를 우리 팀이 하게 되었다. 그래서 인수인계 및 가이드 회의를 진행하던 중 프로젝트 구성도에 HA프록시(Proxy)가 있었는데, 어떤 느낌인지만 알고 자세히는 모르는 용어였다. 찾아보니, HAProxy를 알기 위해서는 Proxy와 Load Balance의 개념을 알아야 하는데, 하나씩 정리할 예정이다. 먼저 Proxy 부터! 🔍프록시(Proxy)란? 프록시 서버(proxy server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다. 위키백과의 ..

ELK 권한 문제 - ERROR Unable to loc ate appender "rolling" for logger ...

에러 메세지 다른 사람들 보니까 아래 에러메세지와 같이 2줄만 나오는게 아니라 여러줄이 나오는 경우가 많다. Sep 23 17:31:11 A04-R08-I245-163-BCPLLP2 elasticsearch[35226]: 2019-09-23 17:31:11,052 main ERROR Null object returned for RollingFile in Appenders. Sep 23 17:31:11 A04-R08-I245-163-BCPLLP2 elasticsearch[35226]: 2019-09-23 17:31:11,052 main ERROR Unable to locate appender "rolling" for logger config "root" Sep 23 17:31:11 A04-R08-I245-..

프로젝트에 Docker를 활용한 ELK 적용하기

Intro 회사에서 첫 프로젝트로 ELK 시스템을 개발 서버에 적용하고, 테스트하여 기존의 로그 수집 시스템과 비교하는 것을 진행했다. 기존의 회사 서버에 적용하는 것에 대해 부담이 있었지만 다른 회사에서도 많이 사용하는 오픈소스기도 하고, 정보도 많기 때문에 적용하는 것은 어려운 부분이 없었다. Docker를 사용하는 이유 Docker를 이용할 수 있는 모든 플랫폼에서 동일한 방식의 적용이 가능하다. 로컬 서버에 적용할 예정이기 때문에 편의상 ELK를 한번에 도커 컨테이너로 띄우기 위함이다. 도커 설치 방법 프로젝트와 연동하기 1. logback.xml 설정 logback.xml 파일에 appender를 이용하여 logstash를 추가해준다. (logback.xml 설정에 대해) 127.0.0.1:50..

서버 개발자로서 살아남기 - ELK에 대해

🔍개요 팀에 들어온지 한달.. 첫 개인 프로젝트를 받았다. 현재 사용하고 있는 로그 분석 프로그램이 2개가 있는데 하나는 실시간으로 전체 레벨의 로그(INFO ~ ERROR)를 보여주지만 관리인력의 부재와 예전 환경에서 만들어진 버전이기 때문에 더 이상 유지하기가 힘든 점이 있었다. 또 하나는 클라우드 환경에 알람, 쿼리 검색 등의 기능을 제공하지만 비용 때문에 WARNING 레벨 이상의 로그만 나타내었다. 이러한 점을 해결하기 위해 요즘 많은 회사들이 사용하고 있는 ELK에 대해서 알아보고 기존의 로그 분석 프로그램의 비교를 통해 팀에 맞는 최적의 로그 분석 시스템을 찾아보는 것이다. 이후, 회의를 통해 도입 할 것인지, 아닌지 결정 후에 구축하는 작업까지 진행 하는 것이다. 🔍ELK Stack란? "..

서버 개발자로서 살아남기 - 메이븐(Maven)에 대해

🔍개요 메이븐은 자바로 웹 개발을 해본 사람이면 모를 수가 없는 단어이다. 나 또한 메이븐을 통해 빌드해 본 경험이 많기 때문에 알고있었다. 현업에서 하고 있는 프로젝트는 스프링 환경에 메이븐을 사용하고 있어서, 메이븐을 통해 install, package 등 다양한 기능을 수행하고 있는데 문득 메이븐에 대해 자세히는 알지 못한다는 생각이 들었다. 이번 기회에 메이븐의 정확한 정의와 하는일에 대해 공부와 정리를 해야겠다는 생각이 들었다. 🔍메이븐이란? 메이븐은 자바용 프로젝트 관리 도구이다. 좀 더 자세히는 프로젝트를 빌드, 패키지, 배포 등의 역할을 수행하고 나아가 각종 라이브러리들을 관리 해주는 도구이다. 메이븐을 사용하려면 메이븐은 2개의 설정 파일을 통해 관리가 가능하다. 이 파일들은 여러명의 개..

개발자로서 살아남기 - 젠킨스(JenKins)에 대해

개요 젠킨스(JenKins)는 어디서 많이 들어본 단어였다. 역시나 한번도 사용한 적이 없다가 팀에서 젠킨스를 활용하여 서버 빌드를 하기도하고, 언젠가는 한번 공부해보고 싶은 툴이였기 때문에 공부한 것을 정리하려 한다. 젠킨스를 알기전에.. SSAFY 프로젝트 당시 3명의 백엔드 개발자와 함께 개발을 진행했었는데 특정 날짜에 코드를 merge해서 돌려보는 작업을 했다. 당연하게도 그 날은 멘붕의 연속이였다. 3명의 commit이 합쳐지니 각자의 환경에서 제대로 작동했던 코드가 merge 후 안돌아가는것이였다. 젠킨스는 이러한 문제를 해결한다. commit을 감지하여 지속적, 자동적으로 통합을 진행하고 빌드,배포까지 하니, 여러 개발자가 코딩을 해도 빌드를 하기위한 특정 날짜를 정할 필요도 없고, 오류가 ..

서버 개발자로서 살아남기 - netstat 명령어에 대해

개요 서버 신입개발자로서 선배에게 업무를 배워가던 도중 서버를 실행하고 admin으로 서버에 대한 정보를 확인하는 과정에서 문제가 발생하였다. 문제를 같이 해결하던 도중 선배가 말하길 '앞으로 문제가 발생할 경우 터미널창과 netstat 명령어을 쓸일이 많을 것이다.'라는 얘기를 하였다. 기존에 진행했던 프로젝트는 하나의 서버와 하나의 클라이언트만 다뤄봤기 때문에 '클라가 안되면 연결 안됬나보다~' 라고 쉽게 생각하였다. 그러나 회사에 오니 많은 서버, DB, 사내 프로그램 등 상당히 많은 것들이 얽혀있었고, netstat 명령어에 대한 공부와 정리를 해야겠다는 생각이 들었다. netstat의 정의 netstat(network statistics)는 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 ..

YOLO - Colab 이용해서 Custom 학습하기 (3)

파이썬을 이용하는 다른 플랫폼에 적용시키기 darknet에서만 사용하는 것이 아닌 라즈베리파이, 웹사이트, 모바일 등에 적용할 수 있다. 준비물은 3가지이다. CFG 파일 훈련된 weight 파일 names 파일 라이브러리와 YOLO 로드 import cv2 import numpy as np from matplotlib import pyplot as plt net = cv2.dnn.readNet("yolov4_19000.weights", "yolov4.cfg") #CFG 파일, weight 파일을 넣어준다. classes = [] with open("food30.names", "rt",encoding = "UTF8") as f: #클래스 이름을 따로 저장해준다. 이 형식은 클래스가 한글이름 일 때 불러오..

YOLO - Colab 이용해서 Custom 학습하기 (2)

YOLO를 훈련시키려면 필요한 3가지 데이터가 있다. 1. data 2. cfg 3. weight 1. data 만들기 data는 이런 형식을 가진다. classes는 훈련하려는 객체 개수 train은 훈련에 사용되는 이미지의 경로 valid는 평가에 사용되는 이미지의 경로 names는 객체의 이름 backup은 훈련된 weight를 저장하는 경로이다. 좀더 자세히 살펴보자면 data의 하위폴더에 txt와 names 파일이 존재한다. 이 파일들의 형식은 다음과 같다. 여기서 주의할 사항은 폴더경로를 잘 설정해줘야한다. train.txt에서 경로/번호/음식사진.jpg 로 설정되있다. 즉 번호에 names의 index와 같은 음식 사진이 들어가야한다. 위를 예로 들자면 names의 첫번째 index가 밥 -..

728x90