본문 바로가기

서버인프라136

Ubuntu 20.04 LTS 디렉토리 구조 이번에는 리눅스 20.04 디렉토리 구조 및 용도에 대해 알아보겠다. / |-- bin |-- boot | |-- grub | `-- vmlinuz |-- dev | |-- sda | `-- tty |-- etc | |-- fstab | `-- passwd |-- home | `-- username |-- lib |-- lib64 |-- media |-- mnt |-- opt |-- proc |-- root |-- sbin |-- tmp |-- usr | |-- bin | |-- lib | `-- share `-- var |-- log |-- mail `-- www 리눅스 기본 구조는 위와 같다 대부분 비슷하다. / (Root 디렉토리) 모든 파일과 디렉토리의 시작점입니다. Linux에서는 모든 것이 파.. 2023. 8. 7.
리눅스 에서 압축과 압축 해제 기초적인것들 이지만, 자주 잊어 먹어서 항상 찾게 되는 그런 내용이다. gzip 그리고 tar 윈도우처럼 gzip이 압축하기 편하면 좋을텐데 우리가 사용하듯이 사용하기 불편한 사항들이 많다. 그래서 하나하나 알아가보자. gzip을 이용한 압축이다 아래와같이 입력하면 test.txt 파일에 대해서 압축되어 text.txt.gz 파일이 생성된다 gzip test.txt 그리고 압축 해제 방법은 다음과 같다. gunzip test.txt.gz 위와 같이 실행하면 압축이 해제 된다. 다음은 압축율을 지정해서 압축하는 것이다. -1 에서 -9 까지이고 -9로 지정시 가장 높은 압축률을 실행한다. 다만 cpu사용량이 많을 것이며, 시간이 오래 걸릴 수 있다는 단점이 있고, 용량을 줄일 수 있다는 장점이 있다. gz.. 2023. 8. 6.
git service 비교 git service 비교 Feature Gitea GitHub EE GitLab CE GitLab EE BitBucket Open source and free ✓ ✘ ✓ ✘ ✘ Low RAM/ CPU usage ✓ ✘ ✘ ✘ ✘ Multiple database support ✓ ✘ ⁄ ⁄ ✓ Multiple OS support ✓ ✘ ✘ ✘ ✘ Easy upgrades ✓ ✘ ✓ ✓ ✘ Telemetry ✘ ✓ ✓ ✓ ✓ Third-party render tool support ✓ ✘ ✘ ✘ ✓ WebAuthn (2FA) ✓ ✓ ✓ ✓ ✓ Extensive API ✓ ✓ ✓ ✓ ✓ Built-in Package/Container Registry ✓ ✓ ✓ ✓ ✘ Sync commits to an ext.. 2023. 8. 4.
자주 사용하는 git 명령어 기본 명령어 새 Git 저장소 초기화: git init 기존 저장소 복제: git clone 저장소 상태 확인: git status 파일을 스테이징 영역에 추가: git add 또는 git add . (모든 파일 추가) 변경 사항 커밋: git commit -m "" 커밋 히스토리 보기: git log 브랜치 & 병합 새 브랜치 생성: git branch 브랜치로 전환: git checkout 새 브랜치 생성 및 전환: git checkout -b 브랜치를 활성 브랜치로 병합: git merge 브랜치 삭제: git branch -d 원격 저장소 로컬 저장소를 원격 서버에 연결: git remote add origin 변경 사항을 원격 저장소에 푸시: git push origin 원격 저장소에서 최신 변.. 2023. 8. 3.
git을 활용한 directory 지정 클론 보통 잘 많이 사용하지 않는 것 같아 이번 기회에 내용을 담아보려 합니다. 사실 이 방법을 알고 있다면 시스템 관리자 입장에서는 프로젝트 단위 컨피그 관리가 편해집니다. 아래와 같이 컨피그를 관리 한다고 가정하에. 그리고 아래와 같은 디렉토리 구조를 가져 갑니다. ~/Documents/config (main) » tree A-Project ted@teds-MacBook-Pro A-Project └── nginx └── conf.d 3 directories, 0 files ------------------------------------------------------------------------------------------------------------------------------------.. 2023. 7. 24.
Let's Encrypt Ncloud 적용 오랜만에 글을 남기게 되었습니다. 오늘은 NCP에 Certificate manager 에 적용 하는 방법을 알리고자 합니다. Let's Encrypt에서 certbot을 이용하여 ssl인증서를 받게되면 아래와 같은 경로에 파일이 생기게 됩니다. /etc/letsencrypt/live/[my domain] 그리고 그 안에는 아래와 같이 4개의 symbol link가 걸려있습니다. cert.pem chain.pem fullchain.pem privkey.pem 위 파일들의 내용을 입력하여 certficate manager를 설정하게 됩니다. 그럼 지금부터 Certificate Chain 을 구하는 방법을 알아 보겠습니다. 위와 같이 크롬에서 자물쇠를 누르면, 이연결은 안전합니다 -> 인증서가 유효합니다. 를.. 2023. 7. 17.
ppk -> pem 변경 mac이나 리눅스에서 ppk를 사용할 수 없기 때문에 pem으로 변경 해야할 경우가 있다. 요즘은 pem, ppk 선택해서 서비스를 해주기는 하지만 ppk키 파일을 pem으로 변경 해야 할 경우 어떻게 해야 하는지 알아보자 brew install putty 위와 같이 putty를 설치해서 puttygen 을 사용 할 수 있도록 한다. 그리고 아래 test.ppk라는 파일이 있다고 가정하고 아래와 같이 puttygen을 활용하여 변경해 준다. puttygen test.ppk -O private-openssh -o test.pem 위와 같이 실행하면 test.pem파일이 생성된다. 사실 어렵지 않지만 자주 사용하지 않음으로 인하여, 자주 잊는다. 2023. 5. 8.
keyCloak 설치 우리가 Keycloak를 설치하기전 몇가지 사항에 대해서 알고 넘어가야 합니다. 이녀석을 왜 쓰고는지는 알아야 하니까요. 사용에 용도는 다르겠지만 기초적인 사용에 대한 이유와 엔지니어로써 이것을 어디에 붙여 쓰는지는 확인해 보고 넘어갔으면 합니다. keycloak를 접하다 보면 SSO, SMAL 이란 단어가 많이 나옵니다. SSO는 Single Sign-On의 약자로, 여러 서비스나 애플리케이션에 대해 한 번의 로그인 과정만으로 접근 권한을 부여하는 인증 방식입니다. SSO를 통해 사용자는 여러 서비스에 대해 별도의 로그인 과정을 거치지 않아도 되며, 이는 사용자 편의성을 높이고 시간을 절약하는 장점을 가집니다. SSO는 주로 다음과 같은 프로토콜 및 기술을 사용하여 구현됩니다 1. OAuth 2.0: .. 2023. 3. 20.
Nginx location 구분 이번에는 Nginx에서 location구분 하여 페이지를 생성 하도록 하겠습니다. 아래와 같이 nginx 구무에서 location 밖에 있는 root 를 아래와 같이 설정 합니다. 해당 디렉토리는 아래와 같이 구성되어 있습니다. /data/maintenance \_fun-errorpages \_images 그리고 mc.empathize.com/images/ 아래 어떤 것들을 불러올때는 location /images/ {}블록 설정 root에서 값을 찾아 옵니다. server { listen 80; server_name mc.empathize.com; access_log /var/log/nginx/v-access.log; error_log /var/log/nginx/v-error.log; # deny al.. 2023. 3. 14.
Nginx 503 처리방법 오늘은 nginx 에서 503 error에 대한 처리 방법에 대해 알아 보겠습니다. HTTP 503 오류는 일반적으로 다음과 같은 상황에서 발생합니다. 서버 부하가 많을 때 유지 보수를 위한 서버 다운 시간일 때 서버 장애 발생 시 저는 오늘 유지보수를 위한 서버 다운 시간을 가정하에 내용을 작성하고자 합니다. [ config 해설 ] 1. geo 모듈에 $dev_ip 변수를를 설정하여 myipaddress부분에 자신의 아이피를 설정 합니다. 2. if 문에 $dev_ip 를 비교 조건으로 하여 1설정 되어 있으면, break 로 빠저나가 location / { } 블록을 만나게 합니다. 1로 설정해야 할 ip는 개발자나, 엔지니어 사이트 관리자의 IP가 될 것입니다. 3. if (-f) 는 위 조건에 .. 2023. 3. 13.
부하테스트 Tools locust 오늘은 웹 성능 부하 테스트를 진행 하려 합니다. 간단한 예시로 locust의 강점을 잘 살려서 진행해 보겠습니다. 1. 설치 apt install python3 python3-pip pip3 install locust 2. 실행 mkdir ./locust cd ./locust vi locustfile.py from locust import HttpUser, task class HelloWorldUser(HttpUser): @task def hello_world(self): self.client.get("/ping") self.client.get("/ted") # locust [2023-02-23 11:12:51,504] master/WARNING/locust.main: System open file l.. 2023. 2. 23.
Ubuntu 22.04LTS 계정 보안설정 안녕하세요 이번에는 Ubuntu 22.04 계정 보안 점검에 대해서 1가지만 구성하고 가려고 합니다. Ubuntu 22.04에서는 기존에 /etc/pam.d 가 확인이 되지 않습니다 그래서 신규로 설치 하고 이후에 설정을 해줘야 하는데 왜 빠졌는지에 대해서는 아직 확인해 보지는 못했습니다. 하지만 시스템 점검 항목중에서 계정에 관한 것들이 나올때는 꼭 확인해서 수정해 줘야 하는 상황이니 참고하셔서 사용해 보시길 바랍니다. 아래와 같이 libpam-pwquality를 설치해줍니다. apt-get -y install libpam-pwquality 위와 같이 해 주시면 아래와 같이 /etc/pam.d 가 생성되고 하위에 아래와 같은 파일들 우리가 이전 20.04에서 봐왔던 파일들을 확인 하실 수 있습니다. ... 2023. 2. 21.
Linux sar 모니터링 sar 명령어 옵션 sar -b I/O 및 전송률 통계 sar -B 페이지 통계 sar -d 블록 장치 통계 sar -F 파일 시스템 통계 sar -H 이용 통계 sar -r kbmemfree : 물리메모리 남은양 kbmemused : 사용중인 물리 메모리 kbbuffers : 커널내 버퍼로 사용되고 있는 물리 메모리양 kbcached : 커널내 캐시용 메모리로 사용되고 있는 물리 메모리양 kbswpfree : 스왑 영역의 남은 용량 kbswpued : 사용중인 스왑 사용량 sar -W 스와핑 통계 sar -q 대기열 길이 및 로드 평균 통계 sar -R frmpg/s :시스템에서 초당 자유로워진 Memory pages의 페이지의 크기는 시스템 아키텍처에 따라 달라지며 보통 4k/8k 임 bufpg/s .. 2023. 2. 3.
LINUX 장애 디스크 복구 리눅스 장애 디스크 복구에 관해 확인해 보겠습니다. 시나리오 NCP 클라우드 서버에 장애가 발생하였다. 서버 A 장애 발생 해당 서버에 중요 파일이 있으므로 해당 디스크 마운트 하여 파일 백업 하여야 한다. 장애복구 1. ncp에 server하나를 추가 2. 장애서머 디스크를 snapshot 3. snapshot을 이용하여 스토리지를 새로 만든 서버에 추가 4. uuidgen을 이용하여 uuid 생성 root@test-1:/data# uuidgen ef53d9e2-426b-4f8e-ba88-4b602231f3b0 5. filesystem checking e2fsck -f /dev/xvdb1 6. UUID 변경 root@test-1:~# blkid /dev/xvda1: UUID="e1d859fe-43b2-.. 2023. 1. 31.
ssh execute command 오늘은 SSH EXECUTE COMMAND에 대해 알아보고자 합니다. EXECUTE COMMAND를 많이 사용하지는 않지만. shell에서 조금 편리하게 하고 자 원격에 어떠한 명령어를 접속해서가 아니라 현재 상태에서 확인 하고 싶을때 사용합니다. 저는 git이나 jenkins배포가 아닌 방법으로 배포 요청을 요구하는 곳이 있을때 다음과 같은 방법을 응용하여 해결하곤 합니다. SSH root@ip "command" 위와 같은 형식으로 만들 수 있습니다. 실제로 사용 한다면 다음과 같이 사용 해 볼수 있을 겁니다. SSH root@ip "cd /etc/nginx/conf.d/; ls -al" 위 서버에 nginx가 설치 되었다는 가정 하에 위와 같이 command를 입력하면 해당 디렉토리의 파일을 확인 할.. 2023. 1. 30.
Linux ZIP 사용 하기 오랜만에 글을 쓰게 되었습니다. 오늘은 직접 작업 하며 하도 까먹어서 개인 자료차 글을 남깁니다. zip 사용에 관한 내용입니다. 저는 주로 ubuntu를 사용해서 우선 설치는 apt로~ apt install zip 위와 같이 간단히 설정 할 수 있습니다. 그리고 오늘 소개하고 싶은 내용은 일부 파일이나 디렉토리를 제외하고 압축하는 방법 입니다. zip -r 디렉토리.zip 디렉토리 -x 디렉토리1/\* 디렉토리2/\* 위와 같은 방법으로 해당 디렉토리 안에 있는 특정 디렉토리나 파일을 제외 하고 압축 할 수 있습니다. 2023. 1. 27.
[제 10강] Labels 사용 이번에는 labels 사용에 대해 설명하려 합니다. kubernetes에서 label은 pod와 같은 객체에 key, value의 쌍으로 이뤄집니다. 기본 사용은 다음과 같습니다. label.yaml 파일로 저장 한 후에 다음과 같이 실행 합니다. apiVersion: v1 kind: Pod metadata: name: label-demo labels: environment: production app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 kubectl create -f label.yaml 아래 명령어로 생성 확인을 할 수 있습니다. kubectl get pod --show-labels l.. 2023. 1. 12.
Proxmox Firewall 안녕하세요 오늘은 proxmox의 firewall 사용에 대해 설명해 보려 합니다. 아래와 같이 Datacenter의 firewall에서 options를 선택하고 Firewall 을 yes로 변경합니다. Datacenter > firewall > options > Firewall [yes] 그리고 node proxmox의 firewall도 아래와 같이 yes로 변경 합니다. 이렇게 되었으면 proxmox의 방화벽을 사용할 수 있게 되었습니다 그럼 하나 예시로 룰 설정을 해보겠습니다. 현재 104(tlogin)서버는 firewall이 실행 되어 있습니다 이렇게 되면 모든 통신에 대해 차단이 됩니다. 현재 저 서버는 Port 22와 80 포트가 열려 있습니다. 하지만 현재 firewall이 실행 중 이기 때.. 2023. 1. 9.