모니터링 (MON)

Google Distributed Cloud (GDC) 공기 간격의 모니터링 (MON) 감사 로그를 사용하면 대시보드 및 알림 구성 변경사항과 함께 PromQL 쿼리 실행을 추적할 수 있습니다. 모니터링 가능성 감사 로거와 Kubernetes 감사 로그는 이러한 데이터 영역 및 컨트롤 플레인 작업의 메타데이터 필드와 JSON 페이로드를 기록합니다.

감사 로그 소스
감사 대상 작업

모니터링 인스턴스의 사용자 인터페이스를 사용하여 PromQL 쿼리 실행

감사 로그 소스

프록시 서버

로그 유형

데이터 영역

감사 정보가 포함된 로그 항목의 필드
감사 메타데이터 감사 필드 이름 값
사용자 또는 서비스 ID user

예를 들면 다음과 같습니다.

"user":{
  "identity":"fop-cluster-admin@example.com",
  "issuer":"https://ais-core.org-1.zone1.google.gdch.test"
}

대상

(API를 호출하는 필드 및 값)

resource

예를 들면 다음과 같습니다.

"resource": "/infra-obs/grafana/api/ds/query"

작업

(수행된 작업이 포함된 필드)

action

가능한 값은 다음과 같습니다.

  • "action": "QUERY"
  • "action": "CREATE"
  • "action": "READ"
  • "action": "UPDATE"
  • "action": "DELETE"
  • "action": "CREATE/UPDATE"
이벤트 타임스탬프 time

예를 들면 다음과 같습니다.

"time": "2022-12-05T14:39:15.713354008Z"

조치 소스
  • sourceIPs
  • _gdch_service_name

예를 들면 다음과 같습니다.

"sourceIPs":[
  "10.253.166.214",
  "127.0.0.6"
],
"_gdch_service_name":"grafana"
결과 response

예를 들면 다음과 같습니다.

"response": "Successful: 200 OK"

기타 필드 description description 값에는 전체 쿼리가 포함됩니다. 자세한 내용은 로그 예시를 참조하세요.

예시 로그

{
  "resource":"/infra-obs/grafana/api/ds/query",
  "response":"Successful: 200 OK",
  "_gdch_service_tenant":"infra-obs",
  "sourceIPs":[
    "10.253.166.214",
    "127.0.0.6"
  ],
  "_gdch_namespace":"infra-obs-obs-system",
  "userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:107.0) Gecko/20100101 Firefox/107.0",
  "time":"2022-12-05T14:39:15.713354008Z",
  "auditID":"6bba5ff1-97d9-4bf8-92af-4f63049448cf",
  "numBytesSent":1821,
  "action":"QUERY",
  "_gdch_service_name":"grafana",
  "numBytesReceived":2827,
  "description":"{
      \"queries\":[{
      \"refId\":\"A\",
      \"expr\":\"{container=\\\"grafana-proxy-server\\\"},
      \"queryType\":\"range\",
      \"datasource\":{\"uid\":\"P982945308D3682D1\",\"type\":\"loki\"},
      \"key\":\"Q-c63373da-dec2-49c3-aa6c-4e5ba07ec8de-0\",
      \"editorMode\":\"builder\",
      \"maxLines\":1000,
      \"legendFormat\":\"\",
      \"datasourceId\":2,
      \"intervalMs\":1000,
      \"maxDataPoints\":2493
    }],
    \"range\":{
      \"from\":\"2022-12-05T13:39:15.461Z\",
      \"to\":\"2022-12-05T14:39:15.461Z\",
      \"raw\":{\"from\":\"now-1h\",\"to\":\"now\"}
    },
    \"from\":\"1670247555461\",
    \"to\":\"1670251155461\"
  }",
  "user":{
    "identity":"fop-cluster-admin@example.com",
    "issuer":"https://ais-core.org-1.zone1.google.gdch.test"
  },
  "_gdch_cluster":"org-1-admin",
  "_gdch_fluentbit_pod":"anthos-audit-logs-forwarder-whltm"
}

HTTP API를 사용하여 PromQL 쿼리 실행

감사 로그 소스

프록시 서버

로그 유형

데이터 영역

감사 정보가 포함된 로그 항목의 필드
감사 메타데이터 감사 필드 이름 값
사용자 또는 서비스 ID user

예를 들면 다음과 같습니다.

"user":{
  "issuer":"https://ais-core.org-1.zone1.google.gdch.test",
  "identity":"fop-cluster-admin@example.com"
}

대상

(API를 호출하는 필드 및 값)

resource

예를 들면 다음과 같습니다.

"resource":"/alertmanager/api/v2/alerts/groups?silenced=false&inhibited=false&active=true"

작업

(수행된 작업이 포함된 필드)

action

가능한 값은 다음과 같습니다.

  • "action": "QUERY"
  • "action": "CREATE"
  • "action": "READ"
  • "action": "UPDATE"
  • "action": "DELETE"
  • "action": "CREATE/UPDATE"
이벤트 타임스탬프 time

예를 들면 다음과 같습니다.

"time": "2022-12-05T18:20:50.616925009Z"

조치 소스
  • sourceIPs
  • _gdch_service_name

예를 들면 다음과 같습니다.

"sourceIPs":[
  "10.200.0.1",
  "127.0.0.6"
],
"_gdch_service_name":"cortex"
결과 response

예를 들면 다음과 같습니다.

"response": "Successful: 200 OK"

기타 필드 해당 없음 해당 없음

예시 로그

{
  "user":{
    "issuer":"https://ais-core.org-1.zone1.google.gdch.test",
    "identity":"fop-cluster-admin@example.com"
  },
  "_gdch_service_tenant":"infra-obs",
  "_gdch_service_name":"cortex",
  "resource":"/alertmanager/api/v2/alerts/groups?silenced=false&inhibited=false&active=true",
  "time":"2022-12-05T18:20:50.616925009Z",
  "action":"READ",
  "numBytesReceived":2376,
  "sourceIPs":[
    "10.200.0.1",
    "127.0.0.6"
  ],
  "_gdch_namespace":"obs-system",
  "userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:107.0) Gecko/20100101 Firefox/107.0",
  "numBytesSent":173,
  "auditID":"8451a7b3-77f9-4878-9308-641b55a83865",
  "response":"Successful: 200 OK",
  "_gdch_cluster":"org-1-admin",
  "_gdch_fluentbit_pod":"anthos-audit-logs-forwarder-2wqxp"
}

대시보드 CRUD 작업 수행

감사 로그 소스

Kubernetes 감사 로그

로그 유형

컨트롤 플레인

감사 정보가 포함된 로그 항목의 필드
감사 메타데이터 감사 필드 이름 값
사용자 또는 서비스 ID user

예를 들면 다음과 같습니다.

"user":{
  "extra":{
    "authentication.kubernetes.io/pod-name":["fleet-admin-controller-875778d98-dnkj2"],
    "authentication.kubernetes.io/pod-uid":["caa4df7a-ae04-458e-a616-1c6893ce6e46"]
  },
  "username":"system:serviceaccount:gpc-system:fleet-admin-controller",
  "groups":[
    "system:serviceaccounts",
    "system:serviceaccounts:gpc-system",
    "system:authenticated"
  ],
  "uid":"0b93d757-e3be-440a-b18a-4a2b524de156"
}

대상

(API를 호출하는 필드 및 값)

  • requestURI
  • objectRef

예를 들면 다음과 같습니다.

"requestURI":"/apis/observability.gdc.goog/v1/namespaces/alice-obs-system/dashboards",
"objectRef":{
  "apiVersion":"v1",
  "apiGroup":"observability.gdc.goog",
  "resource":"dashboards",
  "namespace":"alice-obs-system"
}

작업

(수행된 작업이 포함된 필드)

verb

가능한 값은 다음과 같습니다.

  • "verb": "create"
  • "verb": "delete"
  • "verb": "get"
  • "verb": "list"
  • "verb": "patch"
  • "verb": "update"
  • "verb": "watch"
이벤트 타임스탬프 requestReceivedTimestamp

예를 들면 다음과 같습니다.

"requestReceivedTimestamp": "2022-12-05T15:36:24.980257Z"

조치 소스
  • sourceIPs
  • _gdch_service_name

예를 들면 다음과 같습니다.

"sourceIPs":["10.253.166.100"],
"_gdch_service_name":"apiserver"
결과 responseStatus

예를 들면 다음과 같습니다.

"responseStatus":{
  "code":201,
  "metadata":{}
}
기타 필드 해당 없음 해당 없음

예시 로그

{
  "user":{
    "extra":{
      "authentication.kubernetes.io/pod-name":["fleet-admin-controller-875778d98-dnkj2"],
      "authentication.kubernetes.io/pod-uid":["caa4df7a-ae04-458e-a616-1c6893ce6e46"]
    },
    "username":"system:serviceaccount:gpc-system:fleet-admin-controller",
    "groups":[
      "system:serviceaccounts",
      "system:serviceaccounts:gpc-system",
      "system:authenticated"
    ],
    "uid":"0b93d757-e3be-440a-b18a-4a2b524de156"
  },
  "kind":"Event",
  "_gdch_fluentbit_pod":"anthos-audit-logs-forwarder-2wqxp",
  "apiVersion":"audit.k8s.io/v1",
  "_gdch_cluster":"org-1-admin",
  "level":"Metadata",
  "stageTimestamp":"2022-12-05T15:36:24.980257Z",
  "auditID":"a060d80a-4a47-4490-a859-5d3ccff36d3d",
  "requestReceivedTimestamp":"2022-12-05T15:36:24.980257Z",
  "userAgent":"fleet-admin-cm/v0.0.0 (linux/amd64) kubernetes/$Format",
  "stage":"RequestReceived",
  "requestURI":"/apis/observability.gdc.goog/v1/namespaces/alice-obs-system/dashboards",
  "objectRef":{
    "apiVersion":"v1",
    "apiGroup":"observability.gdc.goog",
    "resource":"dashboards",
    "namespace":"alice-obs-system"
  },
  "verb":"create",
  "sourceIPs":["10.253.166.100"],
  "_gdch_service_name":"apiserver"
}

알림 CRUD 작업 수행

감사 로그 소스

Kubernetes 감사 로그

로그 유형

컨트롤 플레인

감사 정보가 포함된 로그 항목의 필드
감사 메타데이터 감사 필드 이름 값
사용자 또는 서비스 ID user

예를 들면 다음과 같습니다.

"user":{
  "username":"kubernetes-admin",
  "groups":[
    "system:masters",
    "system:authenticated"
  ]
}

대상

(API를 호출하는 필드 및 값)

  • requestURI
  • objectRef

예를 들면 다음과 같습니다.

"requestURI":"/apis/monitoring.gdc.goog/v1/namespaces/alice/monitoringrules?fieldManager=kubectl-client-side-apply&fieldValidation=Strict",
"objectRef":{
  "apiVersion":"v1",
  "apiGroup":"monitoring.gdc.goog",
  "name":"obs-test-alert-sequel",
  "namespace":"alice",
  "resource":"monitoringrules"
}

작업

(수행된 작업이 포함된 필드)

verb

가능한 값은 다음과 같습니다.

  • "verb": "create"
  • "verb": "delete"
  • "verb": "get"
  • "verb": "list"
  • "verb": "patch"
  • "verb": "update"
  • "verb": "watch"
이벤트 타임스탬프 requestReceivedTimestamp

예를 들면 다음과 같습니다.

"requestReceivedTimestamp": "2022-12-05T16:28:50.619659Z"

조치 소스
  • sourceIPs
  • _gdch_service_name

예를 들면 다음과 같습니다.

"sourceIPs":["10.200.0.6"],
"_gdch_service_name":"apiserver"
결과 responseStatus

예를 들면 다음과 같습니다.

"responseStatus":{
  "code":201,
  "metadata":{}
}
기타 필드 해당 없음 해당 없음

예시 로그

{
  "level":"Metadata",
  "sourceIPs":[
    "10.200.0.6"
  ],
  "auditID":"753c3370-d3a5-4717-b84e-00fd56883fc4",
  "requestURI":"/apis/monitoring.gdc.goog/v1/namespaces/alice/monitoringrules?fieldManager=kubectl-client-side-apply&fieldValidation=Strict",
  "apiVersion":"audit.k8s.io/v1",
  "_gdch_fluentbit_pod":"anthos-audit-logs-forwarder-fgkth",
  "user":{
    "username":"kubernetes-admin",
    "groups":[
      "system:masters",
      "system:authenticated"
    ]
  },
  "userAgent":"kubectl/v1.25.4 (linux/amd64) kubernetes/872a965",
  "verb":"create",
  "stage":"ResponseComplete",
  "stageTimestamp":"2022-12-05T16:28:50.636050Z",
  "_gdch_cluster":"org-1-admin",
  "objectRef":{
    "apiVersion":"v1",
    "apiGroup":"monitoring.gdc.goog",
    "name":"obs-test-alert-sequel",
    "namespace":"alice",
    "resource":"monitoringrules"
  },
  "responseStatus":{
    "code":201,
    "metadata":{}
  },
  "kind":"Event",
  "annotations":{
    "authorization.k8s.io/reason":"",
    "authorization.k8s.io/decision":"allow"
  },
  "requestReceivedTimestamp":"2022-12-05T16:28:50.619659Z",
  "_gdch_service_name":"apiserver"
}