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. Também é possível fazer isso diretamente com a biblioteca de cliente do Stackdriver Logging 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 GCP.

    Acessar a página Gerenciar recursos

  3. Verifique se o faturamento foi ativado para o projeto.

    Saiba como ativar o faturamento

  4. Ativar Stackdriver Logging API.

    Ativar a 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:

    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 usando as mesmas opções de configuração compatíveis com a biblioteca de cliente do Stackdriver Logging 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:

    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 usando as mesmas opções de configuração compatíveis com a biblioteca de cliente do Stackdriver Logging 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

Para usar bibliotecas do Stackdriver Logging para Node.js, é necessário o papel 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 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

Quando 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 Gravador de registros foi concedido na seção IAM e administrador do Console do GCP.

Cloud Functions

O Cloud Functions concede o papel 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.

Execução local e em outro lugar

Para usar as bibliotecas do Stackdriver Logging para Node.js fora do GCP, basta fornecer o ID do projeto do GCP e as credenciais da conta de serviço apropriadas diretamente às bibliotecas do Stackdriver Logging para Node.js. Isso se aplica à execução do agente 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. Para saber mais, consulte Como receber e fornecer credenciais de contas de serviço manualmente.

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 Como visualizar 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.