DevOps

DevOps/Linux_리눅스

[Linux] ulimit 개념 및 설정 방법(사용자 별 자원 관리)

1. ulimit 이란?ulimit는 리눅스(유닉스)에서 사용자별로 프로세스의 자원 한도를 설정하거나 확인할 수 있는 명령어이다.위 ulimit soft 값과 hard 값을 비교해보면 hard의 값이 훨신 크게 잡혀 있는 것을 알 수 있다. 사용자가 실행하는 프로세스에 대해 다음과 같은 자원 제한을 설정한다.파일 크기열 수 있는 파일의 최대 수사용 가능 메모리CPU 시간프로세스 개수코어 덤프 크기  ulimit [옵션] 값 ( Centos , RHEL 기준)a : 모든 제한 사항을 보여줌.c : 최대 코어 파일 사이즈d : 프로세스 데이터 세그먼트의 최대 크기f : shell에 의해 만들어질 수 있는 파일의 최대 크기s : 최대 스택 크기p : 파이프 크기n : 오픈 파일의 최대수u : 오픈파일의 최대수..

DevOps/Network_네트워크

[OpenVPN] OpenVPN Server 구축(Linux)

🍃 개요예전 사내에 Fortigate SSL-VPN을 구성한적이 있는데 macOS를 사용하는 PC에서는 접속이 안되는 문제가 있었다.이에 원인은 잘 모르겠지만 당장 접속이 필요한 상황이기 때문에 OpenVPN Server를 구축하여 VPN 통신을 구현해보겠다.  1. 실습 환경# 실습 환경cat /etc/*release*CentOS Linux release 8.5.2111Derived from Red Hat Enterprise Linux 8.5NAME="CentOS Linux"VERSION="8"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="8"PLATFORM_ID="platform:el8"PRETTY_NAME="CentOS Linux 8"ANSI_COLOR="0;31"..

DevOps/open source_오픈소스

[Tomcat] Apache Tomcat 실행 시 포트 정보(HTTP/HTTPS, AJP 커넥터, Shutdown 등)

🍃 개요Tomcat은 server.xml 파일에서 여러 포트를 설정할 수 있는데, 각 포트는 다른 목적으로 사용된다.주요 포트와 기능에 대해서 설명해보겠다.  1. Connector Port (HTTP/HTTPS)클라이언트가 HTTP 혹은 HTTPS 프로토콜로 웹 애플리케이션에 접근할 수 있도록 설정하는 포트이다.태그에서 설정하며 기본적으로 HTTP: 8080, HTTPS: 8443 포트로 적용되어있다. HTTPS의 경우는 기본적으로 비활성화 되어있다. 사용하러면 주석을 제거하고 SSL 인증서 경로를 지정해주면 된다.  2. Shutdown PortTomcat은 안전하게 종료하기 위해 shutdown 포트가 존재한다. 지정한 port를 통해 SHUTDOWN 명령어를 진행하면 tomcat 프로세스를 종료..

DevOps/open source_오픈소스

[Tools] 크기가 큰 텍스트 파일 열기(파일 분할)

개요tomcat 로그를 확인하려하는데, 용량이 너무 커 메모장으로 열 수 없는 상황이다. 어느 정도의 GB 크기의 텍스트 파일은 메모장 외에도 notepad++, visual studio 등의 툴을 사용해서 open할 수 있으나, 내가 확인하려는 텍스트 파일은 40GB(…)를 넘는다. 오랜 시간 끝에 파일을 열어도 일부만 출력되고 나머지는 잘리는 상태인데,이에 텍스트 파일을 분할하는 방법을 소개하겠다.  1. 텍스트 파일 분할 용량은 큰 텍스트의 파일을 라인(줄) 기반으로 분할해주는 프로그램이다.다운로드 후 실행하면 다음과 같이 나타난다.  이후 GO를 선택하면 파일 분할을 시작한다.  파일 분할이 정상적으로 완료되었다. 이제 내용 확인이 가능해졌다.

DevOps/open source_오픈소스

[Nginx] 애플리케이션 토큰 헤더 요청 오류 (헤더 옵션 변경)

개요현재 신규 서비스를 개발하고 있는데 빌드가 완료되어 개발서버에 배포를 진행하고 있다.spring 기반의 서비스이며 nginx와 tomcat으로 운영하고 있는데 서비스 호출은 정상이나 몇몇 api 및 토큰 요청에 문제가 있는 상황이다. 이에 nginx 설정 중 헤더 구성에 원인이 있다고 판단하여 nginx 설정을 확인해보는 시간을 가져보겠다.  현재 구성( nginx.conf )다음은 예시로 구성한 nginx.conf 이다.upstream cwking { server 192.168.100.20:8080;}server { listen 80; server_name woodev.devcw.site ; location / { proxy_pass http://cwk..

DevOps/virtualization_가상화

[Proxmox] 하이퍼바이저 재시작 후 VM 실행 오류 (no quorum, vm is locked)

개요개발환경으로 여러대의 온프레미스를 proxmox 서버로 하이퍼바이저를 구성하여 다양한 개발환경으로 사용중에 있다.오늘 비상전력 작업이 있어, 시스템 재기동을 함께 진행하였는데 proxmox가 재기동 후 몇몇 VM들이 실행되지 않는 현상이 발생하였다. 이에 proxmox VM 실행 오류 2가지의 해결 방법에 대해 알아보겠다.  1. VM is locked (snapshot)현재 100 VMID의 VM이 잠금 표시가 나타나며 실행되지 않는 상황이다.정확하게는 "VM is locked (snapshot)” 라고 에러가 나타나며 VM이 실행되지 않는데, 이는 표기 그대로 VM이 잠금 상태가 되었기 때문이다.주로 스냅샷 작업 도중 시스템이 중단되거나 재시작된 경우 발생할 수 있다고 한다.proxmox 서버에 ..

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 파일을 수정하고 재시작을..

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