applicationName 및 subsystemName 메타데이터 필드에 대한 사용자 지정 값을 설정하도록 상담원 구성하기
로깅 에이전트가 IBM Cloud Logs 서비스로 로그를 전송하도록 구성할 수 있습니다.
전송하는 로그에는 applicationName 및 subsystemName 메타데이터 필드에 대한 값이 포함되어야 합니다.
기본적으로 로깅 에이전트를 구성하면 상담원이 이러한 필드에 대한 기본값을 설정합니다. 기본값을 대체할 사용자 지정 값을 직접 구성할 수 있습니다. 기본값에 대한 자세한 내용은 메타데이터 필드 를 참조하세요.
IBM Cloud Logs에서 applicationName 및 subsystemName 메타데이터 필드를 사용하여 다음 기능 중 하나를 구성할 수 있습니다:
- TCO 정책
- 구문 분석 규칙
- 데이터 사용량 보고서
- 경보
- 보기
- 대시보드
- 이벤트에서 메트릭으로
- 로그 집계
IBM Cloud Logs에 대한 자세한 내용은 IBM Cloud Logs 문서 에서 확인할 수 있습니다.
사용자 지정 값을 설정하도록 상담원 구성하기
API 옵션을 지정하여 applicationName 및 subsystemName 메타데이터 필드에 대한 사용자 지정 값을 사용하여 로깅 에이전트를 구성할 수 있습니다.
-
-a을 사용하여 사용하려는applicationName를 지정합니다.기본적으로
applicationName은 Red Hat OpenShift on IBM Cloud 또는 IBM Cloud Kubernetes Service 클러스터의 네임스페이스 이름kubernetes.namespace_name으로 기본 설정되어 있습니다.환경의 변수를 사용하여 사용자 지정 값을 설정할 수도 있습니다(예:
'${POD_NAMESPACE}'). -
-s을 사용하여 사용하려는susbsystemName를 지정합니다.기본적으로
subsystemName은 Red Hat OpenShift on IBM Cloud 또는 IBM Cloud Kubernetes Service 클러스터에서 컨테이너 이름kubernetes.container_name으로 기본값이 지정되어 있습니다.환경의 변수를 사용할 수도 있습니다(예:
'${POD_NAME}').
이러한 메타데이터 필드를 설정할 때 다음과 같은 옵션을 사용할 수 있습니다:
- 값을 고정 문자열로 설정할 수 있습니다. 예를 들어
-s 'production'을 사용할 수 있습니다. - 환경의 변수를 사용할 수 있습니다(예:
-a '${POD_NAMESPACE}'). - 고정 문자열을 환경의 변수와 결합할 수 있습니다(예:
-a 'mycluster:${POD_NAME}').
applicatioName, subsystemName 또는 둘 다 설정할 수 있습니다. 값을 설정하지 않으면 기본값이 적용됩니다. applicationName 및 subsystemName 메타데이터 필드에 설정된 기본값에 대한 자세한 내용은 메타데이터를 참조하세요.
예시: 동적 값 구성
applicationName 및 subsystemName 메타데이터 필드에 대한 사용자 정의 동적 값으로 로깅 에이전트를 구성하려면 Kubernetes 클러스터에서 다음과 같이 에이전트를 배포할 수 있습니다:
curl -sSL https://ibm.biz/logs-router-setup | bash -s -- -v 1.1.1 -m IAMAPIKey -k xxxx -t Kubernetes -r eu-es -p 3443 -s '${POD_NAME}' -a '${POD_NAMESPACE}'
예시: 고정 값과 동적 값을 결합한 값 구성하기
로깅 에이전트 메타데이터 필드에 대한 사용자 정의 값으로 applicationName 및 subsystemName 를 구성하려면 Kubernetes 클러스터에서 다음과 같이 에이전트를 배포할 수 있습니다:
curl -sSL https://ibm.biz/logs-router-setup | bash -s -- -v 1.1.1 -m IAMAPIKey -k xxxx -t Kubernetes -r eu-es -p 3443 -s '${POD_NAME}' -a 'mycluster-dallas:${POD_NAMESPACE}'
이 예에서는 클러스터의 이름이 문자열로 추가됩니다.
예제: 고정 값 구성
applicationName 및 subsystemName 메타데이터 필드에 대한 사용자 정의 고정 값으로 로깅 에이전트를 구성하려면 Kubernetes 클러스터에서 다음과 같이 에이전트를 배포할 수 있습니다:
curl -sSL https://ibm.biz/logs-router-setup | bash -s -- -v 1.1.1 -m IAMAPIKey -k xxxx -t Kubernetes -r eu-es -p 3443 -s 'mysubsystem' -a 'myapp'
로그 줄에 따라 사용자 지정 값을 설정하도록 상담원 구성하기
로그 행에 따라 애플리케이션 및 하위 시스템 이름에 대한 값을 동적으로 추가할 수 있습니다.
다음 예는 JSON 형식의 메시지에 대한 사용자 정의 애플리케이션 이름을 추가하는 Kubernetes 클러스터에 대한 에이전트를 구성하는 방법을 보여 줍니다:
-
로그 행에 applicationName을 추가합니다.
예를 들어 로그 줄은 다음과 같습니다:
{"level":"info", "msg":"Test message", "applicationName":"my-application"} -
logger-agent-iks.yaml파일에 JSON PARSER 플러그인을 추가하여 stingify JSON을 JSON 객체로 변환합니다. 자세한 내용은 JSON를 참조하세요.[PARSER] # Converts the original log source from a JSON map string to the internal binary representation. Name json Format json # Time_Key: Set the time in your log entry to the log record time included with the log. If not set, Fluenti Bit uses its own time. Time_Key time Time_Format %d/%b/%Y:%H:%M:%S %z # Time_Keep: To keep all fields in the original log record Time_Keep On -
logger-agent-iks.yaml파일에 PARSER 플러그인을 추가하여 로그에서 필드를 추출합니다. 자세한 내용은 파서를 참조하세요.기본적으로 구문 분석기 플러그인은 구문 분석된 필드만 출력에 유지합니다.
[FILTER] # Name: Specify the name of the parser Name parser # Match: A pattern that is used to match against the tags that are defined on incoming records. Match * # Key_Name: Specify the field name in the log to be parsed. Key_Name message # Parser: Specify the parser name to interpret the field. Parser json # Reserve_Data: Set to keep all the fields Reserve_Data On # preserve_key: Set to keep the original key field. Preserve_Key On -
Nest 필터 플러그인을 사용하여 애플리케이션 이름을 추출합니다
중첩 필터 플러그인을 사용하면 중첩된 데이터에 대해 또는 중첩된 데이터로 작업할 수 있습니다. 작동 모드는 다음과 같습니다:
nest레코드 집합을 가져와 맵에 넣는 경우와lift키별로 맵을 가져와 해당 레코드를 끌어올리는 경우입니다. 자세한 내용은 네스트를 참조하세요.applicationName는 최상위 레벨에 있어야 하므로
lift작업을 사용해야 합니다.[FILTER] 이름 둥지 일치 * 리프트 작업 Nested_under 메시지 와일드카드 applicationName
이렇게 하면 위의 로그 행 예제에서 "applicationName"은 해당 특정 행에 대해 "my-application"이 됩니다.