DevOps

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

DevOps/Monitoring_모니터링

[모니터링] Grafana Slack 연동

Slack app 구축 slack api에 접속하여, create new app을 진행한다. from scartch을 선택한다. 이후 app name을 설정하고 연결할 slack workspace를 선택한다. 좌측 Features 탭에서 OAuth & Permissions을 선택한다. 설치를 진행한다. 관리자 권한이 필요하다. 이후 슬랙 api를 통해 메세지와 그래프이미지 등을 전송할 것이기 때문에, files:wirte , chat:wirte 권한을 추가한다. 이후, 생성된 토큰값을 복사하여 grafana → alerting → contact point를 생성한다. 생성된 contact point에 대한 라우팅 설정을 진행해야 하는데, notification policles 에서 정책을 추가한다. ro..

DevOps/Monitoring_모니터링

[모니터링] CloudWatch + Grafana 모니터링 구축

CloudWatch https://cwpack0730.tistory.com/64 [AWS] CloudWatch (AWS 리소스 상태 모니터링) CloudWatch는 AWS 리소스의 상태를 모니터링 하는 서비스입니다. 모니터링 뿐만 아니라 측정치(Metric)와 연계하여 다양한 액션(Action)을 사용할 수 있습니다. 💡 프리 티어에서 사용 가능 CloudWatch는 cwpack0730.tistory.com 본인이 학습한 cloudwatch 개념 정리된 링크이다. 현재 aws ec2에 서버가 있고, 해당 서버의 기본 리소스(cpu,disk R/W 등)를 grafana로 모니터링 및 slack 알람까지 구현하겠다. # CloudWatch 기본 개념 기본적인 CPU, disk 읽기/쓰기, network 등은..

DevOps/Cloud_클라우드

[AWS 실습] Server-less Web Service (S3, CloudFront, Route53)

Server-less Web Service (S3, CloudFront, Route53) 개요 이전 사내 웹 서비스를 서버리스로 호스팅 한 사례를 공유해보려 한다. 웹 개발자나 클라우드에 관심이 있는 사람들에게는 정말 기초적인 작업이지만 서버리스 환경을 처음 접하게 된 계기가 되어 준비하였다. 1. 신규 웹페이지 서비스 오픈 1. 웹 페이지는 개발이 완료되어 데이터 공유받음 2. 호스팅 방식 선택 3. 서비스 오픈 진행 2. 신규법인 웹페이지 호스팅 호스팅 방식 1. 본사 온프레미스에서 호스팅 2. Cloud에서 서버 생성하여 호스팅 3. AWS Service 활용하여 서버 없이 호스팅 1-1. 본사 VM 호스팅 금액: 0원(전기세...?) 관리: 서버 관리자 필요 난이도: 직접 웹서버를 구축해야 함 2..

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