[17.0.0.1 and later]

Docker에서 동적으로 Product Insights 활성화

Docker에서 실행 중인 IBM WebSphere Liberty 서버를 Bluemix® Product Insights에 등록하여 서버 등록, 사용량 및 기타 정보(활성 WebSphere Liberty 서버의 수, 각 서버의 호스트 위치, 각 서버의 제품 에디션 및 버전, 각 서버 사용 정도 등)를 보고할 수 있습니다.

시작하기 전에

IBM Cloud Product Insights의 경우, WebSphere Application Server Liberty 버전 17.0.0.1 이상이 필요합니다.

Liberty Docker 빌드에는 Docker 허브로부터 WebSphere Liberty Docker 이미지의 최신 버전 가져오기가 포함됩니다. Liberty Docker 허브 이미지에는 ILAN 라이센스, 즉, 제품의 무료, 무지원, 무보증 버전이 포함됩니다. 라이센스를 지원되는 제품으로 업데이트하려면 Docker 허브에서 프로덕션 이미지로 이미지 업그레이드를 참조하십시오.

IBM WebSphere Liberty 서버 인스턴스를 Product Insights에 연결하기 전에 IBM Cloud 계정이 있어야 하며 조직 및 영역 내에 해다 서비스를 작성해야 합니다. 시작하기 단계에 따라 계정을 설정하고 Product Insights 서비스를 할당하십시오. 지시사항에서 설명하는 대로 API hostAPI key를 기록해 두십시오.

Docker에 WebSphere Liberty 서버를 구성하려면 Linux 머신 또는 Docker가 설치된 가상 머신이 필요합니다.

참고: Kubernetes 환경에서 Liberty 구성을 수행하려면 동적으로 IBM Cloud Product Insights 추가를 수행하는 것과 유사한 방법이 필요합니다. productInsights.xmldigicert.jks 파일을 포함하는 Kubernetes 시크릿 또는 구성 맵을 작성한 다음 애플리케이션 배치 YAML 파일에서 마운트 지점을 지정하여 실행 중인 Docker 이미지에 해당 파일을 마운트할 수 있습니다.

이 태스크 정보

Liberty 집합체를 정의하고 Docker 컨테이너에서 Docker 이미지를 작성한 후에는 배치 도구를 사용하여 집합체 내의 Docker 호스트에서 이미지를 설치하십시오.

프로시저

  1. Docker 이미지를 빌드하십시오.
    1. Liberty 서버 구성에서 기본값을 대체하려면 기존 server.xml 파일의 이름을 바꾸십시오. 또는 새 server.xml 파일을 작성하고 구성할 수 있습니다. Product Insights의 경우, 동적으로 사용 가능하도록 설정되며 추가 Product Insights 구성이 필요하지 않습니다. 다음 서버 구성이 websphere-liberty:webProfile7 Docker 이미지에 포함되어 있습니다.
      <server>
          <featureManager>
             <feature>webProfile-7.0</feature>
          </featureManager>   <!-- To allow access to this server from a remote client host="*" has been added to the following element -->
      
         <httpEndpoint id="defaultHttpEndpoint"
                        host="*"
                        httpPort="9080"
                        httpsPort="9443" />
          <!-- Automatically expand WAR files and EAR files -->
          <applicationManager autoExpand="true"/>
      </server>
    2. 설치 Dockerfile을 작성하십시오. server.xml 파일과 동일한 디렉토리에 productInsights-1.0 Liberty 기능을 설치하는 Dockerfile을 작성하십시오.
      FROM websphere-liberty:webProfile7
      COPY server.xml /config
      RUN installUtility install --acceptLicense productInsights-1.0\
          && rm -rf /output/workarea /output/logs
      1단계에서 직접 server.xml 파일을 작성하지 않은 경우에는 다음 행을 제거하거나 주석 처리하십시오.
      COPY server.xml /config
    3. Docker 이미지를 빌드하십시오. docker build 명령을 실행하여 Docker 이미지를 빌드하십시오. Docker 이미지를 빌드하는 머신은 Liberty Docker 이미지 및 productInsights-1.0 Liberty 기능을 다운로드해야 하므로 인터넷에 대한 액세스가 필요합니다.
      docker build -t liberty-product-insights-example
  2. Docker 컨테이너에서 이미지를 실행하십시오.
    1. Docker 이미지의 인스턴스를 실행하십시오. Docker 이미지의 인스턴스를 실행하려면 Liberty 서버 컨테이너에서 호스트되는 애플리케이션의 이름을 사용하십시오. 다음은 이름 지정에 대한 우수 사례를 설명하는 예제입니다.
      docker run -d --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' liberty-product-insights-example
      참고: 실행 중인 서버 인스턴스에 대한 Product Insights에 보고되는 기본 호스트 이름은 컨테이너 이름이며 이는 Docker 이미지가 실행되거나 스케일이 변경될 때마다 다시 지정됩니다. 서버에 대한 메트릭을 일관성 있게 추적하려면 CONTAINER_HOST 환경 변수에 대한 값을 설정하여 기본 호스트 이름 값을 대체해야 합니다.
    2. Docker 이미지의 다중 인스턴스를 실행하십시오. 동일한 애플리케이션에 대해 Docker 이미지의 다중 인스턴스를 실행하려면 각 인스턴스에 대한 CONTAINER_HOST에 동일한 값을 사용하십시오. CONTAINER_HOST에 해당되는 등록 및 사용량 데이터가 Product Insights 서비스로 전송되면 서비스가 단일 인스턴스에서 전송된 것처럼 정보를 결합하여 사용자가 애플리케이션과 연관된 모든 사용량을 볼 수 있습니다.
      참고: 선택적으로 서버 이름을 대체하려면 CONTAINER_NAME 환경 변수를 설정하십시오. 이 변수가 설정되지 않으면 모든 이미지가 Product Insights 서비스에 서버 이름으로 defaultServer를 보고합니다.
      docker run -d --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' -e CONTAINER_NAME=' myServerName' liberty-product-insights-example
  3. IBM Cloud Product Insights 구성을 동적으로 추가하십시오.
    1. digicert.jks 인증 파일의 IBM Cloud 사본을 다운로드하여 /opt/docker/libertyConfig 디렉토리 내에 배치하십시오.
    2. 동일한 디렉토리에서 productInsights.xml이라는 구성 파일을 작성하십시오. <apiHost>를 사용자의 서비스에 대한 API 호스트로 대체하고 <apiKey>를 사용자의 서비스에 대한 API 키로 대체하십시오.
      <server>
          <featureManager>
             <feature>productInsights-1.0</feature>
          </featureManager>    <productInsights url="<apiHost>" apiKey="<apiKey>" sslRef="productInsightsSSL"
               groups="DockerImages"/>
          <keyStore id="productInsightsKeyStore" location="/config/digicert.jks" type="JKS"/>
          <ssl id="productInsightsSSL"
               keyStoreRef="productInsightsKeyStore"
               trustStoreRef="productInsightsKeyStore"
               sslProtocol="TLSv1.2"/>
      </server>
      참고: Docker 컨테이너를 실행하는 머신이 게이트웨이 또는 프록시 서버를 통해 Product Insights 서비스에 연결되는 경우에는 구성이 약간 다릅니다. 자세한 정보는 게이트웨이 또는 프록시 서버 사용을 참조하십시오.
  4. IBM Cloud Product Insights에 대한 등록을 확인하십시오.
    1. docker ps 명령을 실행하여 컨테이너 ID를 찾으십시오.
      docker ps
    2. Docker 컨테이너 파일 시스템과 상호작용할 수 있도록 Bash를 통해 STDIN을 Docker 컨테이너에 첨부하십시오.
      docker exec -it <containerId> bash
    3. Liberty 로그를 검사하여 서버가 Product Insights 서비스에 등록되었는지 확인하십시오. /logs 디렉토리에서 messages.log 파일을 열고 다음 메시지를 찾으십시오.
      CWWKR0400I: The server was registered with the IBM Cloud Product Insights service on the specified URL <apiHost>.
    4. 브라우저에서 IBM Cloud에 대한 Product Insights 서비스 대시보드로 이동하여 새로 등록된 서버를 보십시오.

결과

서버 등록 및 사용을 지원하기 위해 Docker에서 실행 중인 IBM WebSphere Liberty 서버가 IBM Cloud Product Insights에 등록되었습니다.


주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_dynamic_docker_product_insights.html