분류 전체보기
ElasticSearch Index LifeCycle to Template with Fluentbit
ElasticSearch Index LifeCycle to Template with Fluentbit
2021.03.29문제 DC/OS에서는 로그 모니터링을 위해 자체적으로 로그 수집 Agent로 FluentBit을 사용한다. 현재 사용하고 있는 시스템에서는 모니터링 시스템을 구축하기 위해서 FluentBit 을 활용하여 EFK를 구축하여 사용하고 있는데, 아래와 같은 설정을 통해 ElasticSearch에 적재되는 로그들이 매일 다른 Index명을 통해 저장되도록 설정되고 있었다. [OUTPUT] Name es Match * Host Port Logstash_Format True Logstash_Prefix fluent-bit 하지만 적재되고 있는 인덱스에 대해서 특별한 관리가 되지 않고 계속 로그가 쌓이기만 하고 있어서 서버에 과도한 용량이 점유되는 상황이 발생하여, ElasticSearch에서 자체적으로 제공하는 I..
confluence to tistory 제작-1
confluence to tistory 제작-1
2021.03.23개발 1일차 단위목표 confluence api 조사 페이지, 스페이스 목록 정보 조회 api 확인 특정 페이지 html or markdown export api 확인 REST API 활용 인증 구현 personal token 생성 : 을 base64로 인코딩 Authorization 헤더에 Basic 을 추가하여 사용 curl -H "Authorization: Basic " https://{confluenceBaseUrl}/rest/api/content space 목록 확인 구분 정보 비고 API 경로 https:///wiki/rest/api/space 매서드 GET 호출 목적 space의 name, key 쌍 확인 페이지 목록 조회 구분 정보 비고 API 경로 https:///wiki/rest/api..
gitlab 컨테이너 backup/restore(백업 및 복원)
gitlab 컨테이너 backup/restore(백업 및 복원)
2021.03.16본 문서는 DockerHub 이미지 gitlab/gitlab-ce:11.11.8-ce.0을 기준으로 작성되었으며 12.2 버전 이상이거나 컨테이너가 아닌 경우 공식 문서를 참고하는 것을 권장한다 gitlab에서 공식 제공하는 컨테이너를 사용하는 경우, gitlab 데이터를 백업 및 복원하는 과정에서 겪은 시행착오를 정리한다. 백업 복원 작업시 다음과 같은 내용들은 유의하는 것이 좋다. 백업 대상 서비스와 복원 대상 서비스의 gitlab 버전을 같은 버전으로 설정해 준다. 마운트를 완료한 상태에서, 순정상태의 gitlab을 한번 기동하여 동작을 확인한다. gitlab 쉘을 통해 복원 명령 수행시 확인 입력을 받는 경우(데이터 삭제시)가 있으므로 가급적으로 컨테이너에 직접 접근하여 명령을 수행한다. 공식 문..
2018년부터 2021년 3월까지의 회고
2018년부터 2021년 3월까지의 회고
2021.03.14무일푼으로 서울 상경 나는 어릴적 부터 줄곧 컴퓨터를 잘 다루고 탐구심이 강했다. 진학하려했던 대학교는 갑갑한 커리큘럼 속에서 정작 원하는 것은 스스로 , 공부해야 하는 곳으로 느껴졌다. 결국 대학 진학을 포기하고 학점은행제를 통해 정보보호학과로 진학하며 관련 공부를 해보려 하였지만 주변에 관련 공부를 하는 사람이 없어서 공부가 외롭고 물어볼 곳도 없었다. 그러던 중 서울에서 전액 국비로 정보보호 전문가 과정을 가르쳐 주는 곳이 있다는 소식을 듣고, 무작정 서울로 상경하여 친구 집에 서 얹혀살며 약 7개월간의 빈대생활 을 시작하게 되었다. 아침에는 생활비를 위한 아르바이트, 오후에는 국비교육 학원에서 교육수강, 새벽에는 복습과 자격증 공부등을 닥치는대로 했었다. 하루에 겨우 3시간도 자지 못했지만, 하루..
telegram chatbot api로 챗봇 만들기
telegram chatbot api로 챗봇 만들기
2021.02.10이번 연휴에는 코로나로 인해 예약 가능 좌석이 줄어들어서 그런지 유난히 열차 예매가 힘들었다. 사실 모두 매진 되어버려서 구매를 할수가 없었는데, 이번 기회를 틈타서 그동안 만들어 보고 싶었는데 귀찮아서 못만들어 봤던 텔레그램 api를 이용한 코레일 KTX 예매 챗봇을 만들어 보았다. 아래는 만들면서 정리한 내용들이다. telegram chatbot api 활용하기 텔레그램 챗봇 api를 활용하면 특정 체팅방에서 발생하는 여러 이벤트들을 지정한 서버로 전달하거나, 서버에서 특정 채팅방으로 챗봇이 이벤트를 수행하도록 지시를 내릴 수도 있다. 대화형 챗봇을 제작하기 위해서는 아래와 같은 과정을 수행해야한다. API 서버에 SSL적용은 필수인데, 텔레그램 봇의 웹훅은 https 프로토콜을 사용하는 사이트에만 ..
kubernetes shared memory 사이즈 조정
kubernetes shared memory 사이즈 조정
2021.02.08리눅스 IPC는 System V와 POSIX 두가지 표준을 가지고 있는데, System V 모델을 따르는 Shared Memory는 IPC Namespace Isolatior가 제공하는 기능만으로 별도의 작업 없이 사용하는데 큰 문제가 없지만, POSIX 모델의 Shared Memory는 파일 기반으로 관리되는 구조이다. https://www.technovelty.org/linux/shared-memory-on-linux.html 문제는 쿠버네티스에서 POD가 생성되면 기본적으로 64MB사이즈의 shm 공유메모리 공간이 할당되는데, 이 공간만으로는 제약이 걸리는 상황이 많이 발생한다는 점이다. 이러한 현상과 관련하여 몇가지 상황을 이전에도 경험했었고, 본 글을 작성하는 시점에서는 컨테이너 내에서 tens..
CKA 공부 할때 끄적끄적
CKA 공부 할때 끄적끄적
2021.02.08아키텍쳐쿠버네티스 클러스터는 크게 Control Plane 컴포넌트와 Node 컴포넌트 그룹으로 구분지을 수 있습니다. Control Plane을 포함한 모든 클러스터의 구성 요소들은 컨테이너 기반으로 동작하도록 설치가 되고, 기본적으로 간단화하기 위해, 또 보안을 위해 Control Plane 컴포넌트들은 특정 노드에만 올라가고, 일반 사용자 그룹의 컨테이너는 배포가 되지 않도록 설정됩니다. 일반적인 쿠버네티스 클러스터의 아키텍쳐에서는 이렇게 Control Plane 컴포넌트로 구성된 Control Plane 노드와 사용자 컨테이너 배포를 위한 Worker 노드로 구분되어 구성됩니다. 설치 방법별 구성요소 관리 팁kubeadm 사용 배포시Control Plane 노드의 /etc/kubernetes/ma..
kubernetes etcd error message database space exceeded
kubernetes etcd error message database space exceeded
2020.08.23본 문서는 2020년 08월 21일, kubernetes 1.17.9버전, konvoy 1.5버전을 기준으로 작성되었습니다. 에러 발생 정상적으로 동작하던 쿠버네티스 클러스터가 갑자기 새로운 deploy를 생성하지도, 삭제하지도, 수정하지도 못하는 이상증세를 보였습니다. 그리고 다음과 같은 메시지를 띄웠습니다. etcdserver: mvcc: database space exceeded log messages messages로그 등에서도 해당 에러와 함께 이러한 비슷한 구문을 출력하고 많은 에러를 발생시키는 것을 볼 수 있습니다. applying raft message exceeded backend quota compact.go:124] etcd: endpoint ([https://172.16.4.141:..
POSTGRES could not remove file pg wal
POSTGRES could not remove file pg wal
2020.08.23replication 에러 상황에서 postgresql 컨테이너를 강제로 재기동 했더니 저런 로그가 뜨면서 DB접속이 안된다. 당연히 replication도 계속 에러상황이다. 2020-07-07 11:02:55.161 GMT [59] LOG: could not remove file "pg_wal/000000010000002A0000003A": Device or resource busy 2020-07-07 11:02:56.969 GMT [59] LOG: could not remove file "pg_wal/0000000100000004000000DF": Device or resource busy 2020-07-07 11:02:56.969 GMT [303434] ERROR: requested WAL seg..
Tensorflow + CUDA 10.2 + Windows10
Tensorflow + CUDA 10.2 + Windows10
2020.08.23본 문서는 2020년 07월 28일을 기준으로 작성되었음을 알립니다. 머신러닝 전용 VDI 구축과 관련하여 윈도우10 환경에 tensorflow(이하 텐서플로우)를 설치해야 하는 일이 있었다. 텐서플로우는 2.x.x 버전으로 넘어오면서 부터 tensorflow 모듈과 tensorflow-gpu 모듈이 하나로 합쳐져서 tensorflow 모듈만 설치하면 두 기능을 모두 이용할 수 있게 되었다. 하지만, 그에 따라 tensorflow를 정상적으로 설치하고 사용하기 위해서 역시 GPU 인식을 위한 사전 요구사항을 충족해야만 하는 상황이 되었다. 요구사항 1.운영체제 및 파이썬 버전 설치 이슈 문서를 작성하는 시점을 기준으로 현재 TensorFlow 최신 릴리즈 버전은 2.3.0 버전이다. 이러한 상황에서 문제..
DCOS cleanup unreachable tasks
DCOS cleanup unreachable tasks
2020.07.01서비스 운영중에 agent노드 한대가 갑자기 중단되는 상황이 발생했다. 노드 재시작 이후 서비스 원상 복구가 완료되었으나, 중단된 노드에서 동작하던 Task들이 DC/OS Dashboard에서 Unreachable로 표시되어 없어지지 않는 현상이 발생했다. 원인 bundle-2020-03-21-1584755074/128.11.1.69_agent/var/log/mesos/mesos-agent.log: I0320 22:49:04.198818 13317 gc.cpp:129] Unscheduling '/var/lib/mesos/slave/slaves/a3195c3b-8e69-4322-902b-13aa3f891e21-S1/frameworks/24879db0-e85c-486c-9dca-63d49354eac6-000..
Docker 컨테이너 로그 용량
Docker 컨테이너 로그 용량
2020.06.30Docker 컨테이너를 많이 사용하다보면, 단시간에 로그가 급격하게 많이 쌓이는 현상이 발생하기도 한다. /var/lib/docker/containers 경로 아래에는 서버에서 동작중인 컨테이너들의 정보들이 기록되는데, 각각의 컨테이너별로 폴더가 생성이 되고, 그 아래에 "~~".log라는 이름으로 로그들이 생성되게 된다. 나는 이미 EFK 스택을 이용해서 ElasticSearch가 모든 로그들을 수집하여 관리하고 있도록 설정해 두었기 때문에, 저 로그들이 많이 쌓여있어도 아무런 의미가 없다. 그리고 멍청하게 시스템에 용량이 부족해져도 계속 로그가 생성되고 쌓이기 때문에, 저 로그들에 대해서 용량 제한과 같은 설정을 주어야 했다. 다행히도, 역시나 갓갓툴인 Docker에서는 이러한 현상에 대한 대비가 다..