Como configurar o Stackdriver Logging para Node.js

É possível gravar registros de aplicativos em Node.js no Stackdriver Logging com nossos plug-ins Bunyan ou Winston (ambos em inglês). Outra opção é fazer isso diretamente por meio da biblioteca de cliente do Stackdriver Logging no Cloud para Node.js.

O agente do Stackdriver Logging não precisa ser instalado para usar as bibliotecas do Bunyan e Winston em uma instância de VM do Compute Engine.

Antes de começar

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. Selecione ou crie um projeto do Google Cloud Platform.

    Acessar a página Gerenciar recursos

  3. Verifique se o faturamento foi ativado no projeto do Google Cloud Platform.

    Saiba como ativar o faturamento

  4. Ativar Stackdriver Logging API.

    Ativar a API

  5. Prepare seu ambiente para o desenvolvimento do Node.js.

    Consultar o guia de configuração do Node.js

Como usar o Bunyan

Fornecemos um plug-in para a biblioteca de registros Node.js do Bunyan. O plug-in do Stackdriver Logging para Bunyan fornece uma camada simples e de nível superior para trabalhar com o Stackdriver Logging.

Como instalar o plug-in

  1. A maneira mais fácil de instalar o plug-in Bunyan do Stackdriver Logging é com NPM (ambos em inglês):

    npm install --save @google-cloud/logging-bunyan
  2. Importe o plug-in e adicione-o à configuração do Bunyan:

    const bunyan = require('bunyan');
    
    // Imports the Google Cloud client library for Bunyan
    const {LoggingBunyan} = require('@google-cloud/logging-bunyan');
    
    // Creates a Bunyan Stackdriver Logging client
    const loggingBunyan = new LoggingBunyan();
    
    // Create a Bunyan logger that streams to Stackdriver Logging
    // Logs will be written to: "projects/YOUR_PROJECT_ID/logs/bunyan_log"
    const logger = bunyan.createLogger({
      // The JSON payload of the log as it appears in Stackdriver Logging
      // will contain "name": "my-service"
      name: 'my-service',
      streams: [
        // Log to the console at 'info' and above
        {stream: process.stdout, level: 'info'},
        // And log to Stackdriver Logging, logging at 'info' and above
        loggingBunyan.stream('info'),
      ],
    });
    
    // Writes some log entries
    logger.error('warp nacelles offline');
    logger.info('shields at 99%');

Como configurar o plug-in

É possível personalizar o comportamento do plug-in Bunyan (em inglês) usando as mesmas opções de configuração compatíveis com a biblioteca de cliente do Stackdriver Logging no Cloud para Node.js. Essas opções podem ser transmitidas no objeto options para o construtor do plug-in.

Como usar o Winston

Fornecemos um plug-in para a biblioteca de registros Node.js do Winston. O plug-in do Stackdriver Logging para Winston fornece uma camada simples e de nível superior para trabalhar com o Stackdriver Logging.

Como instalar o plug-in

  1. A maneira mais fácil de instalar o plug-in Winston do Stackdriver Logging é com NPM (ambos em inglês):

    npm install --save @google-cloud/logging-winston
  2. Importe o plug-in e adicione-o à configuração do Winston:

    const winston = require('winston');
    
    // Imports the Google Cloud client library for Winston
    const {LoggingWinston} = require('@google-cloud/logging-winston');
    
    const loggingWinston = new LoggingWinston();
    
    // Create a Winston logger that streams to Stackdriver Logging
    // Logs will be written to: "projects/YOUR_PROJECT_ID/logs/winston_log"
    const logger = winston.createLogger({
      level: 'info',
      transports: [
        new winston.transports.Console(),
        // Add Stackdriver Logging
        loggingWinston,
      ],
    });
    
    // Writes some log entries
    logger.error('warp nacelles offline');
    logger.info('shields at 99%');

Como configurar o plug-in

É possível personalizar o comportamento do plug-in Winston (em inglês) usando as mesmas opções de configuração compatíveis com a biblioteca de cliente do Stackdriver Logging no Cloud para Node.js. Essas opções podem ser transmitidas no objeto options para o construtor do plug-in.

Para mais informações sobre a instalação, consulte a documentação das bibliotecas do Stackdriver Logging para Node.js. Você também pode informar problemas usando o rastreador de problemas.

Como usar a biblioteca de cliente do Cloud diretamente

Para mais informações sobre como usar a biblioteca de cliente do Stackdriver Logging Cloud para Node.js diretamente, consulte Bibliotecas de cliente do Stackdriver Logging.

Como executar no Google Cloud Platform

O uso das bibliotecas do Stackdriver Logging para Node.js exige o papel de gravador de registros do Cloud IAM no GCP. A maioria dos ambientes do GCP oferece esse papel por padrão.

App Engine

O App Engine concede o papel de gravador de registros por padrão.

As bibliotecas do Stackdriver Logging para Node.js podem ser usadas sem a necessidade de fornecer credenciais de maneira explícita.

O Stackdriver Logging é ativado automaticamente para aplicativos do App Engine. Nenhuma outra configuração é necessária.

Google Kubernetes Engine

No Google Kubernetes Engine, adicione o escopo de acesso logging.write ao criar o cluster:

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

Compute Engine

Ao usar instâncias de VM do Compute Engine, adicione o escopo de acesso cloud-platform a cada instância. Ao criar uma nova instância por meio do Console do Google Cloud Platform, faça isso na seção de Identidade e acesso à API do painel Criar instância. Use a conta de serviço padrão do Compute Engine ou outra de sua escolha e selecione Permitir acesso total a todas as APIs do Cloud na seção Identidade e acesso à API. Seja qual for a conta de serviço selecionada, verifique se o papel de gravador de registros foi concedido a ela na seção IAM e administrador do Console do GCP.

Cloud Functions

O Cloud Functions concede o papel de gravador de registros por padrão.

As bibliotecas do Stackdriver Logging para Node.js podem ser usadas sem a necessidade de fornecer credenciais de maneira explícita.

O Cloud Functions é configurado para usar o Stackdriver Logging automaticamente.

Como executar localmente e em outro local

Para usar as bibliotecas do Stackdriver Logging para Node.js fora do Google Cloud Platform, o que inclui a execução da biblioteca na sua própria estação de trabalho, nos computadores do seu data center ou nas instâncias de VM de outro provedor de nuvem, você precisa fornecer o ID do projeto do GCP e as credenciais apropriadas da conta de serviço diretamente às bibliotecas do Stackdriver Logging para Node.js.

É possível criar e receber credenciais da conta de serviço manualmente. Ao especificar o campo Papel, use o papel de gravador de registros. Para mais informações sobre os papéis do Cloud Identity and Access Management, acesse o Guia de controle de acesso.

Como usar o Bunyan:

// Imports the Google Cloud client library for Bunyan
const {LoggingBunyan} = require('@google-cloud/logging-bunyan');

// Creates a client
const loggingBunyan = new LoggingBunyan({
  projectId: 'your-project-id',
  keyFilename: '/path/to/key.json',
});

Como usar o Winston:

// Imports the Google Cloud client library for Winston
const {LoggingWinston} = require('@google-cloud/logging-winston');

// Creates a client
const loggingWinston = new LoggingWinston({
  projectId: 'your-project-id',
  keyFilename: '/path/to/key.json',
});

Como visualizar os registros

Após a implantação, você pode consultar os registros no visualizador de registros do Console do GCP.

Acessar o Visualizador de registros

No Visualizador de registros, é preciso especificar um ou mais recursos, mas a escolha de recursos pode não ser óbvia. Veja a seguir algumas dicas para ajudar você a começar:

  • Se você estiver implantando seu aplicativo no App Engine ou usando as bibliotecas específicas dele, defina seu recurso como aplicativo do GAE.

  • Se você estiver implantando seu aplicativo no Compute Engine, defina o recurso como Instância de VM do GCE.

  • Se você estiver implantando seu aplicativo no Google Kubernetes Engine, a configuração de geração de registros do cluster determinará o tipo de recurso das entradas de registro. Para ver uma discussão detalhada sobre as soluções do Stackdriver legado e do Stackdriver Kubernetes Monitoring e como essas opções afetam o tipo de recurso, consulte Como migrar para o Kubernetes Monitoring.

  • Se seu aplicativo estiver usando a API do Stackdriver Logging diretamente, o recurso dependerá da API e da sua configuração. Por exemplo, no seu aplicativo, é possível especificar um recurso ou usar um recurso padrão.

  • Se você não vir nenhum registro no Visualizador de registros, para ver todas as entradas de registro, alterne para o modo de filtro avançado e use um filtro vazio.

    1. Para alternar para o modo de filtro avançado, clique no menu (▾) na parte superior do Visualizador de registros e selecione Converter para filtro avançado.
    2. Limpe o conteúdo que aparece na caixa de filtro.
    3. Clique em Enviar filtro.

    É possível examinar as entradas individuais para identificar seus recursos.

Para mais informações, consulte Ver registros e Filtros de registro avançados.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Stackdriver Logging
Precisa de ajuda? Acesse nossa página de suporte.