Integrar eventos da plataforma New Relic

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • Integre o New Relic com Gestão de eventos adicionando um webhook padrão nos consoles antigos e novos do New Relic.

    Antes de Iniciar

    Verifique se o plug-in Gestão de eventos Connectors (sn_em_connector) está instalado na instância Now Platform.

    Função necessária: evt_mgmt_integration

    Por Que e Quando Desempenhar Esta Tarefa

    Configure o ambiente Gestão de eventos para a coleção de eventos do New Relic autenticando o New Relic como uma fonte de dados. Defina sua instância Now Platform como o endpoint REST usando um webhook padrão. Use a etapa 1 do procedimento para o novo console. Use a etapa 2 do procedimento para o console antigo.

    Procedimento

    1. Para o novo console:
      1. Crie um destino.
        1. Navegar até Alertas e IA > Destinos.
        2. Na seção Adicionar destinos, selecione o tipo de canal Webhook.
        3. No campo Nome do webhook, insira o nome do webhook.
        4. No campo URL do endpoint, insira: https://<InstanceName> .service-now.com/api/sn_em_connector/em/inbound_event?source=newrelic
        5. Na seção Autenticação básica, insira seu nome de usuário e senha.
          Nota:
          Verifique se a função evt_mgmt_integration está atribuída ao usuário selecionado. Para garantir a autenticação apropriada, use o usuário com menos privilégios com a função evt_mgmt_integration, em vez de um usuário com privilégios altos.
        6. Selecione Salvar destino.
      2. Crie uma política.
        1. Navegar até Alertas e IA > Condições e políticas de alerta.
        2. Selecione Nova política de alerta e defina uma política.
        3. Selecione Configurar notificações.
        4. Na seção Adicionar canal, selecione Webhooke selecione o destino que você criou na subetapa anterior.
        5. Na seção Modelo de carga, cole a seguinte carga JSON.
          {
          "account_id": {{nrAccountId}},
          "account_name": {{json accumulations.tag.account.[0]}},
          "closed_violations_count": {{closedIncidentsCount}},
          "open_violations_count": {{openIncidentsCount}},
          "condition_description": "{{escape accumulations.conditionDescription.[0]}}",
          "condition_family_id": {{accumulations.conditionFamilyId.[0]}},
          "condition_name": "{{escape accumulations.conditionName.[0]}}",
          "current_state": {{json state}},
          "details": {{json issueTitle}},
          "duration": {{#if issueDurationMs}}{{issueDurationMs}}{{else}}0{{/if}},
          "event_type": "INCIDENT",
          "incident_acknowledge_url": {{json issueAckUrl}},
          "incident_id": {{json issueId}},
          "incident_url": {{json issuePageUrl}},
          "metadata": {
              {{#if locationStatusesObject}}"location_statuses": {{json locationStatusesObject}},{{/if}}
              {{#if accumulations.metadata_entity_type}}"entity.type": {{json accumulations.metadata_entity_type.[0]}},{{/if}}
              {{#if accumulations.metadata_entity_name}}"entity.name": {{json accumulations.metadata_entity_name.[0]}},{{/if}}
              "section": "metadata"
          },
          "owner": {{json owner}},
          "policy_name": {{json accumulations.policyName.[0]}},
          "policy_url": {{json policyUrl}},
          "runbook_url": {{json accumulations.runbookUrl.[0]}},
          "severity": {{json priority}},
          "targets": [
              {
                  "id": "{{labels.targetId.[0]}}",
                  "name": "{{#if accumulations.targetName}}{{escape accumulations.targetName.[0]}}{{else if entitiesData.entities}}{{escape entitiesData.entities.[0].name}}{{else}}N/A{{/if}}",
                  "link": "{{issuePageUrl}}",
                  "product": "{{accumulations.conditionProduct.[0]}}",
                  "type": "{{#if entitiesData.types.[0]}}{{entitiesData.types.[0]}}{{else}}N/A{{/if}}",
                  "labels": { {{#each accumulations.rawTag}}"{{escape @key}}": {{#if this.[0]}}{{json this.[0]}}{{else}}"empty"{{/if}}{{#unless @last}},{{/unless}}{{/each}}
                  }
              }
          ],
          "timestamp": {{updatedAt}},
          "violation_callback_url": {{json issuePageUrl}},
          "violation_chart_url": {{json violationChartUrl}}
            }
        6. Selecione Enviar notificação de teste para obter o evento de teste na sua instância ServiceNow.
        7. Selecione Salvar mensagem.
        8. Selecione Ativar fluxo de trabalho para ativar o fluxo de trabalho.
      3. Crie condições de alerta a serem aplicadas à política:
        1. Navegar até Alertas e IA > Condições e políticas de alerta.
        2. Selecione Criar condição de alerta, defina os detalhes do alerta necessários e adicione-os à política criada na etapa anterior.
        3. Selecione Salvar condição.
    2. Para o console antigo.
      1. Crie um canal de notificação.
        1. Navegar até Alertas e IA > Canais de notificação.
        2. Na guia Detalhes do canal, selecione o tipo de canal Webhook.
        3. Na caixa de texto URL base, insira: https://<InstanceName> .service-now.com/api/sn_em_connector/em/inbound_event?source=newrelic
        4. Na seção Autenticação básica, insira o nome de usuário e a senha do usuário relevante.
          Nota:
          Verifique se a função evt_mgmt_integration está atribuída ao usuário selecionado. Para garantir a autenticação apropriada, use o usuário com menos privilégios com a função evt_mgmt_integration, em vez de um usuário com privilégios altos.
        5. Na seção Carga personalizada, selecione Adicionar carga personalizadae selecione o tipo de carga JSON.
        6. Cole a carga JSON a seguir na carga personalizada.
          {
            "account_id": "$ACCOUNT_ID",
            "account_name": "$ACCOUNT_NAME",
            "closed_violations_count_critical": "$CLOSED_VIOLATIONS_COUNT_CRITICAL",
            "closed_violations_count_warning": "$CLOSED_VIOLATIONS_COUNT_WARNING",
            "condition_description": "$DESCRIPTION",
            "condition_family_id": "$CONDITION_FAMILY_ID",
            "condition_name": "$CONDITION_NAME",
            "current_state": "$EVENT_STATE",
            "details": "$EVENT_DETAILS",
            "duration": "$DURATION",
            "event_type": "$EVENT_TYPE",
            "incident_acknowledge_url": "$INCIDENT_ACKNOWLEDGE_URL",
            "incident_id": "$INCIDENT_ID",
            "incident_url": "$INCIDENT_URL",
            "metadata": "$METADATA",
            "open_violations_count_critical": "$OPEN_VIOLATIONS_COUNT_CRITICAL",
            "open_violations_count_warning": "$OPEN_VIOLATIONS_COUNT_WARNING",
            "owner": "$EVENT_OWNER",
            "policy_name": "$POLICY_NAME",
            "policy_url": "$POLICY_URL",
            "runbook_url": "$RUNBOOK_URL",
            "severity": "$SEVERITY",
            "targets": "$TARGETS",
            "timestamp": "$TIMESTAMP",
            "violation_callback_url": "$VIOLATION_CALLBACK_URL",
            "violation_chart_url": "$VIOLATION_CHART_URL"
          }
      2. Crie uma política.
        1. Navegar até Alertas e IA > Políticas.
        2. Selecione Nova política de alerta e defina uma política.
        3. Na seção Canais de notificação, selecione Adicionar, selecione Webhooke selecione o canal que você criou na etapa anterior.
      3. Crie condições de alerta a serem aplicadas à política:
        1. Navegar até Infraestrutura > Configurações > Alertas.
        2. Selecione Criar condição de alerta, defina os detalhes de alerta necessários e adicione-os à política criada na etapa anterior.
        3. Selecione Criar.

    Resultado

    Os alertas começam a fluir do console do New Relic para o plug-in Event Management. O plug-in extrai informações da mensagem de alerta original do New Relic para preencher os campos de evento obrigatórios e insere o evento no banco de dados. Na instância Now Platform, navegue até Todos os eventos para ver os eventos.
    Nota:
    Por padrão, a vinculação de host está habilitada para eventos do New Relic para todos os provedores (Azure/AWS/GCP). Se todos os hosts no ambiente forem descobertos usando Descoberta na nuvem fornecendo credenciais e os recursos descobertos estiverem na lista cmdb_ci_vm_object, a vinculação da VM poderá não ocorrer. Para resolver isso, você deve habilitar a regra de evento New Relic - Geral. Para obter mais informações sobre regras de evento, consulte Regras de evento.