OpenShift 클러스터에 로깅 에이전트 v1.6.x 배포하기
Helm 차트를 사용하여 로깅 에이전트 v1.6.x 를 배포하여 OpenShift 클러스터에서 IBM Cloud Logs 인스턴스로 인프라 및 애플리케이션 로그를 수집하고 라우팅할 수 있습니다.
테라폼 IBM 모듈(TIM)을 사용하여 다음을 수행할 수도 있습니다. 로깅 에이전트 을 사용하여 지원되는 OpenShift 클러스터에 로그 에이전트를 배포하고 구성할 수도 있습니다. 이 모듈은 코드형 인프라( IaC ) 자동화를 사용하여 Helm-기반 배포 및 주요 구성 설정을 자동화합니다.
OpenShift 클러스터에 에이전트를 배포하려면 다음 단계를 완료하십시오
시작하기 전에
-
네임스페이스 생성 및 에이전트 배포 권한이 있는 Red Hat OpenShift on IBM Cloud (
OpenShift) 클러스터에 액세스할 수 있는지 확인하십시오. -
다음 CLI를 설치하십시오.
-
IBM Cloud CLI를 사용하여 IBM Cloud 에 로그인하고 API 키 생성 등 IBM Cloud 서비스를 관리할 수 있습니다.
-
Openshift CLI를 사용하여 명령줄에서 클러스터를 관리합니다. 자세히 알아보십시오.
-
버전 3의 최신 릴리스 Helm CLI
-
-
로깅 에이전트 에 대해 읽어 보세요.
-
사용 가능한 에이전트 버전을 확인하십시오. 자세한 정보는 사용 가능한 에이전트 버전 확인하기를 참고하세요. Helm 차트의 버전은 에이전트의 버전과 일치한다는 점에 유의하십시오. 예를 들어, 에이전트의 버전 1.3.0 을 사용하는 경우, 해당 버전과 함께 1.3.0 버전의 Helm 차트가 제공됩니다.
1단계. 에이전트에 대한 인증 방법 정의
에이전트의 신원 유형과 인증 방법을 선택합니다. 그런 다음, 신뢰할 수 있는 프로필 또는 API 키를 만듭니다. IBM Cloud Logs 에 로그를 전송하는 데 필요한 역할은 Sender 입니다.
IBM® Cloud Logs 서비스에서 에이전트가 인증에 사용하는 ID로 서비스 ID 또는 신뢰할 수 있는 프로필을 사용할 수 있습니다. 더 자세한 정보는 수집을 위한 IAM 권한 부여를 참고하세요.
다음 옵션 중 하나를 선택하십시오.
옵션 1: 신뢰할 수 있는 프로필을 이용한 인증
신뢰할 수 있는 프로파일을 작성하십시오. 자세한 내용은 수집을 위한 신뢰 프로필 생성을 참고하세요.
옵션 2: 서비스 ID를 이용한 인증 API 키
서비스 ID 인증을 위한 API 키를 생성합니다. 자세한 내용은 수집을 위한 API 키 생성을 참고하세요.
2단계. Helm 의 차트 값 파일을 구성하는 방법 로깅 에이전트
다음 단계를 완료하십시오.
-
다음 내용으로
logs-values.yaml이라는 파일을 만듭니다:이 파일에는 배포에 특정한 구성이 포함되어 있습니다.
metadata: name: "logs-agent" image: version: "1.6.1" # required clusterName: "ENTER_CLUSTER_NAME" # Enter the name of your cluster. This information is used to improve the metadata and help with your filtering. env: # ingestionHost is a required field. For example: # ingestionHost: "<logs instance>.ingress.us-east.logs.cloud.ibm.com" ingestionHost: "" # required # If you are using private CSE proxy, then use port number "3443" # If you are using private VPE Gateway, then use port number "443" # If you are using the public endpoint, then use port number "443" ingestionPort: "" # required iamMode: "TrustedProfile" # trustedProfileID - trusted profile id - required for iam trusted profile mode trustedProfileID: "Profile-yyyyyyyy-xxxx-xxxx-yyyy-zzzzzzzzzzzz" # required if iamMode is set to TrustedProfile scc: # true here enables creation of Security Context Constraints in Openshift create: true -
Yaml 파일의 필드를 사용자 환경에 맞는 값으로 업데이트하십시오.
Helm 차트 필수 매개 변수 필드 이름 설명 image.version배포할 에이전트 버전 1단계 참조 clusterName클러스터 이름 - 모든 로그 줄에 태그 kubernetes.cluster_name를 도입합니다env.ingestionHostIBM Cloud Logs 인스턴스가 로그를 수신하기 위한 공용 또는 사설 진입 엔드포인트 env.ingestionPort접근 엔드포인트 포트
공용 접근 엔드포인트 =443
개인 접근 엔드포인트(VPE) =443
개인 접근 엔드포인트(CSE) =3443env.iamModeTrustedProfile또는 1단계에서 선택한 인증 방법에 따라IAMAPIKeyenv.trustedProfileIDiamMode가TrustedProfile인 경우, 신뢰 프로필 ID를 입력하고, 그렇지 않은 경우 입력하지 않아도 됩니다(예:Profile-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).env.iamEnvironment올바른 IAM 인증 엔드포인트를 지시합니다. 유효한 값은 Production,PrivateProduction,Custom입니다. 생략하면 기본값은Production입니다.env.iamHostiamEnvironment가Custom인 경우, IAM 호스트를 제공하십시오(예:private.eu-de.iam.cloud.ibm.com). 그렇지 않은 경우에는 필요하지 않습니다.scc.createtrue로 설정하여 Openshift에서 보안 제약 조건을 생성합니다
3단계. Helm 차트 설치
iamMode 을 IAMAPIKey 으로 사용하는 경우 Kubernetes 시크릿에 logs-agent 이라는 키 이름과 IAM_API_KEY 이라는 아피키가 있어야 합니다. 헬름 설치를 실행할 때 --set secret.iamAPIKey=<your iamAPIKey> 옵션을 포함하여 Helm 차트를 사용하여
비밀을 생성할 수 있습니다. 비밀번호를 수동으로 생성했거나 iamMode=TrustedProfile 를 사용하는 경우에는 이 옵션을 포함시키지 마십시오.
다음 단계를 완료하십시오.
-
클러스터에 로그인하십시오.
Red Hat OpenShift on IBM Cloud IBM Cloud Identity and Access Management (IAM)과 통합되어 있습니다. IAM에서는 IAM ID를 사용하여 사용자 및 서비스를 인증하고 액세스 역할 및 정책으로 조치를 승인할 수 있습니다. Red Hat OpenShift 콘솔을 통해 사용자로 인증하면 IAM ID를 사용하여 명령줄에 로그인하는 데 사용할 수 있는 Red Hat OpenShift 로그인 토큰을 생성합니다.
oc login명령에 사용할 IAM API 키 또는 서비스 ID를 작성하여 클러스터에 로그인을 자동화할 수 있습니다. 더 자세한 정보는 Red Hat OpenShift 클러스터에 액세스하기를 참고하세요.예를 들어, 서비스 ID를 사용하여 클러스터에 로그인하기의 단계를 완료하여 클러스터에 로그인합니다.
-
Helm 의 dry run을 수행하여 Helm 차트에 의해 생성될 자원을 확인합니다.
iamMode=TrustedProfile를 사용하는 경우, 전체 명령은 다음과 같습니다helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespaceiamMode=IAMAPIKey를 사용하는 경우, 전체 명령은 다음과 같습니다helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value> --hide-secret여기서,
<install-name>Helm 의 설치 이름입니다(logs-agent)<chart-version>헬름 차트의 버전입니다. Helm 차트 버전은 에이전트 이미지 버전과 일치해야 합니다. 더 자세한 정보는 Helm 차트 버전을 참고하세요.<PATH>logs-values.yaml파일이 있는 디렉토리 경로입니다.<APIKey-value>ServiceID 설정 과 관련된 IAM API 키입니다--hide-secret를 추가하면 명령 실행 후 출력 데이터에 API 키가 표시되지 않도록 할 수 있습니다.
헬름 차트의 내용을 로컬에서 확인하고 싶다면, 다음 명령어를 사용하여 헬름 차트를 컴퓨터에 다운로드할 수 있습니다:
helm pull oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version>. 다운로드한 tgz 파일에는 차트 내용이 포함되어 있습니다.예를 들어,
logs-values.yaml파일이 있는 디렉토리에서 다음 명령을 실행할 수 있습니다helm install logs-agent --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version 1.6.0 --values ./logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<secret> --hide-secret -
생성할 자원이 확인되면,
--dry-run옵션을 선택하지 않고, Helm 설치를 실행합니다iamMode=TrustedProfile를 사용하는 경우, 전체 명령은 다음과 같습니다helm install <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespaceiamMode=IAMAPIKey를 사용하는 경우, 전체 명령은 다음과 같습니다helm install <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value>여기서,
<install-name>Helm 의 설치 이름입니다(logs-agent)<chart-version>헬름 차트의 버전입니다. Helm 차트 버전은 에이전트 이미지 버전과 일치해야 합니다. 더 자세한 정보는 Helm 차트 버전을 참고하세요.<PATH>logs-values.yaml파일이 있는 디렉토리 경로입니다.<APIKey-value>ServiceID 설정 과 관련된 IAM API 키입니다
4단계. 에이전트가 성공적으로 배포되었는지 확인
에이전트가 배치되면 다음 리소스가 생성되었는지 확인하십시오
-
ibm-observe네임스페이스.클러스터의 네임스페이스를 나열하려면 다음 명령을 실행하십시오
oc get namespaceibm-observe네임스페이스를 검색하기 위해 다음 명령을 실행할 수도 있습니다oc get namespace | grep ibm-observe -
ibm-observe네임스페이스에 있는 구성 맵logs-agent.에이전트 구성 세부 사항을 보려면 다음 명령을 실행하십시오.
oc get configmap logs-agent -n ibm-observe다음 명령을 사용할 수도 있습니다:
oc describe configmaps logs-agent -n ibm-observe -
ibm-observe라는 이름의 네임스페이스에 있는 데몬셋logs-agent.데몬 세트를 보려면 다음 명령을 실행하세요:
oc get ds -n ibm-observe -
다음 명령을 사용하여 에이전트 포드 목록을 검색합니다
oc get pods -n ibm-observe -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES logs-agent-4lwvt 1/1 Running 0 2d5h 172.17.61.181 192.168.16.4 <none> <none> logs-agent-g7z87 1/1 Running 0 2d5h 172.17.0.48 192.168.32.4 <none> <none> logs-agent-nw56s 1/1 Running 0 2d5h 172.17.32.232 192.168.0.10 <none> <none>READY열은 모든 포드에 대한1/1를 보여주고,STATUS는Running입니다. 클러스터의 각 노드에 에이전트 포드가 준비되어 있는지 확인하십시오.클러스터에서 작업 가능한 인원 수를 확인하려면 다음 명령을 실행하십시오
oc get nodesNAME STATUS ROLES AGE VERSION 192.168.0.10 Ready master,worker 8d v1.20.0+558d959 192.168.32.4 Ready master,worker 8d v1.20.0+558d959 192.168.16.4 Ready master,worker 8d v1.20.0+558d959이 두 목록의 항목 수는 동일해야 하며, 노드 이름의 IP 주소와 포드 목록의
NODE열의 값을 일치시킬 수 있습니다.노드의 이름이 IP로 지정되어 있지 않은 경우,
-o wide옵션을 추가하고INTERNAL-IP열의 값을 비교할 수 있습니다.파드의 로그를 보려면 다음을 실행한다.
oc logs <POD_NAME>> -n ibm-observe
5단계. 로그가 대상 목적지로 전달되고 있는지 확인
다음 단계를 완료하십시오.
-
에이전트가 올바르게 설정되어 있으면 기본 대시보드 보기를 통해 로그를 볼 수 있습니다. 로깅 에이전트 태그는 클러스터 이름을 포함하는 쿠버네티스 객체로 로그 레코드를 기록합니다.
kubernetes.cluster_name:<CLUSTER_NAME>IBM Cloud Logs 인스턴스에서 쿼리
kubernetes.cluster_name:<YOUR_CLUSTER_NAME>를 실행하여 클러스터에서 생성된 로그를 검색할 수 있습니다.