728x90
반응형

버전: 2025-08

1. 개요

Cloudflare Tunnel은 로컬 네트워크 환경의 애플리케이션을 외부 인터넷에 안전하게 노출시키는 방식이다. 전통적인 포트 포워딩이나 VPN과 달리 Zero Trust 원칙을 따르며, Cloudflare 네트워크를 통해 암호화된 연결을 제공한다. 이를 위한 핵심 도구가 cloudflared CLI를 통해 터널 생성, 실행, 라우팅, 모니터링, 정리 작업을 수행할 수 있다.

2. 설치 및 기본 구조

  • 설치:
brew install cloudflared 
# macOS 

apt-get install cloudflared
# Linux (repo 추가 후)

winget install Cloudflare.cloudflared
# Windows
  • 구성요소:
    • Tunnel: Cloudflare 네트워크에 등록된 고유 연결.
    • Connector: cloudflared 프로세스가 Cloudflare에 터널을 열어주는 역할.
    • Routing: 특정 도메인 → 특정 로컬 서비스로 트래픽을 매핑.

3. 운영 시나리오 예시

3.1 신규 터널 생성 및 실행


cloudflared tunnel login 
cloudflared tunnel create my-tunnel 
cloudflared tunnel route dns app.example.com my-tunnel 
cloudflared tunnel run my-tunnel

3.2 사설 네트워크 라우팅 추가


cloudflared tunnel route ip add 10.0.0.0/24 my-tunnel 
cloudflared tunnel route ip show

3.3 비정상 종료 후 정리

cloudflared tunnel cleanup my-tunnel

3.4 터널 삭제
터널은 이름 또는 UUID로 삭제할 수 있음. 안전하게 UUID로 지우는 걸 추천

cloudflared tunnel delete xxxxxxx-XXXX-XXXX-xxxx-xxxxxxxx

4. 명령어 분류

카테고리 명령어 설명
인증 cloudflared tunnel login 브라우저 인증 창을 열어 Cloudflare 계정과 터널을 연결
조회 cloudflared tunnel list 모든 활성/삭제된 터널 목록 표시 (-d로 삭제된 터널 포함)
생성 cloudflared tunnel create <NAME/UUID> 터널 생성 및 자격 증명 파일 발급
실행 cloudflared tunnel run <NAME/UUID> 지정된 터널 실행 (고가용성 연결 생성)
정보 cloudflared tunnel info <NAME/UUID> 해당 터널의 활성 커넥터 상세 정보 표시
정리 cloudflared tunnel cleanup <NAME/UUID> 비정상 종료된 터널 연결 제거
라우팅 (DNS) cloudflared tunnel route dns <HOSTNAME> 터널로 향하는 CNAME 레코드 생성
라우팅 (IP) cloudflared tunnel route ip add <IP/CIDR> 특정 네트워크 대역을 터널에 연결
cloudflared tunnel route ip show 조직의 프라이빗 라우팅 테이블 조회
cloudflared tunnel route ip delete <CIDR> 지정 CIDR 라우팅 제거
cloudflared tunnel route ip get <IP> 특정 IP가 어떤 라우팅 규칙을 따르는지 확인
로드밸런싱 cloudflared tunnel route lb <NAME/UUID> 터널을 로드밸런서 풀에 연결
설정 실행 cloudflared tunnel --config path/config.yaml YAML 설정 파일 기반 터널 실행

5. 운영 팁

  • 구성 파일 관리: /etc/cloudflared/config.yaml에 터널 이름, 인스턴스 수, 라우팅 설정을 저장하면 재시작 시 편리.
  • 모니터링: cloudflared tunnel info로 연결 상태를 주기적으로 점검.
  • 보안: 터널 자격 증명 파일(.json)은 루트 권한 또는 최소 권한으로 보호.

6. 참고 문서

반응형
728x90
반응형

AhnLab Safe Transaction(ASTx)에서 원격 접속(Remote Connection)을 허용하려면 아래 단계를 따라 설정하세요:


원격 접속 허용 설정 방법

  1. 트레이 아이콘 우클릭 → 환경 설정 열기
    작업 표시줄 오른쪽의 AhnLab Safe Transaction(방패 모양 아이콘)을 우클릭한 뒤 "환경 설정" 메뉴를 선택합니다.





  2. '원격 접속 차단' 체크 해제
    환경 설정 창 중간 부분에 있는 “원격 접속 차단” 옵션의 체크를 해제합니다. 이렇게 하면 원격 접속이 허용됩니다.

  3. 사이트 및 프로그램 특성 확인
    다만, 보호 사이트 정책이나 금융서비스 특성에 따라 설정을 해도 원격 접속이 제한될 수 있습니다. 이런 경우에는 해당 사이트와 관련된 프로그램이나 브라우저 창을 모두 종료한 뒤 다시 시도해 보세요 


요약

단계내용

1. 트레이 아이콘 우클릭 → 환경 설정
2. “원격 접속 차단” 체크 해제 
3. 해당 금융사이트 접속 / 재접속

 

주의사항

“원격 접속 차단” 기능은 사용자도 인지 못한 사이에 악의적인 원격 접근을 방지하기 위한 설정입니다. 따라서 필요 시에는 해제하셔도 되지만, 보안 측면을 고려하여 사용하시는 것을 권장드립니다.

반응형
728x90
반응형

ssh 로 key파일 이용해서 서버 접속하는데 이런 오류가 났다. 

 

이전에도 봤던 에러인데 어떻게 해결했는지 기억도 되짚어 보고 기록도 남겨둘 겸 글써두기. 

 

리눅스라면 단순히 chown 명령어로 간단히 해결했을테지만, 윈도우 환경에서는 아래와 같이 해결해줘야 한다. 

 

해당 key파일에 오른쪽 마우스 >> 속성  >> '보안' 탭 클릭 

그리고 아래 (2) 동그라미에 현재 접속하고자 하는 윈도우 계정 빼고 모두 삭제해야 한다. 
즉 현재 보이는 화면 처럼 계정 1줄 남기고 모두 삭제! 

아래 '고급'버튼을 누르면 그룹이나 사용자목록을 제거할 수 있다. 

 

 

그리고 다시 ssh 접속해보면 됨. 끗! 

 

반응형
728x90
반응형

Watchtower는 Docker 컨테이너를 모니터링하고 자동으로 최신 이미지로 업데이트해주는 도구입니다.

 

docker-compose.yml 파일 예시
 
version: "3"
services:
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_SCHEDULE=0 0 4 * * * # 매일 새벽 4시에 실행
      - TZ=Asia/Seoul # 시간대 설정
    restart: unless-stopped
 

주요 설정 설명:

  1. image: Watchtower의 공식 이미지(containrrr/watchtower)를 사용합니다.
  2. container_name: 컨테이너 이름을 watchtower로 지정합니다.
  3. volumes: /var/run/docker.sock를 마운트하여 Watchtower가 Docker API에 접근할 수 있도록 합니다.
  4. environment:
    • WATCHTOWER_CLEANUP: 업데이트 후 이전 이미지를 정리합니다.
    • WATCHTOWER_SCHEDULE: 크론 형식으로 업데이트 주기를 설정합니다. 위 예제는 매일 새벽 4시에 실행됩니다. (크론 형식: 초 분 시 일 월 요일)
    • TZ: 시간대를 설정합니다. 예시는 한국 시간(Asia/Seoul)입니다.
  5. restart: 컨테이너가 종료되더라도 자동으로 재시작하도록 설정합니다.

사용 방법:

  1. 위 내용을 docker-compose.yml 파일로 저장합니다.
  2. 아래 명령어로 Watchtower를 실행합니다: 
  3. bash 명령어 
     
    docker-compose up -d

 

추가 옵션 (선택 사항):

  • 특정 컨테이너만 모니터링하고 싶을 때:
    yaml
    environment: - WATCHTOWER_INCLUDE_STOPPED=true # 정지된 컨테이너도 포함 - WATCHTOWER_IGNORE_CONTAINERS=container_name # 특정 컨테이너 제외
  • 알림 설정(Slack, Email 등):
    yaml
    environment: - WATCHTOWER_NOTIFICATIONS=slack - WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://hooks.slack.com/services/xxx/yyy/zzz

더 많은 설정은 Watchtower 공식 문서를 참고하세요.

 

Discord 웹훅에 Watchtower 연결하기 

Discord에서 웹훅의 TOKENWEBHOOK_ID를 확인하려면 아래 단계를 따라주세요. 이 과정은 Discord 서버의 채널에서 웹훅을 생성하고 URL에서 필요한 정보를 추출하는 방법입니다.

1. Discord 웹훅 생성

  1. 서버 및 채널 선택:
    • Discord 서버에서 알림을 받을 채널로 이동합니다.
    • 서버 관리 권한이 있어야 웹훅을 생성할 수 있습니다.
  2. 채널 설정으로 이동:
    • 채널 이름 옆의 톱니바퀴 아이콘(⚙️)을 클릭하거나, 채널을 우클릭한 뒤 "채널 수정"을 선택합니다.
  3. 통합(Integrations) 탭:
    • 채널 설정 메뉴에서 "통합" 탭을 선택합니다.
    • "웹훅" 섹션에서 "웹훅 만들기" 또는 "웹훅 보기" 버튼을 클릭합니다.
  4. 웹훅 생성:
    • "새 웹훅" 버튼을 클릭하여 웹훅을 생성합니다.
    • 웹훅의 이름과 알림을 받을 채널을 설정한 후 저장합니다.
    • 생성 후 "웹훅 URL 복사" 버튼을 눌러 URL을 복사합니다.

2. WEBHOOK_ID와 TOKEN 추출

복사한 웹훅 URL은 다음과 같은 형식을 가집니다:

text
https://discord.com/api/webhooks/<WEBHOOK_ID>/<TOKEN>
  • WEBHOOK_ID: URL에서 https://discord.com/api/webhooks/ 바로 뒤의 숫자 부분입니다.
  • TOKEN: WEBHOOK_ID 뒤의 슬래시(/) 이후 나오는 긴 문자열입니다.

예시 URL:

  • WEBHOOK_ID: 123456789012345678
  • TOKEN: AbCdEfGhIjKlMnOpQrStUvWxYz

3. 주의사항

  • 보안: 웹훅 URL, 특히 TOKEN은 민감한 정보입니다. 절대 공개적으로 공유하지 마세요. URL을 가진 사람은 해당 채널에 메시지를 보낼 수 있습니다.
  • 권한: 웹훅을 생성하거나 수정하려면 서버에서 "웹훅 관리" 권한이 필요합니다.
  • 문제 해결: URL이 작동하지 않거나 잘못된 경우, Discord 채널 설정에서 웹훅이 올바르게 생성되었는지, 또는 삭제되지 않았는지 확인하세요.

4. Watchtower 설정에 적용

이전에 제공한 docker-compose.yml에서 WATCHTOWER_NOTIFICATION_URL에 다음과 같이 입력합니다:

yaml
 
environment: - WATCHTOWER_NOTIFICATION_URL=discord://<TOKEN>@<WEBHOOK_ID>

예시:

yaml
 
- WATCHTOWER_NOTIFICATION_URL=discord://AbCdEfGhIjKlMnOpQrStUvWxYz@123456789012345678

 

 

 

반응형
728x90
반응형

현재 Claude code는 윈도우 운영체제를 지원하지 않아서 WSL 을 먼저 설치 해야 합니다.

여기서는 WSL을 설치하고 WSL 의 ubuntu에서 실행하는 것을 기본 전제로 하겠습니다.

소프트 웨어 준비

  • Node.js 18+
  • git 2.23+ (optional)
  • GitHub or GitLab CLI for PR workflows (optional)

위 세가지가 준비 되어야 하는데, 여기서 Node.js 설치하는 법을 안내하겠습니다.

1. NodeSource를 이용한 Node.js 설치 (추천)

(만약 최신 버전인 "Current" 릴리스로 설치 하고싶을 경우 1-1 따라하기)

원하는 Node.js 버전에 따라 아래 명령어를 입력하세요.
(예시: 20.x 버전 설치)

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - 
sudo apt-get install -y nodejs

설치 확인:

node -v 
npm -v

1-1. Node.js "Current" 릴리스로 설치

curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
sudo apt-get install -y nodejs

1-2. Node.js 22.x (LTS 버전)

  • Node.js 22.x (LTS 버전)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs

1-3. Ubuntu 공식 패키지로 설치 (버전이 낮을 수 있음)

  1. 터미널에서 아래 명령어 입력:
  2. sudo apt update sudo apt install -y nodejs npm`
  3. 버전 확인:
node -v 
npm -v

3. npm의 전역(global) 패키지 설치 위치 변경

기본적으로 npm에서 전역 패키지를 설치하려면 시스템 전체에 영향을 미치기 때문에 root(관리자) 권한이 필요합니다.
그래서 보통 sudo npm install -g 패키지명처럼 sudo를 붙여야 했죠.
그런데 sudo 없이 패키지를 설치하고 싶거나, 시스템 파일을 건드리지 않고 내 사용자 환경에서만 쓰고 싶을 때 이 방법을 씁니다.
또한, 전역 설치를 위해 sudo를 남발하면, npm이 의도치 않게 시스템 파일까지 수정할 위험이 있습니다.
내 홈 폴더(~/.npm-global)에서만 전역 설치가 이뤄지도록 하면, 시스템 파일을 건드릴 일이 없어서 훨씬 안전하겠죠?

npm list -g --depth=0 > ~/npm-global-packages.txt
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

여기까지 했으면 이제 Claude code 설치 준비는 끝난겁니다.

마지막 단계

npm install -g @anthropic-ai/claude-code

위 명령어를 입력했을 때 아래와 같이 떴다면 성공한겁니다.

이제 claude 명령어를 입력해 실행해봅니다.

claude

 

아래와 같이 초기 설정이 진행됩니다. 원하는 화면 모드를 선택한 후 다음으로 넘어갑니다. 

 

Claude 구독을 하고 있다면 1번,
API 사용 기반 과금 형식으로  사용하고자 한다면 2번을 선택합니다. (저는 구독이 있어 1번을 선택합니다.)

 

그 다음에는 사용자 인증 절차를 거쳐야 합니다. claude 로그인 url이 나타나는데 컨트롤 + 클릭 하거나, 해당 주소를 브라우저에 복사 + 붙여넣기 하여 접속해줍니다. 

 

그러면 아래와 같이 연결 승인 절차가 진행됩니다. 

 

승인을 하면 길다란 코드가 발급이 되고요, Copy Code 를 클릭해서 복사해줍니다. 

 

복사해준 코드를 다시 WSL 화면으로 돌아와 붙여주고 엔터를 입력합니다. 

 

Login Successful 이라고 뜨면서 인증 절차가 잘 진행되었습니다. 엔터 쳐줍니다. 

 

보안 관련 안내사항이 있습니다. 자세한 사항은 링크를 클릭해 읽어보라는 군요. 엔터 치면 다음으로 넘어갑니다. 

 

여기서부터는 claude code를 실행할 때마다 뜨는 화면입니다. 현재 경로에서 작업할게 아니면 2번을 입력해 나갑니다. 

 

이제 claude 명령어를 입력해 WSL 내 어디서든 claude code를 활용해 개발할 수 있습니다. 즐코딩! 

반응형
728x90
반응형

증상

SER8을 잘 쓰다 갑자기 스피커를 연결해도 소리도 안들리고, 모니터를 2대 이상 연결했을 때 연결도 안되는 증상이 있었다. 

 

해결

지피티한테 물어보고 이것저것 시도해보다가 아래 Beelink 사이트에서 그래픽 드라이버를 설치하고 해결되었다. 

링크 : Beelink

 

Beelink

 

dr.bee-link.cn

 

위 링크를 들어가면 아래와 같이 5개의 파일목록이 있는데, 나는 다 다운로드를 받아두었다. 그래픽 드라이버는 맨 아래 
SER8-8845-Driver_2024-05-16_7-12-50.zip 파일에 포함되어 있다. 

 

위 SER8-8845-Driver_2024-05-16_7-12-50.zip 파일 압축을 풀면 이렇게 나온다. 이 중에 VGA 폴더에 들어간다. 

 

아래 실행파일을 실행하면 모니터들이 제대로 인식된다. 

 

 

반응형
728x90
반응형

서버를 하나 더 추가한 뒤로 기존 서버가 접속이 안되는 현상이 발생했음 

원인을 몰라서 chatGPT, grok 등에 문의하며 삽질을 꽤 여러 번 했는데, 결론적으로 방화벽 잠깐 내리니까 접속됨 (Proxmox에서 방화벽 '예' 설정 부분) 

접속되는 거 보고 다시 방화벽 올림.

단지 이것만 했을 뿐인데 다시 접속이 되다니. 

 

 

반응형
728x90
반응형

1. Elasticsearch에서 logstash_internal 비밀번호 확인 및 재설정

Elasticsearch에서 logstash_internal 사용자의 비밀번호를 확인하거나 재설정합니다.

  • Elasticsearch 초기 비밀번호 확인: Elasticsearch가 처음 시작될 때 logstash_internal 사용자의 비밀번호가 자동 생성됩니다. Docker 로그에서 이를 확인하세요:
    docker logs elasticsearch
    로그에서 logstash_internal 사용자의 비밀번호를 찾아 Logstash 설정에 반영합니다.
  • 비밀번호 재설정: 비밀번호를 모르거나 잘못된 경우, 수동으로 재설정합니다:
    1. Elasticsearch 컨테이너에 접속:
      docker exec -it elasticsearch bash
    2. 비밀번호 재설정 명령 실행:
      bin/elasticsearch-reset-password -u logstash_internal
      이 명령은 새 비밀번호를 생성하거나 대화형 모드로 비밀번호를 설정합니다.
    3. 생성된 비밀번호를 복사하여 Logstash의 logstash.conf 또는 환경 변수에 반영합니다.

 

elasticsearch-reset-password | Elastic 문서

 

elasticsearch-reset-password | Elastic Documentation

The elasticsearch-reset-password command resets the passwords of users in the native realm and built-in users. Use this command to reset the password...

www.elastic.co

 

다음 예시에서는 username이 있는 기본 사용자의 암호를 자동 생성된 값으로 재설정하고 콘솔에 새 암호를 인쇄합니다. 지정된 URL은 elasticsearch-reset-password 도구가 로컬 Elasticsearch 노드에 연결하려고 시도하는 위치를 나타냅니다.

bin/elasticsearch-reset-password --url "http://elasticsearch:9200" --username logstash_internal -i
위 명령어를 수행하면 아래와 같이 나타납니다.

이후에 해당 docker compose를 restart 해줍니다. 
docker compose restart   

 

2. Elasticsearch 보안 설정 점검

Elasticsearch에서 X-Pack Security가 활성화되어 있는지 확인하고, 필요하면 일시적으로 비활성화하여 테스트합니다.

  • 보안 설정 확인: Elasticsearch의 설정 파일(예: elasticsearch.yml) 또는 docker-compose.yml에서 보안 설정을 확인하세요. 기본적으로 7.10.0 이상에서는 보안이 활성화되어 있습니다. docker-compose.yml에서 다음이 설정되어 있는지 확인:
    services: elasticsearch: environment: - xpack.security.enabled=true ...
  • 보안 비활성화 테스트 (임시): 인증 문제를 배제하기 위해 일시적으로 보안을 비활성화할 수 있습니다:
    services: elasticsearch: environment: - discovery.type=single-node - xpack.security.enabled=false ...
  • Docker Compose를 재시작:
    docker-compose down && docker-compose up
    오류가 사라지면 인증 문제가 원인입니다. 주의: 프로덕션 환경에서는 보안을 비활성화하지 마세요. 대신 올바른 자격 증명을 설정하세요.

이후에 logstash 에서 아래와 같은 오류가 또 발생 - 403에러 

비밀번호를 바꿔줬는데도 뭔가 에러가 계속 발생하고 있었는데, 이번엔 좀 다른 종류의 에러였습니다. (아래) 

[2025-04-17T04:07:20,233][WARN ][logstash.outputs.elasticsearch][main] Health check failed {:code=>403, :url=>http://elasticsearch:9200/, :message=>"Got response code '403' contacting Elasticsearch at URL 'http://elasticsearch:9200/'"} [2025-04-17T04:07:20,304][WARN ][logstash.outputs.elasticsearch][main] Elasticsearch main endpoint returns 403 {:message=>"Got response code '403' contacting Elasticsearch at URL 'http://elasticsearch:9200/'", :body=>"{\"error\":{\"root_cause\":[{\"type\":\"security_exception\",\"reason\":\"action [cluster:monitor/main] is unauthorized for user [logstash_internal] with effective roles [] (assigned roles [logstash_writer] were not found), this action is granted by the cluster privileges [monitor,manage,all]\"}],\"type\":\"security_exception\",\"reason\":\"action [cluster:monitor/main] is unauthorized for user [logstash_internal] with effective roles [] (assigned roles [logstash_writer] were not found), this action is granted by the cluster privileges [monitor,manage,all]\"},\"status\":403}"}

 

위 에러를 요약하자면 HTTP 403 Forbidden 응답 코드로 인해 Elasticsearch에 접근할 수 없는 문제라는 내용입니다. 구체적으로, logstash_internal 사용자가 cluster:monitor/main 액션을 수행할 권한이 없으며, 할당된 역할(logstash_writer)이 Elasticsearch에서 인식되지 않는다는 메시지가 나타납니다.

오류 원인

로그를 분석해보면 다음과 같은 주요 원인을 확인할 수 있습니다:

  1. 권한 부족 (HTTP 403 Forbidden)
    • logstash_internal 사용자가 Elasticsearch에서 필요한 작업(cluster:monitor/main)을 수행할 권한이 없습니다.
  2. 역할 설정 문제
    • logstash_writer 역할이 logstash_internal 사용자에게 할당되었지만, Elasticsearch에서 이 역할이 정의되지 않았거나 찾을 수 없습니다.
  3. 보안 설정 오류
    • Elasticsearch에서 X-Pack Security가 활성화된 상태에서 사용자와 역할이 올바르게 구성되지 않았을 가능성이 있습니다.

 

해결 방법

1. Elasticsearch에서 사용자와 역할 확인

먼저, logstash_internal 사용자와 logstash_writer 역할이 Elasticsearch에 제대로 설정되어 있는지 확인합니다.

  • Elasticsearch 컨테이너에 접속:
    docker exec -it elasticsearch bash
  • 사용자 역할 확인:
    bin/elasticsearch-users roles logstash_internal
    • 출력 결과에 logstash_writer 역할이 포함되어 있는지 확인하세요.
  • 역할 정의 확인:
    bin/elasticsearch-roles list logstash_writer
    • logstash_writer 역할이 존재하지 않거나, 필요한 권한(monitor, manage_index_templates, write 등)이 누락되었는지 확인합니다.

제 경우, bin/elasticsearch-roles list 에서 사용자가 아무것도 나타나지 않았습니다. 

 

그래서 kibana web console로 접속(http://kibana:5601/app/dev_tools#/console/shell) 한 뒤에
아래 3개의 POST 명령을 각각 실행해줬습니다. 

POST _security/role/logstash_writer
{
  "cluster": ["manage_index_templates", "monitor", "manage_ilm"],
  "indices": [
    {
      "names": [ "logstash-*" ],
      "privileges": ["write","create","create_index","manage","manage_ilm"]
    }
  ]
}
 
POST _security/user/logstash_internal
{
  "password" : "your-password",
  "roles" : [ "logstash_writer"],
  "full_name" : "Internal Logstash User"
}

POST _security/role/logstash_reader
{
  "cluster": ["manage_logstash_pipelines"],
  "indices": [
    {
      "names": [ "logstash-*" ],
      "privileges": ["read","view_index_metadata"]
    }
  ]
}

 

재생 표시 아이콘을 누르면 각 POST 마다 명령을 실행할 수 있습니다. 

이후 logstash_internal 에 role이 잘 부여되었는지 보기 위해 아래 GET 명령을 실행합니다.

GET _security/user/logstash_internal

그러면 아래 이미지와 같이 명령어 결과를 확인할 수 있습니다. 

 

logstash_reader의 role은 반영이 안되었지만 writer 역할이 없어 오류가 난 것이기 때문에 문제 해결은 되었습니다. 

 

참고 문서 :  Elasticsearch에 대한 연결 보안 | Elastic 문서

반응형

+ Recent posts