본문 바로가기

기타

(11)
[Kafka] 데이터 잘못 넣었을 때 오프셋 초기화하기 (offset reset) 안녕하세요 정말 오랜만에 투자일기가 아닌 개발글로 찾아뵙습니다. 오늘은 kafka에서 프로듀서가 잘못된 데이터를 집어넣었을때 컨슈머가 뽑아가지 못하는 상황에 대해서 다뤄보려고합니다. 저는 데이터 수집모듈 수정과정에서 코딩을 좀 실수해서 python list구조가 조금 이상하게되는 상태가 되어 컨슈머에서 소비하지 못하는 상황이 생겼었는데요 이상황에서 사용할 수 있는 방법입니다. 원래대로라면 컨슈머그룹에서 잘 가져가야하는데 구조가 바뀌어버리니 Lag가 쌓이는 현상이 생겨버렸는데요 (고치기 전에 스샷을찍었어야했는데 이미 고쳐버려서 스샷이없네요) 이렇게 되면 해당 토픽을 지우거나 컨슈머그룹에서 오프셋의 위치를 바꿔줘야합니다. 우선 해당 컨슈머 그룹의 연결을 모두 꺼야합니다. 연결을 끊은상태에서 해당 명령어를 쳐..
[redis] Postgresql(timescaledb)에 저장된 데이터를 시간단위로 redis에 옮기기 안녕하세요 오랜만에 개발관련글을 올립니다. 이번 포스팅할 내용은 redis입니다. 레디스에 대해서는 오래전부터 알고 있었지만 쓸 일이 없기도 하고 굳이 해봐야하나 싶은 생각이 있어 건드리지 않았었습니다. 만 뭐 이것 저것 건드리다보니 사용하게 되었는데요 오늘 할 예제는 timescaledb에 저장되어있는 최신 시계열 데이터를 redis에 옮기는 작업입니다. 사실 이게 맞는 구조는 아닌거같습니다. 왜냐하면 redis 자체가 인메모리 디비로써 그 목적성이 캐싱에 있다고하는데(물론 요새는 램성능이 워낙좋아져서 redis 자체를 통합DB로 사용하는 경우도 있다고합니다.) 실시간으로 저장되는 timescaldb에서 다시 최신데이터를 빼워서 redis에 저장한다?? 이건좀.. 비효율적인거를 떠나서 이렇게 구조를 짤..
[Kafka] Python Kafka 원격 Consumer 구현하기 안녕하세요 반갑습니다. 오랜만에 포스팅하려니 어떻게 글을 시작해야 할 지 막막하네요. 역시 뭐든 꾸준히 하는게 중요한거 같습니다. 아무튼 오늘 포스팅할 글은 Kafka 입니다. 카프카 중에서도 python코드를 통해 원격으로 Consumer를 구현해 볼건데요 이게 구글에 검색하면 나옵니다. 나오는데 이게 저처럼 GCP 같은 퍼블릭 클라우드를 쓰시는 분들은 잘 안될 수가 있어요. 그래서 이번에 제가 한 방식을 공유해보려고합니다. 우선 Kafka가 뭐냐?? 아파치 카프카(Apache Kafka)는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트이다. 이 프로젝트는 실시간 데이터 피드를 관리하기 위해 통일된, 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공하는 것이 목표이다. 요컨..
Jenkins 서버 해킹 비트코인(모네로) 채굴 안녕하세요 여러분 오랜만입니다. 오랜만에 재밌는 일이 생겨 공유하고자 글을 씁니다. 엄청 예전 그러니까 한 반 년전쯤 사내에서 사용하다가 잘 이용하지 않던 서버가 있었는데 오랜만에 들어가보니 cpu100% 상태길래 htop으로 확인해보니 대략 아래같은 코드가 동작되고있었습니다. 딱 봐도 굉장히 수상해보이는 코드였고 검색해보니 비트코인 모네로를 채굴하는 코드라는걸 알았습니다. mine.c3pool.com
연구실 안전교육 스킵(배속)하는법 2 안녕하세요 반갑습니다. 여러분들의 시간 낭비를 줄여주기위해 오랜만에 다시 찾아왔습니다. 간혹 이제 배속밖에 답이없는 몇몇 안전교육들이 있는데요 저번과 마찬가지로 F12를 눌러 개발자도구를 꺼내고 콘솔 탭으로 갑시다. 거기에 이제 document.querySelector('video').playbackRate = 10; 이걸 쳐줍시다. 15배로도 해봤는데 10배가 제일 인식을 잘하는거 같습니다. 아무튼 모두 화이팅하십쇼
GCP 인스턴스 ssh 접속 키 만들기 안녕하세요 열심히 으쌰으쌰 살아보려는 주인장입니다. 블로그 조회수가 일 200회를 찍었을때 금방 부자가 될거같았는데 막상 2년간 벌린 구글애드센스 돈이 9달러 남짓한 돈인걸 확인하고는 굉장히 실망했지만 오히려 한편으로는 꾸준히 해서 일일 조회수 2만회를 만들면 900달러가 되지 않을까? 라는 망상을 하며 오늘도 글을 써봅니다. 오늘은 간단하게 GCP(Google Cloud Platform) 에서 만든 인스턴스를 일반 로컬 컴퓨터에서 ssh 접속을 할 수 있게 key 를 만드는 법을 알려드리려고합니다. aws의 경우 윈도우는 putty를 사용해서 putty gen 이란 걸 통해서 했잖아요? gcp 도 putty로 접속할 수 있는 방법이 있겠지만 일단 저는 리눅스 환경에서 키를 만드는 걸 알려드리겠습니다. ..
[mongodb] docker container로 구성된 mongo cluster에 authentication 적용하기 안녕하세요 반갑습니다. 오랜만에 글을 씁니다. 오늘은 지난번에 구축했던 container로 구성한 mongo cluster에 authentication을 적용해보겠습니다. mongo는 기본적으로 authentication을 적용시켜두지 않으면 no auth상태로 ip와 port만 알고있으면 어디에서든지 접근이 가능합니다. 보안이 매우 취약한 생태인데 저는 이 사실도 모르고 단순히 admin계정과 db사용자 계정만 만들어두면 자동으로 적용되는줄 알았습니다. 최근에서야 문제가 있음을 깨닫고 급하게 알아보기 시작했습니다. cluster로 구성하지 않은 일반적인 mongo의 경우 mongod --auth 명령어로 단순히 적용이 가능하지만 (config를 수정해야 한다거나 그런건 말하지 않겠음) cluster로 ..
연구실 안전교육 스킵하는법 매번 듣다가 빡쳐서 F12콘솔창을 열고 페이지 넘기는 함수나 변수를 찾아서 바꾸기로했습니다. 일단 본 글은 2020년 12월 9일 기준입니다. 안전 교육 영상에는 크게 2가지 종류가있습니다. 플래시 형태의 페이지를 넘기는 영상과 그냥 동영상만 있는 경우 1) 번의 경우 요 F12를 눌러서 나온 콘솔 탭에다가 nowPageNum=(마지막페이지) 를 입력해주시면됩니다. 예를들어 14페이지면 nowPageNum=14 를 입력해주시면 현재페이지를 마지막페이지로 인식하고 수강완료가 됩니다. 2) 번의 경우 progressCheck(true) 를 입력해주시면됩니다. 그럼 고생하세요