Configurar o Cloud Logging para PHP

Pode escrever registos no Cloud Logging a partir de aplicações PHP usando diretamente a biblioteca Cloud Logging para PHP.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Logging API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Logging API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Instalar a biblioteca Cloud Logging para PHP

    A biblioteca Cloud Logging para PHP oferece uma implementação de registo PSR-3 simples para frameworks Web PHP.

    Para escrever registos a partir da sua app, adicione a biblioteca Cloud Logging para PHP ao seu composer.json:

    composer require google/cloud-logging
    

    Criar um registador PSR-3

    Use o seguinte código para criar um registador PSR-3:

    use Google\Cloud\Logging\LoggingClient;
    $logging = new LoggingClient([
        'projectId' => $projectId
    ]);
    $logger = $logging->psrLogger('app');

    Ativar a opção de processamento em lote

    O registador PSR-3 envia os registos de forma síncrona. Isto significa que, sempre que emitir um registo, adiciona latência de RPC ao pedido do utilizador. Especialmente se emitir vários registos num único pedido, a latência adicionada será significativa. Provavelmente, vai querer evitar isso.

    O código seguinte cria um registador PSR-3 que agrupa vários registos em chamadas RPC únicas:

    $logger = LoggingClient::psrBatchLogger('app');

    Por predefinição, este registador agrupa os registos num único processo. No ambiente flexível do App Engine, pode configurar a biblioteca Cloud Logging para PHP para uma taxa de débito ainda mais elevada e uma latência mais baixa. Para ver detalhes, consulte o artigo Configurar o daemon de registo.

    Configurar a biblioteca Cloud Logging para PHP

    Pode personalizar o comportamento da biblioteca Cloud Logging para PHP. Consulte o documento de configuração para ver uma lista de possíveis opções de configuração.

    Usar o registador PSR-3

    Depois de criar o registador, pode usá-lo na sua aplicação:

    $logger->info('Hello World');
    $logger->error('Oh no');

    Para mais informações sobre a instalação, consulte a documentação da biblioteca Cloud Logging para PHP. Também pode comunicar problemas através do relatório de erros.

    Escreva registos com a biblioteca de cliente do Cloud Logging

    Para ver informações sobre a utilização direta da biblioteca cliente do Cloud Logging para PHP, consulte o artigo Bibliotecas cliente do Cloud Logging.

    Executar em Google Cloud

    Para que uma aplicação escreva registos através da biblioteca Cloud Logging para PHP, a conta de serviço do recurso subjacente tem de ter a função Logs Writer (roles/logging.logWriter) do IAM. A maioria dos Google Cloud ambientes configura automaticamente a conta de serviço predefinida para ter esta função.

    App Engine

    O Cloud Logging é ativado automaticamente para o App Engine, e a conta de serviço predefinida da sua app tem as autorizações de IAM predefinidas para escrever entradas de registo.

    Para mais informações, consulte o artigo Escrever e ver registos.

    No entanto, recomendamos que use o registador PSR-3, que adiciona automaticamente metadados aos seus registos para que os registos da sua aplicação sejam correlacionados com os registos de pedidos.

    Configurar o daemon para o ambiente flexível do App Engine

    No ambiente flexível do App Engine, pode configurar a biblioteca Cloud Logging para PHP de modo a usar um programa daemon externo para maximizar o débito de registos e minimizar a latência da app. Para ativar esta funcionalidade, adicione a seguinte linha à secção runtime_config em app.yaml:

    enable_stackdriver_integration: true

    Google Kubernetes Engine (GKE)

    O GKE concede automaticamente à conta de serviço predefinida a função do IAM Logs Writer (roles/logging.logWriter). Se usar a Workload Identity Federation para o GKE com esta conta de serviço predefinida para permitir que as cargas de trabalho acedam a Google Cloud APIs específicas, não é necessária nenhuma configuração adicional. No entanto, se usar a Workload Identity Federation para o GKE com uma conta de serviço do IAM personalizada, certifique-se de que a conta de serviço personalizada tem a função de escritor de registos (roles/logging.logWriter).

    Se necessário, também pode usar o seguinte comando para adicionar o logging.write âmbito de acesso ao criar o cluster:

    gcloud container clusters create example-cluster-name \
        --scopes https://www.googleapis.com/auth/logging.write
    

    Compute Engine

    Quando usar instâncias de VM do Compute Engine, adicione o cloud-platform âmbito de acesso a cada instância. Quando cria uma nova instância através da Google Cloud consola, pode fazê-lo na secção Identidade e acesso à API do painel Criar instância. Use a conta de serviço predefinida do Compute Engine ou outra conta de serviço à sua escolha e selecione Permitir acesso total a todas as APIs Cloud na secção Identidade e acesso à API. Qualquer que seja a conta de serviço que selecionar, certifique-se de que lhe foi concedida a função Logs Writer na secção IAM e administrador daGoogle Cloud consola.

    Executar localmente e noutro local

    Para usar a biblioteca Cloud Logging para PHP fora do Google Cloud, incluindo a execução da biblioteca na sua própria estação de trabalho, nos computadores do seu centro de dados ou nas instâncias de VM de outro fornecedor de nuvem, tem de configurar as Credenciais Predefinidas da Aplicação (ADC) no seu ambiente local para autenticar na biblioteca Cloud Logging para PHP.

    Para mais informações, consulte o artigo Configure o ADC para um ambiente no local ou outro fornecedor de nuvem.

    Ver os registos

    Na Google Cloud consola, aceda à página Explorador de registos:

    Aceda ao Explorador de registos

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.

    No Explorador de registos, tem de especificar um ou mais recursos, mas a seleção de recursos pode não ser óbvia. Seguem-se algumas sugestões para ajudar a começar:

    • Se estiver a implementar a sua aplicação no App Engine ou a usar as bibliotecas específicas do App Engine, defina o seu recurso como Aplicação GAE.

    • Se estiver a implementar a sua aplicação no Compute Engine, defina o recurso como GCE VM Instance.

    • Se estiver a implementar a sua aplicação no Google Kubernetes Engine, a configuração de registo do cluster determina o tipo de recurso das entradas de registo. Para uma discussão detalhada sobre o Google Cloud Observability antigo e as soluções de monitorização do Kubernetes do Google Cloud Observability, e como essas opções afetam o tipo de recurso, consulte o artigo Migrar para a monitorização do Kubernetes do Google Cloud Observability.

    • Se a sua aplicação estiver a usar a API Cloud Logging diretamente, o recurso depende da API e da sua configuração. Por exemplo, na sua aplicação, pode especificar um recurso ou usar um recurso predefinido.

    • Se não vir registos no Explorador de registos, para ver todas as entradas de registo, mude para o modo de consulta avançado e use uma consulta vazia.

      1. Para mudar para o modo de consulta avançado, clique no menu (▾) na parte superior do Explorador de registos e, em seguida, selecione Converter em filtro avançado.
      2. Limpar o conteúdo apresentado na caixa de filtro.
      3. Clique em Enviar filtro.

      Pode examinar as entradas individuais para identificar os seus recursos.

    Para mais informações, consulte o artigo Usar o Explorador de registos.