[SK shieldus Rookies 19기] 클라우드 기반 취약점 진단 및 대응 실무 5일차

기록하는짱구·2024년 5월 2일
0

SK Shieldus Rookies 19기

목록 보기
38/43
post-thumbnail

📌 VPC, Subnet, IGW, NAT GW, RT 생성

VPC 생성

서브넷 생성

2개의 가용영역에 public, private 각각 두개씩 생성

인터넷 게이트웨이 생성 및 VPC 연결

NAT Gateway 생성

첫번째 Public Subnet에 생성

라우팅 테이블 생성

IGW와 연결된 것과 NAT GW와 연결된 것을 각각 생성

라우팅 테이블과 서브넷 연결

📌 방화벽을 배치할 서브넷 추가

서브넷 이름을 "본인에게 할당된 계정명"-subnet-구분자 형식으로 변경

📌 Network Firewall 생성

나머지 설정은 그대로 유지한 상태로 [다음][다음] 후 [방화벽 생성]

방화벽 생성에 대략 10분 정도 소요

📌 네트워크 방화벽 정책 설정

나머지 설정을 그대로 유지한 상태로 [다음][다음] 후 [규칙 그룹 생성]

📌 방화벽 생성 확인

📌 라우팅 테이블 수정

퍼블릭 라우팅 테이블 수정

네트워크 방화벽을 배치할 서브넷에 적용할 라우팅 테이블 추가

인터넷 게이트웨이의 라우팅을 설정할 라우팅 테이블 추가

📌 EC2 인스턴스 생성

첫번째 가용영역에 생성한 public 서브넷에 생성

나머지 설정을 그대로 유지한 상태로 [인스턴스 시작]

📌 인스턴스의 퍼블릭 주소로 SSH 접속 후 웹 서버 설치

패키지 업데이트

ubuntu@ip-10-0-0-175:~$ sudo apt-get update
0% [Waiting for headers] [Waiting for headers]
# 방화벽 규칙에 내부에서 외부로 나가는 규칙이 없기 때문에 
  외부로 연결하지 못 함 

방화벽 규칙에 내부에서 외부로 나갈 수 있도록 추가

패키지 업데이트 및 웹 서버 설치

ubuntu@ip-10-0-0-175:~$ sudo apt-get update
Hit:1 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:3 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu noble-backports InRelease
Reading package lists... Done

ubuntu@ip-10-0-0-175:~$ sudo apt-get install apache2

ubuntu@ip-10-0-0-175:~$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-05-02 02:15:12 UTC; 9min ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 2053 (apache2)
      Tasks: 55 (limit: 1130)
     Memory: 5.5M (peak: 5.7M)
        CPU: 66ms
     CGroup: /system.slice/apache2.service
             ├─2053 /usr/sbin/apache2 -k start
             ├─2056 /usr/sbin/apache2 -k start
             └─2057 /usr/sbin/apache2 -k start

May 02 02:15:12 ip-10-0-0-175 systemd[1]: Starting apache2.service - The Apache HTTP Server...
May 02 02:15:12 ip-110-0-0-175 apachectl[2052]: AH00558: apache2: Could not reliably determine the >
May 02 02:15:12 ip-10-0-0-175 systemd[1]: Started apache2.service - The Apache HTTP Server.

브라우저를 통해 웹 서버 접속

방화벽 규칙에서 외부에서 VPC 내부로 80포트 접근을 허가하지 않도록 변경 후 웹 서버 접속 여부 확인

📌 방화벽 동작 상태 확인

📌 트래픽 흐름 확인 - 네크워크 관리자 > 연결성 분석기(Reachability Analyzer)

📌 리소스 정리

Reachability Analyzer

분석 삭제

경로 삭제

EC2 인스턴스 종료

라우팅 테이블 삭제

방화벽이 포함된 서브넷에 연결된 라우팅 테이블을 서브넷과 분리 후 삭제

인터넷 게이트웨이와 연결된 라우팅 테이블을 IGW와 분리 후 삭제

퍼블릭 라우팅 테이블을 서브넷 연결 해제 후 삭제

프라이빗 라우팅 테이블을 연결 해제 후 삭제

방화벽 삭제

방화벽 정책 삭제 (방화벽 삭제 후 일정 시간이 경과한 후)

네트워크 방화벽 - 규칙 그룹 삭제 (방화벽 삭제 후 일정 시간이 경과한 후)

NAT 게이트웨이 삭제

VPC 삭제 (일정 시간 경과 후)

탄력적 IP 릴리스

VPC 대시보드 확인

EC2 대시보드 확인

📌 Amazon Route 53

https://aws.amazon.com/ko/route53/

✔ 가용성과 확장성이 뛰어난 DNS 웹 서비스

✔ 도메인 등록, DNS 라우팅, 상태 확인 조합의 세 가지의 주요 기능을 사용할 수 있음

✔ 도메인을 발급하거나 이미 보유 중인(발급받은) 도메인을 연결 가능

✔ 퍼블릭 호스팅 영역에 등록하면 외부에서 해당 도메인으로 접근 가능

✔ 프라이빗 호스팅 영역에 등록하면 외부에서는 해당 도메인으로 접근 불가하며 내부에서만 사용 가능하고 퍼블릭 호스팅 영역보다 우선순위로 도메인 검색을 진행

✔ 레코드 생성 시 다양한 라우팅 정책 선택 가능

  1. 단순 라우팅 정책(Simple routing policy)
    도메인에 대해 특정 기능을 수행하는 하나의 리소스만 있는 경우(예. example.com 웹 사이트의 콘텐츠를 제공하는 하나의 웹 서버)에 사용

  2. 장애 조치 라우팅 정책(Failover routing policy)
    액티브-패시브 장애 조치를 구성하려는 경우에 사용

  3. 지리 위치 라우팅 정책(Geolocation routing policy)
    사용자의 위치에 기반하여 트래픽을 라우팅하려는 경우에 사용

  4. 지리 근접 라우팅 정책(Geoproximity routing policy)
    리소스의 위치를 기반으로 트래픽을 라우팅하고 필요에 따라 한 위치의 리소스에서 다른 위치의 리소스로 트래픽을 보내려는 경우에 사용

  5. 지연 시간 라우팅 정책
    여러 AWS 리전에 리소스가 있고 최상의 지연 시간을 제공하는 리전으로 트래픽을 라우팅하려는 경우에 사용

  6. IP 기반 라우팅 정책
    사용자의 위치에 기반하여 트래픽을 라우팅하고 트래픽이 시작되는 IP 주소가 있는 경우에 사용

  7. 다중 응답 라우팅 정책(Multivalue answer routing policy)
    Route 53이 DNS 쿼리에 무작위로 선택된 최대 8개의 정상 레코드로 응답하게 하려는 경우에 사용

  8. 가중치 기반 라우팅 정책(Weighted routing policy)
    사용자가 지정하는 비율에 따라 여러 리소스로 트래픽을 라우팅하려는 경우에 사용

📌 Amazon CloudFront

https://aws.amazon.com/ko/cloudfront/

CDN 서비스

✔ html, css, js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빠르게 배포하도록 지원하는 웹 서비스

✔ 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠 제공

✔ 사용자가 콘텐츠를 요청하면 지연시간이 가장 낮은 엣지 로케이션으로 요청이 라우팅되어 빠르게 제공

✔ 콘텐츠 사본이 전 세계 여러 엣지 로케이션에 캐시되므로 안정성과 가용성이 향상

📌 AWS Client VPN

https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/what-is.html

Virtual Private Network (가상 사설망)

✔ AWS 리소스 및 온프레미스 네트워크의 리소스에 안전하게 액세스할 수 있도록 하는 관리형 클라이언트 서비스

✔ 사용하기 위해서는 인증서가 필요하며 AWS Certificate Manager에서 발급받거나 이미 발급받은 인증서를 등록할 수 있음

✔ 보통 재택근무자들이 사용하는 VPN이 Client VPN

📌 AWS Transit Gateway

https://aws.amazon.com/ko/transit-gateway/

✔ Amazon VPC, AWS 계정 및 온프레미스 네트워크를 단일 게이트웨이에 연결

✔ VPC와 온프레미스 네트워크를 상호 연결하는데 사용할 수 있는 네트워크 전송 허브

✔ 리전 간 피어링은 AWS 글로벌 인프라를 사용하여 Transit Gateway를 사용하여 연결

✔ 데이터는 자동으로 암호화되며 퍼블릭 인터넷을 통해 전송되지 않고 네트워크 트래픽의 볼륨에 따라 탄력적으로 조정

✔ Transit Gateway를 통한 라우팅은 패킷이 대상 IP 주소를 기반으로 특정 다음 홉 연결로 전송되는 3계층에서 작동

✔ VPC Peering은 VPC와 1:1로 연결되지만 Transit Gateway는 한번에 여러 개의 VPC와 연결 가능

VPC Peering

Transit Gateway

📌 AWS Config

https://aws.amazon.com/ko/config/

✔ AWS 계정에 있는 AWS 리소스 구성을 자세히 보여주어 리소스 간에 관계성과 이전에 어떻게 구성되었는지, 시간이 흐르면서 구성과 관계의 변화를 확인 가능

✔ 리소스 관리, 규칙 및 규정 준수 팩, 애그리게이터, 고급 쿼리의 기능을 제공

✔ 규칙을 사용하여 AWS 리소스의 구성 설정을 평가하고 규칙 중 하나의 조건 위반을 감지하면 규칙 미준수로 알림을 보냄

✔ 내부 정책 및 모범 사례를 준수하는지 확인하기 위해 감사가 자주 필요한 데이터를 작업

✔ 수정하고자 하는 리소스가 다른 리소스와 어떤 관계(의존성)에 있는지 보고, 변경 영향 평가

✔ 보안 그룹, IAM 정책, 역할 등 잠재적인 보안 약점을 분석할 수 있음

✔ 최종 프로젝트에 클라우드를 활용한 컨설팅을 진행하는 경우 ISMS-P, ISO-27001 등의 인증 체계에 대해 적합성 팩이 존재하므로 확인을 추천(Config 팩에서는 ISMS-P가 아니라 K-ISMS로 검색해야 확인 가능)

📌 Top 8 container registries

https://learn.microsoft.com/ko-kr/azure/container-registry/media/container-registry-concepts/registry-elements.pnghttps://learn.microsoft.com/ko-kr/azure/container-registry/media/container-registry-concepts/registry-elements.pnghttps://learn.microsoft.com/ko-kr/azure/container-registry/media/container-registry-concepts/registry-elements.png

📌 레지스트리, 리포지토리, 아티팩트 정보

https://learn.microsoft.com/ko-kr/azure/container-registry/container-registry-concepts

📌 Amazon ECR

✔ 안전하고 확장 가능하며 안정적인 AWS 관리형 컨테이너 이미지 레지스트리 서비스

✔ AWS IAM을 사용하여 리소스 기반 권한이 있는 프라이빗 리포지토리를 지원

✔ Docker 이미지, OCI(Open Container Initiative) 이미지 및 OCI 호환 아티팩트를 푸시, 풀 및 관리 가능

✔ Docker Hub Private Registry와 비슷하다고 생각하면 됨

📌 Amazon ECS

✔ 컨테이너화된 애플리케이션을 쉽게 배포, 관리 및 확장하는 데 도움이 되는 완전 관리형 컨테이너(도커 이미지) 오케스트레이션 서비스

✔ 컨트롤 플레인, 노드 또는 추가 기능을 관리할 필요가 없음

✔ CI/CD 파이프라인을 통한 배포 자동화 가능

📌 Amazon EKS

✔ Kubernetes 컨트롤 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 없이 AWS에서 Kubernetes를 실행하는 데 사용할 수 있는 관리형 서비스

✔ Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 시스템

✔ 고가용성 보장을 위해 여러 AWS 가용영역에서 Kubernetes 컨트롤 플레인을 실행하고 확장

✔ 로드를 기반으로 컨트롤 플레인 인스턴스를 자동 확장하고, 비정상 컨트롤 플레인 인스턴스를 감지 및 교체하며 자동화된 버전 업데이트 및 패치

✔ Kubernetes 소프트웨어의 최신 버전을 실행하므로 Kubernetes 커뮤니티의 기존 플러그인 및 도구를 사용할 수 있음

✔ 온프레미스, 퍼블릭 클라우드에서 실행되는 모든 표준 Kubernetes 환경에서 실행되는 애플리케이션과 완벽하게 호환

📌 Amazon DynamoDB

✔ 완벽한 확장성과 함께 빠르고 예측 가능한 성능을 제공하는 완전 관리형 NoSQL 데이터베이스 서비스

✔ NoSQL은 Key-Value쌍 또는 문서 스토리지와 같은 비정형 데이터 관리를 위한 모델(정형 데이터 처리 및 관리도 가능)

✔ 하드웨어 프로비저닝, 설정 및 구성, 복제, 소프트웨어 패치 또는 클러스터 확장에 대한 분산 데이터베이스 운영 및 확장의 관리가 필요 없음

✔ 유휴 데이터에 대한 암호화를 제공하여 민감한 데이터 보호와 관련된 운영 부담과 복잡성 제거

✔ 온디맨드 백업 기능 및 테이블에 대한 특정 시점 복구 활성화 기능 제공

📌 AWS Certificate Manager

✔ AWS 웹 사이트와 애플리케이션을 보호하는 공개 및 비공개 SSL/TLS X.509 인증서와 키를 생성, 저장 및 갱신

✔ ACM에서 직접 발급하거나 타사 인증서를 ACM 관리 시스템으로 가져와 AWS 서비스에 대한 인증서를 제공할 수 있음

✔ ACM 인증서는 단일 도메인 이름, 여러 특정 도메인 이름, 와일드카드 도메인 또는 이들의 조합을 보호

✔ 내부 PKI를 사용하여 어디에서나 사용할 수 있도록 AWS Private CA에서 서명한 ACM 인증서를 내보낼 수도 있음


📌 ELK 스택

https://aws.amazon.com/ko/what-is/elk-stack/

ELK 스택은 Elasticsearch, Logstash, Kibana의 세 가지 인기 있는 프로젝트로 구성된 스택을 의미하는 약어입니다. Elasticsearch라고도 불리는 ELK 스택은 사용자에게 모든 시스템과 애플리케이션에서 로그를 집계하고 이를 분석하며 애플리케이션과 인프라 모니터링 시각화를 생성하고, 빠르게 문제를 해결하며 보안·분석할 수 있는 능력을 제공합니다.

E = Elasticsearch

Elasticsearch는 Apache Lucene에 구축되어 배포된 검색 및 분석 엔진입니다. 다양한 언어를 지원하고 고성능에 (스키마가 없는) JSON 문서로 Elasticsearch는 다양한 로그 분석과 검색 사용 사례에 최고의 선택이 되었습니다.

2021년 1월 21일, Elastic NV는 소프트웨어 라이선스 전략을 변경하는 바, 퍼미시브 라이선스인 Apache License Version 2.0(ALv2) 라이선스 하에서 Elasticsearch 및 Kibana의 새로운 버전을 더 이상 릴리스하지 않는다고 발표했습니다. 그 대신 새로운 버전의 소프트웨어는 Elastic License 또는 SSPL 아래에서 소스 코드를 사용할 수 있는 Elastic 라이선스 하에서 제공됩니다. 해당 라이선스는 오픈 소스가 아니며 사용자에게 동일한 자유를 제공하지 않습니다. 안전하고 고품질에 완전한 오픈 소스 검색과 분석 제품군을 이용하려면 커뮤니티 주도적이며 오픈 소스 Elasticsearch 및 Kibana의 ALv2 라이선스 갈래인 OpenSearch 프로젝트를 활용하면 됩니다.

L = Logstash

Logstash는 다양한 소스로부터 데이터를 수집하고 곧바로 전환하여 원하는 대상에 전송할 수 있도록 하는 경량의 오픈 소스 서버측 데이터 처리 파이프라인입니다. 오픈소스 분석 및 검색 엔진인 Elasticsearch의 데이터 파이프라인으로 자주 사용됩니다. Elasticsearch와의 긴밀한 통합, 강력한 로그 처리 능력, 사전 구축된 200개 이상의 오픈 소스 플러그인을 통해 데이터 인덱싱을 돕는 Logstash는 Elasticsearch에 데이터를 로드할 때 가장 많이 사용됩니다.

비정형 데이터를 쉽게 로드

Logstash를 사용하면 시스템 로그, 웹 사이트 로그, 애플리케이션 서버 로그 등 다양한 데이터 소스에서 비정형 데이터를 쉽게 수집할 수 있습니다.

사전 구축된 필터

Logstash가 제공하는 사전 구축 필터로, 사용자는 일반 데이터 유형을 쉽게 전환하고 이를 Elasticsearch에 인덱싱하며 사용자 지정 데이터 전환 파이프라인을 구축하지 않고도 쿼리를 시작할 수 있습니다.

유연한 플러그인 아키텍처

GitHub에 이미 사용할 수 있는 200개 이상의 플러그인이 있어, 데이터 파이프라인을 사용자 지정하는 데 필요한 플러그인이 이미 구축되어 있을 수 있습니다. 하지만 자신의 요구 사항에 맞는 것이 없는 경우 직접 쉽게 만들 수 있습니다.

K = Kibana

Kibana는 로그와 시계열 분석, 애플리케이션 모니터링, 운영 인텔리전스 사용 사례에 사용되는 데이터 시각화 및 탐색 도구입니다. 히스토그램, 선형 그래프, 원형 차트, 열 지도, 내장 지리 공간적 지원과 같은 강력하고 사용하기 쉬운 기능을 제공합니다. 또한 유명 분석 및 검색 엔진인 Elasticsearch와 긴밀하게 통합되어 Kibana는 Elasticsearch에 저장된 데이터를 시각화할 때 기본 선택 사항이 되었습니다.

2021년 1월 21일, Elastic NV는 소프트웨어 라이선스 전략을 변경하는 바, 퍼미시브 라이선스인 Apache License Version 2.0(ALv2) 라이선스 하에서 Elasticsearch 및 Kibana의 새로운 버전을 더 이상 릴리스하지 않는다고 발표했습니다. 그 대신 새로운 버전의 소프트웨어는 Elastic License 또는 SSPL 아래에서 소스 코드를 사용할 수 있는 Elastic 라이선스 하에서 제공됩니다. 해당 라이선스는 오픈 소스가 아니며 사용자에게 동일한 자유를 제공하지 않습니다. 오픈 소스 커뮤니티와 고객이 계속해서 안전하고 완전한 고품질의 오픈 소스 검색 및 분석 제품군을 사용할 수 있도록 AWS는 커뮤니티 주도적이며 오픈 소스 Elasticsearch 및 Kibana의 ALv2 라이선스 갈래인 OpenSearch 프로젝트를 도입했습니다. OpenSearch 제품군은 검색 엔진인 OpenSearch와 시각화 및 사용자 인터페이스인 OpenSearch 대시보드로 구성됩니다.

Kibana는 온프레미스, Amazon Elastic Compute Cloud(Amazon EC2) 또는 Amazon OpenSearch Service의 Apache 2.0 라이선스 버전(최대 버전 7.10.2)에서 실행할 수 있습니다. OpenSearch 대시보드는 Kibana의 오픈 소스 대안으로 이 또한 자체 관리로 사용할 수 있습니다. 이는 Kibana의 마지막 오픈 소스 버전(7.10.2)에서 파생되었습니다. 여기에는 많은 발전이 포함되어 있으며 OpenSearch 프로젝트를 통해 잘 지원됩니다. 온프레미스 또는 Amazon EC2 배포 방식인 경우 사용자는 인프라를 프로비저닝하고 Kibana 또는 OpenSearch 대시보드 소프트웨어를 설치하여 인프라를 관리할 책임이 있습니다. OpenSearch Service를 통할 경우, Kibana 또는 OpenSearch 대시보드는 자동으로 도메인에 완전관리형 서비스로 배포되며, 클러스터를 관리하기 위한 모든 부담을 처리합니다.

대화형 차트

Kibana는 사용자가 대량의 로그 데이터를 대화형으로 탐색하는 데에 사용할 수 있는 이니셔티브 차트와 보고서를 제공합니다. 시간 창을 동적으로 드래그하고 특정 데이터 하위 집합을 확대하거나 축소하며 데이터에서 실천 가능한 인사이트를 추출하기 위해 보고서를 드릴다운할 수 있습니다.

매핑 지원

Kibana는 강력한 지리 공간적 기능이 포함되어 있어 사용자는 데이터의 지리적 정보를 제일 위에 두고 결과를 지도에 시각화하는 계층화 작업을 원활하게 수행할 수 있습니다.

사전 구축된 집계 및 필터

Kibana의 사전 구축된 집계 및 필터를 사용하면 몇 단계만으로 히스토그램, 상위 N개 쿼리, 추세와 같은 다양한 분석을 실행할 수 있습니다.

쉽게 액세스 가능한 대시보드

대시보드와 보고서를 쉽게 설정하고 다른 사람에게 공유할 수 있습니다. 확인하고 데이터를 탐색할 브라우저만 있으면 됩니다.

📌 엘라스틱 서치 설치

① 패키지 다운로드

https://www.elastic.co/kr/downloads/elasticsearch

② C:\ELK 디렉터리를 생성한 후 다운로드 받은 압축파일을 (한글이 포함되지 않은 디렉터리에) 압축해제

압축해제 확인

bin

서버를 시작하는데 필요한 모든 스크립트와 기타 유틸리티가 들어 있는 디렉터리

bin/elasticsearch.bat

엘라스틱 서치 서버를 시작하는 배치 파일

config

서버 구성 파일이 들어 있는 디렉터리 (대부분 기본 설정으로 실행 가능)

config/elasticsearch.yml

클러스터 정보, 각 노드의 정보, 데이터 파일을 저장할 경로 등 엘라스틱 서치의 핵심적인 설정을 포함

config/jvm.options

힙 사이즈나 GC(Garbage Collection) 옵션, 힘 덤프 등 JVM 설정을 포함

config/log4j2.properties

log4j2 로깅과 관련된 설정을 포함

plugins

플러그인 호스팅을 위한 디렉터리

modules

모듈 포함

logs

실행 중인 엘라스틱서치 인스턴스가 서버 및 가비지 수집 로그를 포함한 로깅 데이터를 생성하는 디렉터리

data

퍼시스턴트 저장소처럼 데이터가 기록되는 폴더

elasticsearch.yml

c:\Users\r2com> cd c:\ELK

c:\ELK> code .

문서 맨 마지막에 아래 코드 추가
→ 엘라스틱 서치에서 제공하는 보안 관련 기능 비활성화

xpack.security.enabled: false

③ 관리자 권한으로 엘라스틱 서치를 실행

C:\Windows\system32> cd c:\ELK\elasticsearch-8.13.3\bin

c:\ELK\elasticsearch-8.13.3\bin> elasticsearch.bat

④ 클러스터 동작 확인

브라우저로 http://localhost:9200 에 접속

CURL 명령으로 확인

c:\ELK> curl -XGET http://localhost:9200
{
  # 인스턴스 이름 (기본값은 컴퓨터 이름)
  "name" : "DESKTOP-304U2MR", 
  
  # 해당 노드가 가입한 클러스터 이름 (기본값은 elasticsearch)
  "cluster_name" : "elasticsearch", 
  
  "cluster_uuid" : "HWYQjL8rQQeYTQGdbEZQiQ",
  "version" : {
    "number" : "8.13.3",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "617f7b76c4ebcb5a7f1e70d409a99c437c896aea",
    "build_date" : "2024-04-29T22:05:16.051731935Z",
    "build_snapshot" : false,
    "lucene_version" : "9.10.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

⑤ 윈도우 서비스 등록, 실행, 중지

elasticsearch.bat 명령으로 실행한 것을 Ctrl + C 입력으로 종료

Ctrl + C
[2024-05-02T17:02:57,149][INFO ][o.e.x.w.WatcherLifeCycleService] [DESKTOP-304U2MR] watcher has stopped and shutdown
[2024-05-02T17:02:57,420][INFO ][o.e.n.Node               ] [DESKTOP-304U2MR] stopped
[2024-05-02T17:02:57,421][INFO ][o.e.n.Node               ] [DESKTOP-304U2MR] closing ...
[2024-05-02T17:02:57,437][INFO ][o.e.n.Node               ] [DESKTOP-304U2MR] closed

일괄 작업을 끝내시겠습니까 (Y/N)? y

서비스 생성

c:\ELK\elasticsearch-8.13.3\bin> elasticsearch-service.bat install
Installing service : elasticsearch-service-x64
Using ES_JAVA_HOME : c:\ELK\elasticsearch-8.13.3\jdk
[2024-05-02 17:04:01] [info]  ( prunsrv.c:2002) [13888] Apache Commons Daemon procrun (1.3.1.0 64-bit) started.
[2024-05-02 17:04:01] [debug] ( prunsrv.c:772 ) [13888] Installing service...
[2024-05-02 17:04:01] [info]  ( prunsrv.c:829 ) [13888] Installing service 'elasticsearch-service-x64' name 'Elasticsearch 8.13.2 (elasticsearch-service-x64)'.
[2024-05-02 17:04:01] [debug] ( prunsrv.c:857 ) [13888] Setting service description 'Elasticsearch 8.13.2 Windows Service - https://elastic.co'.
[2024-05-02 17:04:01] [debug] ( prunsrv.c:862 ) [13888] Setting service user 'LocalSystem'.
[2024-05-02 17:04:01] [info]  ( prunsrv.c:879 ) [13888] Service 'elasticsearch-service-x64' installed.
[2024-05-02 17:04:01] [info]  ( prunsrv.c:2086) [13888] Apache Commons Daemon procrun finished.
The service 'elasticsearch-service-x64' has been installed

서비스 시작

c:\ELK\elasticsearch-8.13.3\bin> elasticsearch-service.bat start
[2024-05-02 17:04:37] [info]  ( prunsrv.c:2002) [ 1552] Apache Commons Daemon procrun (1.3.1.0 64-bit) started.
[2024-05-02 17:04:37] [info]  ( prunsrv.c:982 ) [ 1552] Starting service 'elasticsearch-service-x64'...
[2024-05-02 17:04:40] [debug] ( service.c:573 ) [ 1552] apxServiceControl(): Sleeping 1000 milliseconds
[2024-05-02 17:04:41] [debug] ( service.c:577 ) [ 1552] apxServiceControl(): QueryServiceStatus OK
[2024-05-02 17:04:41] [info]  ( prunsrv.c:1000) [ 1552] Started service 'elasticsearch-service-x64'.
[2024-05-02 17:04:41] [info]  ( prunsrv.c:1011) [ 1552] Finished starting service 'elasticsearch-service-x64', returning 1.
[2024-05-02 17:04:41] [info]  ( prunsrv.c:2086) [ 1552] Apache Commons Daemon procrun finished.
The service 'elasticsearch-service-x64' has been started

# 엘라스틱 서치가 백그라운드로 실행되므로 다른 작업이 가능
c:\ELK\elasticsearch-8.13.3\bin> curl -XGET http://localhost:9200 	

{
  "name" : "DESKTOP-304U2MR",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "HWYQjL8rQQeYTQGdbEZQiQ",
  "version" : {
    "number" : "8.13.3",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "617f7b76c4ebcb5a7f1e70d409a99c437c896aea",
    "build_date" : "2024-04-29T22:05:16.051731935Z",
    "build_snapshot" : false,
    "lucene_version" : "9.10.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

서비스 중지

c:\ELK\elasticsearch-8.13.3\bin> elasticsearch-service.bat stop
[2024-05-02 17:09:09] [info]  ( prunsrv.c:2002) [ 6280] Apache Commons Daemon procrun (1.3.1.0 64-bit) started.
[2024-05-02 17:09:09] [info]  ( prunsrv.c:932 ) [ 6280] Stopping service 'elasticsearch-service-x64'...
[2024-05-02 17:09:12] [debug] ( service.c:573 ) [ 6280] apxServiceControl(): Sleeping 1000 milliseconds
[2024-05-02 17:09:13] [debug] ( service.c:577 ) [ 6280] apxServiceControl(): QueryServiceStatus OK
[2024-05-02 17:09:13] [info]  ( prunsrv.c:963 ) [ 6280] Service 'elasticsearch-service-x64' stopped.
[2024-05-02 17:09:13] [info]  ( prunsrv.c:973 ) [ 6280] Stop service finished.
[2024-05-02 17:09:13] [info]  ( prunsrv.c:2086) [ 6280] Apache Commons Daemon procrun finished.
The service 'elasticsearch-service-x64' has been stopped

서비스 콘솔에서 서비스 시작, 중지, 다시 시작 등이 가능하고, 윈도우 실행 시 자동으로 실행되도록 설정도 가능

📌 키바나 설치

① 패키지 다운로드

https://www.elastic.co/kr/downloads/kibana

② 다운로드 받은 패키지를 C:\ELK 아래에 압축 해제

③ 키바나 설정 (config/kibana.yml)

server.port

키바나 백엔드 서버 포트

server.host

키바나 서버의 호스트로 외부에서 접근할 수 있게 하려면 서버의 IP 주소나 DNS 이름으로 지정

server.publicBaseUrl

사용자가 외부에서 어떤 URL로 키바나에 접근하는지를 지정
"/"로 끝나면 안 됨

elasticsearch.hosts

엘라스틱 서치 쿼리를 전달할 엘라스틱 서치의 호스트 URL 목록을 지정

④ 키바나 실행 및 확인

엘라스틱 서치가 실행된 상태에서 kibana.bat를 실행

0개의 댓글