Configuração do agente para definir valores personalizados para os campos de metadados applicationName e subsystemName
Você pode configurar o Agente de criação de log para enviar registros para o serviço IBM Cloud Logs.
Os registros que você envia devem incluir um valor para os campos de metadados applicationName e subsystemName.
Por padrão, quando você configura o Agente de criação de log, o agente define valores padrão para esses campos. Você pode configurar seus próprios valores personalizados para substituir os valores padrão. Para obter mais informações sobre valores padrão, consulte Campos de metadados.
Em IBM Cloud Logs, você pode usar os campos de metadados applicationName e subsystemName para configurar qualquer um dos seguintes recursos:
- Políticas de TCO
- Regras de análise
- Relatórios de uso de dados
- Alertas
- Visualizações
- Painéis
- Eventos para métricas
- Logregação
Para obter informações sobre IBM Cloud Logs, consulte a IBM Cloud Logs documentação.
Configuração do agente para definir valores personalizados
Você pode configurar o Agente de criação de log com valores personalizados para os campos de metadados applicationName e subsystemName especificando as opções da API.
-
Use
-apara especificar oapplicationNameque você deseja usar.Por padrão, o
applicationNametem como padrão o nome do namespacekubernetes.namespace_nameno cluster Red Hat OpenShift on IBM Cloud ou IBM Cloud Kubernetes Service.Você também pode usar variáveis do ambiente para definir valores personalizados, por exemplo,
'${POD_NAMESPACE}'. -
Use
-spara especificar osusbsystemNameque você deseja usar.Por padrão, o
subsystemNametem como padrão o nome do contêinerkubernetes.container_namenos clusters Red Hat OpenShift on IBM Cloud ou IBM Cloud Kubernetes Service.Você também pode usar variáveis do ambiente, por exemplo,
'${POD_NAME}'.
Ao definir esses campos de metadados, você tem as seguintes opções:
- Você pode definir o valor como uma string fixa. Por exemplo, você pode usar
-s 'production'. - Você pode usar variáveis do ambiente, por exemplo,
-a '${POD_NAMESPACE}'. - Você pode combinar uma string fixa com variáveis do ambiente, por exemplo,
-a 'mycluster:${POD_NAME}'.
Você pode definir applicatioName, subsystemName ou ambos. Se um valor não for definido, o valor padrão será aplicado. Para obter informações sobre os valores padrão que são definidos para os campos de metadados applicationName e subsystemName, consulte Metadados.
Exemplo: Configuração de valores dinâmicos
Para configurar o Agente de criação de log com valores dinâmicos personalizados para os campos de metadados applicationName e subsystemName, você pode implantar o agente da seguinte forma em um cluster Kubernetes:
curl -sSL https://ibm.biz/logs-router-setup | bash -s -- -v 1.1.1 -m IAMAPIKey -k xxxx -t Kubernetes -r eu-es -p 3443 -s '${POD_NAME}' -a '${POD_NAMESPACE}'
Exemplo: Configuração de um valor que combina um valor fixo e um valor dinâmico
Para configurar o Agente de criação de log com valores personalizados para os campos de metadados applicationName e subsystemName, você pode implantar o agente da seguinte forma em um cluster Kubernetes:
curl -sSL https://ibm.biz/logs-router-setup | bash -s -- -v 1.1.1 -m IAMAPIKey -k xxxx -t Kubernetes -r eu-es -p 3443 -s '${POD_NAME}' -a 'mycluster-dallas:${POD_NAMESPACE}'
Neste exemplo, o nome do cluster é adicionado como uma cadeia de caracteres.
Exemplo: Configuração de valores fixos
Para configurar o Agente de criação de log com valores fixos personalizados para os campos de metadados applicationName e subsystemName, você pode implantar o agente da seguinte forma em um cluster Kubernetes:
curl -sSL https://ibm.biz/logs-router-setup | bash -s -- -v 1.1.1 -m IAMAPIKey -k xxxx -t Kubernetes -r eu-es -p 3443 -s 'mysubsystem' -a 'myapp'
Configuração do agente para definir valores personalizados com base na linha de registro
É possível adicionar dinamicamente valores para o nome do aplicativo e do subsistema, dependendo da linha de registro.
O exemplo a seguir mostra como configurar um agente para um cluster Kubernetes que adiciona um nome de aplicativo personalizado para uma mensagem formatada em JSON:
-
Adicione o applicationName à linha de registro.
Por exemplo, sua linha de registro tem a seguinte aparência:
{"level":"info", "msg":"Test message", "applicationName":"my-application"} -
Adicione o plug-in JSON PARSER ao arquivo
logger-agent-iks.yamlpara converter um JSON stingify em um objeto JSON. Para obter mais informações, consulte JSON.[PARSER] # Converts the original log source from a JSON map string to the internal binary representation. Name json Format json # Time_Key: Set the time in your log entry to the log record time included with the log. If not set, Fluenti Bit uses its own time. Time_Key time Time_Format %d/%b/%Y:%H:%M:%S %z # Time_Keep: To keep all fields in the original log record Time_Keep On -
Adicione o plug-in PARSER ao arquivo
logger-agent-iks.yamlpara extrair campos dos registros. Para obter mais informações, consulte Parser.Por padrão, o plug-in do analisador mantém apenas os campos analisados em sua saída.
[FILTER] # Name: Specify the name of the parser Name parser # Match: A pattern that is used to match against the tags that are defined on incoming records. Match * # Key_Name: Specify the field name in the log to be parsed. Key_Name message # Parser: Specify the parser name to interpret the field. Parser json # Reserve_Data: Set to keep all the fields Reserve_Data On # preserve_key: Set to keep the original key field. Preserve_Key On -
Extraia o nome do aplicativo usando o plug-in do filtro Nest
O plug-in Nest Filter permite que você opere em ou com dados aninhados. Seus modos de operação são:
nest, em que ele pega um conjunto de registros e os coloca em um mapa, elift, em que ele pega um mapa por chave e levanta seus registros. Para obter mais informações, consulte Nest.applicationName deve estar no nível superior, portanto, você deve usar a operação
lift.[FILTRO] Nome ninho Correspondência * Elevação da operação Mensagem aninhada Curinga applicationName
Com isso em vigor, o "applicationName" do exemplo de linha de registro acima seria "my-application" para essa linha específica.