O Kf fornece vários tipos de registros. Este documento descreve esses registros e como acessá-los.
Registros de aplicativos
Todos os registros gravados na saída padrão stdout e erro padrão stderr são enviados para o Cloud Logging e armazenados com o nome de registro user-container.
Abra o Cloud Logging e execute esta consulta:
resource.type="k8s_container" log_name="projects/YOUR_PROJECT_ID/logs/user-container" resource.labels.project_id=YOUR_PROJECT_ID resource.labels.location=GCP_COMPUTE_ZONE (e.g. us-central1-a) resource.labels.cluster_name=YOUR_CLUSTER_NAME resource.labels.namespace_name=YOUR_KF_SPACE_NAME resource.labels.pod_name:YOUR_KF_APP_NAME
Você verá todos os registros de aplicativo gravados no padrão stdout e no erro padrão stderr.
Como acessar registros de aplicativos
O Kf fornece registros de acesso usando a injeção de arquivo secundário do Istio. Os registros de acesso são armazenados com o nome server-accesslog-stackdriver.
Abra o Cloud Logging e execute esta consulta:
resource.type="k8s_container" log_name="projects/YOUR_PROJECT_ID/logs/server-accesslog-stackdriver" resource.labels.project_id=YOUR_PROJECT_ID resource.labels.location=GCP_COMPUTE_ZONE (e.g. us-central1-a) resource.labels.cluster_name=YOUR_CLUSTER_NAME resource.labels.namespace_name=YOUR_KF_SPACE_NAME resource.labels.pod_name:YOUR_KF_APP_NAME
Você verá os registros de acesso do aplicativo. Exemplo de registro de acesso:
{
"insertId": "166tsrsg273q5mf",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "http://test-app-38n6dgwh9kx7h-c72edc13nkcm.***. ***.nip.io/",
"requestSize": "738",
"status": 200,
"responseSize": "3353",
"remoteIp": "10.128.0.54:0",
"serverIp": "10.48.0.18:8080",
"latency": "0.000723777s",
"protocol": "http"
},
"resource": {
"type": "k8s_container",
"labels": {
"container_name": "user-container",
"project_id": ***,
"namespace_name": ***,
"pod_name": "test-app-85888b9796-bqg7b",
"location": "us-central1-a",
"cluster_name": ***
}
},
"timestamp": "2020-11-19T20:09:21.721815Z",
"severity": "INFO",
"labels": {
"source_canonical_service": "istio-ingressgateway",
"source_principal": "spiffe://***.svc.id.goog/ns/istio-system/sa/istio-ingressgateway-service-account",
"request_id": "0e3bac08-ab68-408f-9b14-0aec671845bf",
"source_app": "istio-ingressgateway",
"response_flag": "-",
"route_name": "default",
"upstream_cluster": "inbound|80|http-user-port|test-app.***.svc.cluster.local",
"destination_name": "test-app-85888b9796-bqg7b",
"destination_canonical_revision": "latest",
"destination_principal": "spiffe://***.svc.id.goog/ns/***/sa/sa-test-app",
"connection_id": "82261",
"destination_workload": "test-app",
"destination_namespace": ***,
"destination_canonical_service": "test-app",
"upstream_host": "127.0.0.1:8080",
"log_sampled": "false",
"mesh_uid": "proj-228179605852",
"source_namespace": "istio-system",
"requested_server_name": "outbound_.80_._.test-app.***.svc.cluster.local",
"source_canonical_revision": "asm-173-6",
"x-envoy-original-dst-host": "",
"destination_service_host": "test-app.***.svc.cluster.local",
"source_name": "istio-ingressgateway-5469f77856-4n2pw",
"source_workload": "istio-ingressgateway",
"x-envoy-original-path": "",
"service_authentication_policy": "MUTUAL_TLS",
"protocol": "http"
},
"logName": "projects/*/logs/server-accesslog-stackdriver",
"receiveTimestamp": "2020-11-19T20:09:24.627065813Z"
}
Registros de auditoria
Os registros de auditoria fornecem um registro cronológico das chamadas que foram feitas ao servidor da API Kubernetes. As entradas de registro de auditoria do Kubernetes são úteis para investigar solicitações de API suspeitas, coletar estatísticas ou criar alertas de monitoramento para chamadas de API indesejadas.
Abra o Cloud Logging e execute esta consulta:
resource.type="k8s_container" log_name="projects/YOUR_PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.labels.project_id=YOUR_PROJECT_ID resource.labels.location=GCP_COMPUTE_ZONE (e.g. us-central1-a) resource.labels.cluster_name=YOUR_CLUSTER_NAME protoPayload.request.metadata.name=YOUR_APP_NAME protoPayload.methodName:"deployments."
Um trace das chamadas feitas ao servidor da API Kubernetes será exibido.
Controle de acesso do Logging
Siga estas instruções para permitir que desenvolvedores e outros membros da equipe acessem os registros. O papel roles/logging.viewer dá acesso somente leitura aos registros.
Roteador de registros
Também é possível usar o roteador de registros para rotear os registros para os destinos aceitos.