728x90
반응형

분류 전체보기 126

Kibana index lifecycle 적용

lifecycle에 대해서 간단하게 설명을 하자면 특정 조건(기간, 용량)에 해당되면 index를 분할하거나 특정기간에 해당되면 삭제하는 기능이 있다. 물론 분할 + 삭제 같이 사용도 가능하다. 이번 포스팅은 분할(rollover)보단 삭제를 중점적으로 진행했다. 이미 index가 생성된 상태에서 정책을 새로 만들면 index 설정을 수정하는 추가 작업이 필요하고 정책 적용 후 생기는 index는 추가 작업이 필요 없다. 1. 정책생성 - index Lifecycle Polices 선택 2. Create policy 선택 - 내용 입력 Hot, Warn, cold phase가 있는데 쉽게 생각하면 빈도가 높은 index일수록 온도가 뜨겁다고 생각하면 된다. 보통 자주 쓰는 Hot phase에 rollov..

Kibana 2023.06.29

Nginx restrict access by ip 사용자 ip로 제한하기-2(추가작업)

지난 포스팅에서 nginx에서 ip를 기준으로 사용자 접근을 허용, 제한하는 방법에 대해서 알아봤다. https://babbeolicoding.tistory.com/55 Nginx restrict access by ip 사용자 ip로 제한하기 우선 기본적으로 nginx에서 ip기준으로 서비스를 차단, 허용하는 방법은 allow, deny를 사용하는 것이다. allow ip deny all; -> 이런 경우특정 ip 만 허용되고 나머지 경우는 전부 차단된다. 하지만 lb를 통 babbeolicoding.tistory.com 지난 시간에 포스팅한 내용에서 2번 방법을 사용하면 /etc/nginx/nginx.conf가 아닌 /etc/nginx/conf.d/*.conf 파일들에 각각 if 문을 적용해야 한다. ..

Nginx 2023.06.27

Nginx restrict access by ip 사용자 ip로 제한하기

우선 기본적으로 nginx에서 ip기준으로 서비스를 차단, 허용하는 방법은 allow, deny를 사용하는 것이다. allow ip deny all; -> 이런 경우특정 ip 만 허용되고 나머지 경우는 전부 차단된다. 하지만 lb를 통해 유입되는 경우 client ip가 아닌 lb ip로 변환된 상태로 서비스유입이 된다. 해당경우는 client ip로 제어를 하기 힘들다. 이런 경우 X-Forwarded-For 기능을 사용해 client ip를 보존해 해당 ip를 통해 allow, deny가 가능하다. Client IP를 사용하는 방법 우선 nginx log 포맷은 아래와 같은 상태로 진행해봤다. log_format main '$http_x_forwarded_for - $remote_addr - $rem..

Nginx 2023.06.26

this action would add [1] total shards, but this cluster currently has [1000]/[1000] maximum shards open

보통 kibana에서 elasticsearch 로그를 가져와서 화면에 보여주곤 한다. 갑자기 kibana에서 특정 index 값이 나오지 않는다면 elastic 서버에 접속해서 로그를 확인해 보면 아래 오류 메시지가 발생하는 경우가 있다, 오류내용 this action would add [1] total shards, but this cluster currently has [1000]/[1000] maximum shards open 해당 내용은 elasticsearch에서 사용하는 shard max값이 1000개인데 현재 shard를 다 사용했다는 뜻이다. 해결 방법은 간단하다. shard의 갯수를 늘려주면 된다. Trouble Shooting 방법 #현재 shard 확인 curl --user '{id}..

Elasticsearch 2023.06.22

Docker image 삭제 prune 명령어

kubernetes를 운영하다 보면 워커노드 디스크 사용량이 꽤 많아질 때가 있다. 정기적으로 로그를 삭제해도 배포를 주기적으로 하다 보면 docker 관련 리소스가 계속 쌓이기 때문에 용량이 늘어날 수 밖에 없다. 이런 경우 워커노드에 직접 들어가서 docker 명령어를 통해 불필요한 리소스를 삭제하는 방법이 있다. 명령어 - docker system prune -a -f Options Name, shorthand Default Description --all , -a Remove all unused images not just dangling ones --filter Provide filter values (e.g. label==) --force , -f Do not prompt for confirm..

Docker 2023.06.21

RabbitMQ Service Connection test python

RabbitMQ Cluster 구성 후 서비스를 테스트하기 위해 간단한 프로그램을 만들어봤다. (RabbitMQ Cluster를 구성하는 방법은 맨 아래 링크를 걸어놨으니 참고하시길 바란다) Rabbitmq 접속 테스트 소스(python 기준) - 접속 시 vhost를 지정하지 않으면 default로 / 로 접속 - PlainCredentials 부분에는 클러스터 생성 시 만들었던 계정 id, pw를 입력 - url 부분은 ip로 하면 접속이 안되고 도메인을 사용해야 한다. RabbitMQ 서비스 접속 테스트 코드 import pika class Publisher: def __init__(self): self.__url = '{domain}' self.__port = 5672 self.__vhost = ..

RabbitMQ 2023.06.20

Haproxy log 설정

생성할 조건 haproxy.log를 일별로 30일 동안 생성 로그를 남기는 원리 - rsyslog haproxy는 rsyslog를 통해서 로그를 남겨야 한다. - logrotate logrotate는 log를 일자별로 생성해준다. haproxy.log를 haproxy.log-yyyymmdd로 파일을 변경 기존 haproxy.log는 /dev null처리를 해준다. 로그 생성 방법 1. rsyslog를 통해 haproxy로그를 남길 수 있도록 세팅 vi /etc/rsyslog.d/haproxy.conf $AddUnixListenSocket /var/lib/haproxy/dev/log # Send HAProxy messages to a dedicated logfile if $programname starts..

Haproxy 2023.06.15

haproxy 예전 frontend로 서비스 호출되는 경우

현상 haproxy 서비스를 호출하면 서비스가 성공과 실패를 반복함 로그를 확인해 보니 실패하는 경우는 예전에 설치했던 haproxy frontend로 서비스가 호출됨 원인분석 centOS에서 yum으로 haproxy를 설치하고 haproxy.cfg 세팅 후 서비스를 실행함 하지만 버전이 낮아 yum remove로 haporxy를 삭제함 이 후 haproxy 수동 설치를 진행하고 haproxy 서비스를 실행함 ==> 과거 서비스가 남아 문제가 발생한 것으로 보임 해결 방법 ps -ef | grep haproxy 로 확인 후 haproxy -f haproxy.cfg로 돌고 있는 프로세스 전부 kill kill -9 pid 이후 haproxy 재기동 후 예전 haproxy frontend로 호출하는 서비스 ..

Haproxy 2023.06.14

Haproxy resolver 설정(Dynamic DNS resolution)

https://babbeolicoding.tistory.com/48 Nginx resolver 설정(Dynamic DNS resolution) 나 같은 경우 Nginx와 AWS ELB를 사용할 때 간헐적으로 Nginx 서비스가 안 되는 경우를 경험했다. 그 이유와 해결 방법에 대해서 포스팅을 진행해 봤다. - Dynamic DNS resolution란? DNS의 IP가 변경되었을때 babbeolicoding.tistory.com Dynamic DNS resolution의 의미와 왜 resolver 설정이 필요한지는 위 게시글을 들어가서 확인하시길 바란다. Haproxy resolver 사용하기 haproxy.cfg 값 resolvers mynameservers nameserver ns1 192.168.2..

Haproxy 2023.06.13

Nginx resolver 설정(Dynamic DNS resolution)

나 같은 경우 Nginx와 AWS ELB를 사용할 때 간헐적으로 Nginx 서비스가 안 되는 경우를 경험했다. 그 이유와 해결 방법에 대해서 포스팅을 진행해 봤다. - Dynamic DNS resolution란? DNS의 IP가 변경되었을때 자동적으로 IP를 변경해주는 기능을 Dynamic DNS Resolution라고 함 유료 솔루션인 Nginx Plus의 경우는 Dynamic DNS Resolution 기능이 제공되지만 무료 솔루션인 Nginx Open은 기능이 제공되지 않음(하지만 해당 기능을 사용하는 방법은 존재) - Nginx와 ELB 사용 시 오류가 발생하는 이유 Nginx는 기동될때 ELB의 ip를 가져와 캐시에 로드함 AWS ELB인 경우 ip가 동적으로 변경됨 ELB의 ip가 변경되는 경..

Nginx 2023.06.12
728x90
반응형