분류 전체보기 67

DC새글알리미 제작기

1. 동기 작년 중순쯤 디시인사이드 새글 알림 프로그램이 있었으면 하는 생각이 들었다. 아니나 다를까, 이미 다양한 알림 프로그램들이 있었다. 하지만 내가 원하는 알림 프로그램은 없었다. 어떤 것은 프로그램 자체 UI에서, 어떤 것은 텔레그램을 통해서 알려주는 등 컴퓨터로 다른 짓을 하면서 보기에는 불편하다는 생각이 들었다. 그래서 내가 만들기로 했다. 2. 기획 내가 원하는 건 컴퓨터로 다른 짓을 하면서도, 그 화면에서 알림을 받을 수 있는 프로그램이었다. 그리고 심플하면서도 만들기 쉬운 UI를 원했다. 그것이 파이썬을 선택한 계기였다. PyQT5라는 라이브러리로 UI를 간단하게 그릴 수 있었고, win10toast라는 라이브러리로 윈도우10 팝업메시지를 이용할 수 있는 라이브러리도 있었다. 크롤링, ..

일상/취미 2021.03.14

Kubernetes namespace가 terminating에 멈춰서 안 지워질 때

쿠버네티스를 사용하다보면 네임스페이스를 날려야할 때가 많다. 그러면 꼭 terminating 상태에서 멈춰서 안 지워지는 현상이 발생하곤 한다. 이 현상을 구글링 하면 finalizer 제거를 통해 네임스페이스를 강제 삭제하는 방법이 나오지만 바람직한 방법은 아니다. 애초에 네임스페이스가 terminating에서 멈춰 있는 이유는, 잔존하는 리소스들이 해당 네임스페이스에 남아있기 때문이다. 그 잔존 리소스들 또한 terminating에 멈춰 있을 가능성이 높은데, 보통의 경우에 이는 삭제 순서가 꼬였을 때 발생한다. 따라서, 그 잔존 리소스들을 다 지워주기만 한다면 정상적으로 지워질 것이다. 파악하는 방법은 아래 커맨드를 이용하면 된다. $ kubectl get namespace {네임스페이스 이름} -..

공부/Kubernetes 2021.03.13

컨테이너의 이미지 개념 한 장 정리

컨테이너1은 OS+JAVA8+CODE2 조합의 이미지를, 컨테이너2는 OS+JAVA7+CODE1 조합의 이미지를 사용한다. 컨테이너는 이미지를 계층적으로 관리하기 때문에, 중복되는 이미지 레이어는 1개만 보관하고 있으면 된다. 이는 VM 이미지와의 큰 차이점이다. 이 이미지 레이어들도 결국엔 하나의 파일 시스템이다. 이 계층적 이미지들을 하나의 경로에 쌓아올리는 기술이 union mount이다. 컨테이너를 실행하게 되면, union mount를 통해 하나의 경로에 계층적으로 쌓인다. 그렇게 이미지 레이어가 다 쌓인 후에는, 그 위에 read/write 레이어가 씌워진다. 이 레이어는 이미지에 영향은 안주면서, 컨테이너가 write할 수 있도록 해준다. 하지만, 컨테이너 입장에서는 모든 레이어가 겹쳐 보이..

공부/Kubernetes 2021.03.12

Kibana [index_not_found_exception] no such index [.kibana] 에러 해결

Kibana를 다루던 도중, 아래와 같은 에러가 났다. {"type":"error","@timestamp":"2021-03-11T01:24:23Z","tags":["warning","stats-collection"], "pid":1,"level":"error","error":{"message":"[index_not_found_exception] no such index [.kibana], with { resource.type=\"index_or_alias\" & resource.id=\".kibana\" & index_uuid=\"_na_\" & index=\".kibana\" }","name":"Error","stack":"[index_not_found_exception] no such index [...

공부/EFK 2021.03.11

curl을 이용한 Kibana index 패턴 생성

Kibana UI에 접속하지 않고 인덱스를 만들 수 있다. curl로 API 콜을 날리는 것이다. 기본 형식은 아래와 같다. curl -f -XPOST -H 'Content-Type: application/json' -H 'kbn-xsrf: anything' 'http://localhost:5601/api/saved_objects/index-pattern/{인덱스패턴} '-d{"attributes":{"title":"인덱스패턴","timeFieldName":"타임필드네임"}}' 예시로, 가장 흔하게 사용하는 logstash 인덱스 패턴을 만들어보자. kibana 컨테이너에 직접 들어가서 아래의 해당 curl 커맨드를 입력한다. $ curl -f -XPOST -H 'Content-Type: applicat..

공부/EFK 2021.03.11

Kibana basePath 설정 (Configuration 설정)

kibana는 최초 실행 시 /usr/share/kibana/config 경로에 있는 kibana.yml 파일을 읽어서 초기 설정을 수행한다. kibana.yml에 들어갈 수 있는 설정 값들은 아래 링크의 공식문서에서 확인할 수 있다. www.elastic.co/guide/en/kibana/current/settings.html Configure Kibana | Kibana Guide [7.11] | Elastic To reload the logging settings, send a SIGHUP signal to Kibana. www.elastic.co 사용자가 따로 만들지 않아도 kibana가 자동적으로 아래와 같이 kibana.yml 파일을 만든다. (7.2.0 버전 기준) server.name: k..

공부/EFK 2021.03.11