DevOps

DevOps/Windows_윈도우

[IIS] apk 다운로드 오류(MIME 형식)

1. 문제본인은 현재 iis 웹서버를 통해 빌드한 애플리케이션 파일을 배포하고 있다.그러나 exe 파일의 경우 정상적으로 접근되나 apk 파일의 경우 404 에러가 발생하며 접근이 안되고 있는 현상이 발생하고 있다.  2. 해결 (MIME 형식)이는 IIS 웹서버 초기 기본 설정 시 빈번하게 발생하는 오류인데, 원인은 apk 확장자에 대한 mime 형식이 지정되어 있지 않기 때문이다.아래 절차대로 진행하여 apk 형식 추가가 가능하다. IIS 관리자로 접근 후 apk을 배포할 웹서버를 선택한다.이후 IIS 항목에서 MIME 형식 메뉴를 선택한다.   MIME 형식 추가 버튼을 눌러 MIME 형식을 추가한다.apk의 경우 다음과 같이 입력한다.파일 이름 확장자명 : .apkMIME 형식 : applicat..

DevOps/Monitoring_모니터링

[Prometheus/Grafana] 윈도우 OS 시간 모니터링 및 차이 발생 시 알람 발생(+meth 쿼리 결과 비교 및 label_replace 함수 라벨 변환)

0. 개요현재 특정 대역의 서버들은 윈도우로 구성된 NTP 서버의 시간을 동기화하여 사용한다고 가정한다.  그런데 이 NTP 서버 시간대가 실제 시간대와 점차 차이가 벌어진다.원인은 네트워크 지연, ntp 설정 문제, 시스템 리소스(CMOS 배터리 등 물리적 부품의 문제) 등 여러 경우가 있어 보임 이에 윈도우 서버의 시간을 모니터링하여 실제 시간과 차이가 30초 이상 발생하면 Slack 알람이 발송되도록 모니터링하는 방법을 알아보겠다.  1. win_exporter 구성NTP 서버에 win_exporter 설치를 진행한다.Win_exporter 이름으로 윈도우 서비스를 등록했으며, 이를 실행 및 자동 실행 설정을 진행한다.sc create "Win_exporter" binPath= "C:\infra_m..

DevOps/open source_오픈소스

[NGINX] Nginx에서 Client IP(접속자 IP) 확인 방법

1. 개요nginx에서 application으로 요청을 전달할때, 접근하는 client ip를 확인해야 하는 경우가 있다.내 경우 특정 프로그램에서 실제 접근하는 IP 주소를 확인해야 하는 경우와, 정기점검 시 외부 사용자들은 점검페이지로 접근되도록 접속하는 IP를 구별하는 용도로 사용하였다.정기점검 전환 proxy 구성에 대해서는 추후에 자세히 설명하겠다. 이에 nginx에서 접근하는 ip를 확인하는 방법에 대해 설명해보겠다.  2. proxy_set_headernginx location 하위 블록에 proxy_set_header을 통해 여러 header를 세팅할 수 있다.https://nginx.org/en/docs/http/ngx_http_proxy_module.html Module ngx_http..

DevOps/open source_오픈소스

[NGINX] nginx reverse proxy

1. 개요현재 매 월마다 서비스 정기점검을 진행하고 있다. 보통 새벽시간대에 점검을 진행하는데 이 때 일반 사용자는 점검중인 서비스에 접근할 수 없도록 점검 페이지로 이동해야 하며, 개발자, QA등 테스트 인원들은 동일 도메인에 정상적으로 접근하도록 작업이 필요한 상황이다. 이에 점검 시간 중 사내 대역에서는 서비스에 정상적으로 접근하고 그 외 외부 접근은 모두 점검페이지로 접근하도록 Nginx Proxy 서버를 구축하려 한다. 2. proxy란?proxy : 대리, 대신, 대리권  출처: 동아출판 프라임 영한사전 프록시란 ‘대리’라는 단어 뜻 그대로 통신이나 응답을 중계하여 대리로 수행하는 것을 뜻한다.이 프록시 기능을 하는 주체를 프록시 서버(Proxy Server)라고 한다.  2.1 proxy 서..

DevOps/open source_오픈소스

[NGINX] 기본 구성과 Configuration

1.개요지금까지 내가 운영했던 대부분의 웹 서버는 nginx였다. 그리고 이번에 정기점검 페이지 전환 작업을 위한 proxy 서버 또한 nginx로 구성하게 되었는데 이렇게 nginx를 많이 사용하면서 제대로 공부한 적은 없던 것 같아 이번 기회에 한번 정리를 해보려 한다. 2. nginx의 기본 원리Nginx는 하나의 master process와 하나 이상의 worker process로 구성되어 있다.master process : configuration file을 읽고 실행하며 worker process들을 관리worker process : 유저가 요청한 request에 대한 실제 작업을 수행 즉, Nginx는 멀티 프로세스 싱글 스레드 방식으로 동작한다.* 비동기 이벤트 방식으로 동작하여 메모리 사..

DevOps/Monitoring_모니터링

[Prometheus] 프로메테우스 config reload

👍🏼 요약HTTP POST 요청 혹은 프로세스 시그널(kill) 명령으로 재시작 없이 reload가 가능하다.HTTP POST 방식curl -X POST http://localhost:9090/-/reload프로메테우스 설정에서 Lifecycle 옵션이 활성화 되어있어야 한다.프로세스 시그널kill -SIGHUP [PID]    kill -1 [PID](두 명령 동일함)ps -ef | grep [process 이름]  해당 명령으로 PID 확인 가능 🔃 프로메테우스 config reload💡프로메테우스 구성/운영 중 감시 대상을 변경하거나 알람 role를 추가하는 등 프로메테우스 설정을 변경해야 하는 경우가 존재한다. 본인의 경우 현재 컨테이너로 동작중에 있어 config 파일을 수정하고 재시작을..

DevOps/Monitoring_모니터링

[Prometheus] 프로메테우스 데이터 기본 저장경로 (+docker compose)

요약일반적으로 사용하는 프로메테우스와 프로메테우스 Docker Image 의 메트릭이 저장되는 기본 경로가 다르다.프로메테우스의 기본 메트릭 저장 경로는 /prometheus/data 이다.docker image에는 --storage.tsdb.path 옵션이 붙어 /prometheu 로 경로가 변경된다.prometheus documenter에 나온 정보대로 기본 경로 /prometheus 로 지정하고 싶다면, 따로 --storage.tsdb.path=/prometheus 옵션을 부여해야 하니, 구성에 주의해야 한다.    현재 docker compose를 구성하여 프로메테우스를 구성 중 docker compose up -d 명령으로 컨테이너 실행을 진행하면 계속해서 컨테이너 마운트 포인트 관련한 에러가 ..

DevOps/Monitoring_모니터링

[Prometheus] 프로메테우스 데이터 마이그레이션 (docker volume 옵션)

1. 기존 프로메테우스 데이터 마이그레이션현재 테스트로 프로메테우스를 구성하여 node exporter를 통해 몇몇 리눅스 서버를 모니터링하고 있다.별 다른 설정 없이, 단순 프로메테우스 이미지를 컨테이너 실행 시킨 것 뿐이라, 데이터 등도 컨테이너 내부에서 쌓이고 있다.  대강 이런 형식인데, 문제는 모니터링 대상이 추가되거나, 구성에 변경이 있을 시 컨테이너를 재시작하면 쌓여있던 데이터가 전부 날아가는 것이다..(당연히,, 컨테이너를 새로 빌드하면 그렇지..) 그래서 지금 동작중인 해당 프로메테우스의 저장된 3개월치의 데이터를 가지고신규 구성한 컨테이너로 마이그레이션하는 작업을 진행해보겠다. 신규 구성 프로메테우스 구성은 기존 글을 참고하시라https://cwpack0730.tistory.com/10..

DevOps/Monitoring_모니터링

[Prometheus] 프로메테우스 기본 구성 (docker compose 생성)

1. Prometheus 구성 목적본인은 현재 시스템을 하이브리드 클라우드 형태로 운영하고 있는데 (AWS, NCP, GCP, Azure, IDC센터 및 사내 전산실 모두 관리중이다.)프로젝트나 서비스 별로 플랫폼과 환경이 달라서 어느 정도의 통합이 필요한 상황이다... (혼자서 관리하기에 너무 어렵다.)지금 가장 시급한 것은 모니터링 통합이라고 생각했고, 그래서 여러 모니터링 서비스를 찾아보던 중 prometheus를 알게되었다. 현재 대표적인 모니터링 솔루션으로는 zabbix, telegraf, cloudwatch, scouter 등 많이들 있지만, prometheus로 진행해보기로 결정하였다.(몇개는 이미 포스팅하였다. )  이유는 다음과 같다. 시계열 데이터베이스를 사용한다. (TSDB)데이터가 ..

DevOps/Linux_리눅스

[Linux] dhcpd not authoritative 문제 해결

DHCP 미 할당 이슈 발생본인은 현재 2개의 망으로 네트워크를 분리해서 운영중에 있다.각 내부 서버, NAS, PC 등의 연결과 유선 인터넷 전화기에 연결하는 용도로 사용중인데 근래 사내 PC 들이 DHCP 할당을 못 받아오는 이슈가 종종 발생하였다. DHCP.conf 구성과 연결된 Client 구성에는 문제가 없어, 중간에 네트워크 통신 과정에서 route/swicth 문제가 아닐까 하였는데, DHCP 할당이 안 되는 PC들에겐 모두 공통점이 있었다.모두 원래 사용중이던 대역이 아닌 다른 망의 대역으로 잡히는 것이다. 원인두 개의 망이 각자 DHCP 서버가 존재한다.그리고 내부 구성에서 두 망이 연결되어 있다.(애초에 이 구성부터 잘못되긴 함…)그리고 PC에서 사용중인 망에서 DHCP 할당을 받지 못..

DevOps/open source_오픈소스

[Redmine] 프로젝트 관리 오픈소스, 레드마인

!! Redmine레드마인(Redamine)은 오픈소스 프로그램으로 웹 기반의 프로젝트 관리와 버그 추적 기능을 제공하는 도구이다. 주요 기능으로는 달력과 칸트 차트, 일정관리 기능이 있다.이를 화면기반의 기능을 제공하여 프로젝트 관리에 도움을 줄 수 있다.redmine의 디자인은 Trac에 영향을 많이 받았으며 ruby에 기반하여 작성되었고 멀티 플랫폼을 지원하며 여러가지 종류의 데이터베이스 및 34개의 언어를 지원한다.   Ubuntu 20.04 LTS , installdatabase(mariaDB) 설치# database를 설치한다.apt-get updateapt-get install mariadb-server -ymysql -u root -p# db 버전에 따라서 utf8로 진행하여도 된다.Mar..

DevOps/Monitoring_모니터링

[Grafana] Grafana Image Renderer

Grafana Image Renderer 그라파나에서 대시보드 패널이미지를 포함시키기 위해선 그라파나 이미지 랜더러가 필요하다. 그라파나 이미지 렌더러(Grafana Image Renderer) 그래프 이미지화를 위해 해당 플로그린을 설치하거나 독립 실행형으로 배포할 수 있다. 이미지 렌더러 문서(링크) 에서 자세한 설치방법을 확인할 수 있다. 1. 그라파나 cli를 사용한 설치 현재 그라파나를 직접 설치해서 사용하고 있다. 이 같은 경우 cli를 통한 설치가 가능하다. 설치과정에서 크로미움 관련 라이브러리 종속성이 있다. 설치 후, 그라파나 재시작이 필요하기 때문에 docker로 돌리고 있다면 이후 설명하는 독립실행형으로 설치 또는 이미지 렌더러를 포함한 이미지를 사용해야 한다. $ grafana-cl..

cwpack0730
'DevOps' 카테고리의 글 목록