Opcionalmente, o Cloud IoT Core pode enviar registros de atividades do dispositivo para o Cloud Logging. Os registros de atividade do dispositivo incluem informações como conexões e erros do dispositivo. Esses eventos são chamados de eventos.
Falhas de autenticação não são registradas. Um dispositivo precisa ser autenticado no Cloud IoT Core para gerar registros de eventos.
Ciclo de vida dos eventos do dispositivos
Todos os dispositivos do Cloud IoT Core seguem um ciclo de vida semelhante aos seguintes eventos: Alguns desses eventos e os detalhes subjacentes são capturados nos registros do dispositivo.
- Como se conectar ao Cloud IoT Core.
- Enviar e receber eventos de telemetria e/ou estado.
- Desconexão ou perda da conexão com o Cloud IoT Core.
A forma como esses eventos ocorrem e são registrados é determinada se os dispositivos usam a ponte MQTT ou a ponte HTTP.
Como registrar a atividade do dispositivo
O Cloud IoT Core usa níveis de registro para determinar quais eventos de dispositivos são enviados para o Cloud Logging. É possível definir níveis de registro de dispositivo para um registro e todos os dispositivos dele ou para dispositivos individuais. O nível de registro definido para um registro se aplica a todos os dispositivos no registro. O nível de registro definido para um dispositivo individual modifica a configuração do registro dele.
A tabela a seguir descreve os níveis de registro do dispositivo disponíveis:
Nível de registro | Descrição |
---|---|
Nenhum | Nenhum registro de evento do dispositivo é coletado. |
ERROR |
Captura todos os eventos de ERROR , como publicações com falha. Consulte a lista de eventos de dispositivo registrados para ver uma lista completa de eventos ERROR . |
INFO (MQTT somente) |
Captura todos os eventos de INFO , como conexões e desconexões no MQTT. Também captura todos os eventos ERROR . Consulte a lista de eventos de dispositivo registrados para ver uma lista completa de eventos INFO . |
DEBUG |
Captura todos os eventos de DEBUG , como publicações, inscrições e sinais de funcionamento. Ele é útil para identificar problemas em dispositivos específicos. Também captura todos os eventos ERROR e INFO . Consulte a lista de eventos de dispositivo registrados para ver uma lista completa de eventos DEBUG . Consulte Registro de depuração de dispositivo para saber mais. |
Lista de eventos do dispositivo registrados
As tabelas a seguir mostram o seguinte:
- Quais eventos do dispositivo são registrados.
- O
eventType
do evento conforme registrado no Cloud Logging. - Se sucessos, falhas ou ambos são registrados para cada evento.
- O nível de registro que precisa ser definido em um registro ou dispositivo para registrar o evento.
Ponte MQTT
Evento do dispositivo | eventType |
Sucesso | Falha |
---|---|---|---|
Autenticar no servidor | N/A | Ações não registradas* | Ações não registradas |
Conectar ao servidor | CONNECT |
INFO |
ERROR |
Desconectar do servidor | DISCONNECT |
INFO |
Ações não registradas |
Anexar um dispositivo a um gateway | ATTACH_TO_GATEWAY |
INFO |
ERROR |
Remover um dispositivo de um gateway | DETACH_FROM_GATEWAY |
INFO |
ERROR |
Publicar um evento ou estado de telemetria no servidor | PUBLISH (no tópico MQTT /devices/{device-id}/events ou /devices/{device-id}/state ) |
DEBUG |
ERROR |
Receber uma atualização de configuração | PUBLISH (no /devices/{device-id}/config tópico MQTT) |
DEBUG |
ERROR |
Inscrever-se no tópico de configuração do Pub/Sub | SUBSCRIBE |
DEBUG |
ERROR |
Cancelar inscrição no tópico de configuração do Pub/Sub | UNSUBSCRIBE |
DEBUG |
ERROR |
PUBACK recebido do servidor | PUBACK |
DEBUG |
ERROR |
O ping do sinal de atividade foi enviado para o servidor | PINGREQ |
DEBUG |
ERROR |
Comando enviado de um servidor ao dispositivo | PUBLISH |
DEBUG |
ERROR |
Comando PUBACK enviado ao servidor | PUBACK |
DEBUG |
ERROR |
* Se a autenticação MQTT for bem-sucedida, o dispositivo se conectará ao Cloud IoT Core e um evento CONNECT
será registrado em vez de um evento "Autenticar com o servidor".
Ponte HTTP
Evento do dispositivo | methodName |
Sucesso | Falha |
---|---|---|---|
Autenticar no servidor | N/A | Ações não registradas** | Ações não registradas |
Publicar um evento de telemetria | google.cloud.iot.v1.PublishEvent |
DEBUG |
ERROR |
Definir estado do dispositivo | google.cloud.iot.v1.SetDeviceState |
DEBUG |
ERROR |
Receber uma atualização de configuração | google.cloud.iot.v1.GetDeviceConfig |
DEBUG |
ERROR |
**Se a autenticação HTTP for bem-sucedida, o dispositivo se conectará ao Cloud IoT Core e à mensagem de solicitação relevante (GET
se uma configuração for recebida ou POST
se uma mensagem será publicada) será registrada.
Como ativar, alterar e desativar a geração de registros do dispositivo
Escolha quais tipos de registros são informados ao Cloud Logging ao criar ou editar um registro ou um dispositivo no Console do Google Cloud ou com a ferramenta gcloud.
Como definir níveis de registro em um registro
É possível ativar, alterar ou desativar os registros do dispositivo para um registro usando o Console do Google Cloud ou a gcloud. As configurações de registro do registro se aplicam automaticamente a todos os dispositivos no registro.
Console
Para criar ou editar um registro e definir o nível de registro dele:
- Acesse a página Registros no Console do Google Cloud.
Na parte superior da página, clique em Criar registro.
Para editar um registro, clique no código dele na página Registros. Em seguida, clique em Editar registro na parte superior da página.
Em Stackdriver Logging, selecione um nível de registro.
Clique em Criar (se estiver criando um novo registro) ou em Atualizar (se estiver editando um registro existente).
gcloud
Para criar um registro e definir o nível de registro, execute o
comando gcloud iot registries create
com a sinalização --log-level
:
gcloud iot registries create REGISTRY_ID \ --project=PROJECT_ID \ --region=REGION \ [--event-notification-config=topic=TOPIC,[subfolder=SUBFOLDER] [--event-notification-config=...]] [--state-pubsub-topic=STATE_PUBSUB_TOPIC] \ --log-level={NONE|INFO|ERROR|DEBUG}
Para atualizar o nível de registro de um dispositivo, execute o
comando gcloud iot registries update
com a sinalização --log-level
:
gcloud iot registries update REGISTRY_ID \ --project=PROJECT_ID \ --region=REGION \ --log-level={NONE|INFO|ERROR|DEBUG}
Como definir níveis de registro em um dispositivo
É possível ativar, alterar ou desativar os registros de um dispositivo usando o Console do Google Cloud ou a gcloud. O nível de registro de um dispositivo substitui o nível de registro do registro.
Console
Para definir o nível de registro de um dispositivo novo ou existente:
- Acesse a página Registros no Console do Google Cloud.
Clique no ID do registro do dispositivo.
No menu de registro à esquerda, clique em Dispositivos.
Para criar um novo dispositivo, clique em Criar um dispositivo.
Para editar um dispositivo, clique no código dele na página Dispositivos e, depois, em Editar dispositivo na parte superior da página.
Em Stackdriver Logging, selecione um nível de registro.
Clique em Criar (se estiver criando um novo dispositivo) ou em Atualizar (se estiver editando um dispositivo existente).
gcloud
Para criar um dispositivo e definir um nível de registro, execute o comando gcloud iot devices create
com a sinalização --log-level
:
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=PUBLIC_KEY,type=TYPE \ --log-level={NONE|INFO|ERROR|DEBUG}
Para atualizar o nível de registro de um dispositivo, execute o
comando gcloud iot devices update
com a sinalização --log-level
:
gcloud iot devices update DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --log-level={NONE|INFO|ERROR|DEBUG}
Como ver registros
É possível ver os registros de atividade do dispositivo no seu projeto no Explorador de registros do Console do Google Cloud. Selecione device_activity no menu do nome do registro.
Veja mais detalhes em Como usar o Explorador de registros.
API
Para ler suas entradas de registro por meio da API Logging, consulte entries.list
.
gcloud
Para ler suas entradas de registro usando o gcloud, consulte Como ler entradas de registro.
Exportando registros de dispositivos
É possível exportar os registros de auditoria da mesma forma que você exporta outros tipos de registro. Para ver detalhes sobre como exportar registros, consulte Exportar registros.
Veja a seguir os motivos para exportar registros de dispositivos:
Para manter registros de auditoria por mais tempo ou usar recursos de pesquisa mais eficientes, exporte cópias desses registros para o Cloud Storage, o BigQuery ou o Pub/Sub. Com o Pub/Sub, faça exportações para outros aplicativos e repositórios ou para terceiros.
Para gerenciar os registros de auditoria em toda a organização, é possível criar coletores de exportação agregados. Eles exportam registros de todos os projetos na organização.
Limites de geração de registros do dispositivo
As cotas e os limites de registro do dispositivo são aplicados no nível do projeto. Eles são medidos separadamente e não são contabilizados em outras cotas e limites do Cloud Logging. Se as cotas de registro do dispositivo se esgotarem, as cotas do Cloud Logging para outros serviços não serão afetadas. O inverso também é verdadeiro.
As cotas de registro de dispositivos são baseadas em dois fatores:
- O número de entradas de dispositivo registradas por segundo. Os eventos incluem publicações, conexões, desconexões etc.
- O tamanho total em bytes de entradas de dispositivos registradas por minuto.
Se uma das cotas do registro de dispositivo for excedida, os registros do dispositivo serão interrompidos temporariamente.
Para ver uma lista de cotas e limites de registros do dispositivo, consulte Cotas e limites.
Práticas recomendadas
Geração de registros de depuração do dispositivo
Conforme mostrado na lista de eventos de dispositivo registrados, definir
o nível de registro DEBUG
para um registro ou um dispositivo individual pode gerar
grandes quantidades de informações de geração de registros. Como resultado, se você ativar a geração de registros de depuração para um registro com uma grande frota de dispositivos, os registros de registro poderão ser descartados devido à alta velocidade e quantidade de registros.
Por exemplo, suponha que você tenha um registro com 100.000 dispositivos e que o nível de registro de depuração esteja definido como registro. Se cada dispositivo publicar um evento de telemetria a cada segundo, apenas 1.000 de 100.000 eventos de telemetria serão registrados a cada segundo. Isso porque, conforme mostrado em Cotas e limites, o número máximo de entradas registradas é de 1.000 por segundo.
Para melhores resultados, ative a geração de registros de depuração por um curto período ou para um pequeno número de dispositivos.
Solução de problemas de erros ao gravar registros
Quando você ativa a API Google Cloud IoT Core pela primeira vez em um projeto, uma nova conta de serviço para o projeto recebe automaticamente um papel (cloudiot.serviceAgent
) que permite gravar registros no Cloud Logging. Remover esse papel
padrão da conta de serviço do projeto relevante posteriormente pode causar erros. Se não for possível gravar a atividade do dispositivo no
Cloud Logging, conclua as seguintes etapas:
Na página do IAM no Console do Google Cloud, verifique se o papel Agente de serviço do Cloud IoT Core aparece na lista Membros da conta de serviço do projeto relevante. Procure a conta de serviço do projeto que termina com
@gcp-sa-cloudiot.iam.gserviceaccount.com
.SeAgente de serviços do Cloud IoT Core não aparece no de participantes lista, usegcloud para adicionar a
cloudiot.serviceAgent
para a conta de serviço do projeto relevante. Esse papel inclui permissão para gravar registros no Cloud Logging.Execute o comando a seguir para adicionar o papel
cloudiot.serviceAgent
ao seu projeto. Para encontrar o PROJECT_ID e o PROJECT_NUMBER, consulte Como identificar projetos.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudiot.iam.gserviceaccount.com \ --role=roles/cloudiot.serviceAgent