상기 주제는 스터디에서 테스크로 주어진 현재 Teleport에 각 서비스가 도커로 올라가 있는데, 이 도커 서비스들의 현황을 파악해 달라는 일에서 시작했다. 하나씩 쉘에 들어가서 명령어로 확인 할 수 있었지만, Teleport를 통해서 서비스들의 접근이 가능하다는 점에서 Teleport 쉘이 있다면 일이 쉽게 풀릴 것 같아 방법을 찾아보다가 발견하게 되었다.
1. 환경 준비 (macOS 기준)
먼저 각 서버에 안전하게 접속하기 위한 Teleport(tsh) 도구를 설치하고 경로를 설정했다.
- Homebrew 설치: 맥 필수 패키지 관리자 설치
-
Bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
- 환경 변수 등록: zsh에서 brew를 인식하도록 설정
#Bash echo 'eval "$(/opt/homebrew/bin/brew shellenv zsh)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv zsh)" - Teleport 설치:
#Bash brew install teleport
2. 인프라 인증 및 로그인
원격 서버들에 접근하기 위해 중앙 관리 프록시에 로그인했다.
- 명령어: tsh login --proxy=console.~~~~~~~
- 브라우저 인증을 통해 보안성을 고려한 접속 권한을 획득했다.
3. 멀티 서버 일괄 명령어 실행 (Troubleshooting)
단일 서버 접속이 아닌, 전체 서버의 상태를 한 번에 파악하기 위해 zsh 반복문(for loop)과 tsh를 조합했다.
[Troubleshooting]
- 처음엔 tsh ssh "root@*"를 시도했으나, 터미널 환경에 따라 와일드카드(*) 인식이 안 되는 문제 발생.
- 해결방법: tsh ls로 서버 목록을 먼저 뽑아내어 하나씩 명령어를 날리는 스크립트 작성.
for node in $(tsh ls --format=names); do
echo "\n=== SERVER: $node ===";
tsh ssh root@$node "docker ps -a";
done
4. 데이터 수집 및 현황 파악
위 명령어를 통해 수집된 데이터를 바탕으로 전체 인프라 맵을 도출했다.
- 정상 작동: Harbor(이미지 레지스트리), 개발용 인프라, 리버스 프록시 등 대부분의 서비스.
- 점검 대상 발견: odyssey 서버의 프론트엔드(unhealthy), zabbix 모니터링 서버 중지 등.
- 기타: Docker가 설치되지 않은 순수 OS 서버들 식별.
5. 결론
- 효율성: 각 서버에 수동으로 접속(SSH)하지 않고, 한곳에서 수십 대 서버의 도커 상태를 1분 만에 파악 완료.
- 가시성: docker ps -a 결과를 통해 컨테이너의 헬스 체크 상태(Healthy/Unhealthy)를 실시간으로 확인하여 장애 지점을 즉시 식별함.
'네트워크' 카테고리의 다른 글
| [네트워크]CloudFront(CDN)에 대해서 (0) | 2026.03.16 |
|---|---|
| [네트워크] OSI L2/L3/L4/L7 계층별 핵심과 통신흐름 (1) | 2026.03.15 |
| [네트워크]네트워크 회선 (1) | 2026.03.11 |
| [네트워크]OSI 7계층에 대하여 (0) | 2026.02.05 |
| [네트워크]데이터 센터 네트워크의 구조 (2) | 2026.01.29 |