External Services New Relic

Com o serviço externo New Relic, recebemos dados em nossa API (Interface de Programação de Aplicações). Geramos uma URL que nos envia os dados podendo abrir um Alarme ou Incidente na plataform assim como um status Resolvido.

Temos duas opções:

  • Alert
  • Incident

Configuração New Relic

No formulário, deve preencher o External service name e os Responders, que receberão s notificações deste serviço, em seguida clique em CREATE

Mais abaixo aparecerá as informações do seu External Service solicitando que selecione um Api token, selecione o criado anteriormente

Após selecionar o Api Token, as informações necessárias para configurar o External Service New Relic estão completas

Configurando no New Relic
 

No NewRelic, no menu à esquerda, vá em Alerts & AI e clique em Alert Conditions & Policies:

Criar um novo Alert Policy:


Selecionar One Issue per condition and signal 

Finalizar clicando em Create policy whithout notifications.

 

No menu à esquerda clique em Workflows e depois no canto superior direito da tela e selecione Add a workflow:

De um nome de sua preferência ao workflow e selecione a Policy criada na etapa 1:

Em Notify selecione Webhook e depois Add a destination:

Coloque o nome de identificação de sua preferência em Webhook name

Em Endpoint URL: informar a url disponibilizada ao criar o External Service New Relic


 Após preencher, clique em Save destination.

 

Preencher com as informações coletadas na  Elven Platform:

				
					{
  "issueId": {{json issueId}},
  "issueTitle": {{json issueTitle}},
  "issueDescription": "{{accumulations.conditionDescription.[0] }}",
  "issueTime": "{{createdAt}}",
  "issueState": {{#if issueClosedAt}}"closed"{{else if issueAcknowledgedAt}}"acknowledged"{{else}}"open"{{/if}},
  "severity": {{ json priority }},
  "organization": "<ENTER ORGANIZATION HERE>"
}
				
			
    • issueId: Identificador único da issue.
    • issueTitle: Título ou nome da issue.
    • issueDescription: Descrição detalhada da issue (pegando o primeiro item da lista accumulations.conditionDescription).
    • issueState: Estado da issue, pode ser “closed”, “acknowledged” ou “open” dependendo das condições (issueClosedAt e issueAcknowledgedAt).
    • severity: Nível de severidade (prioridade) da issue.
    • organization: org_uid da organização (deve ser substituído por um valor real).

External Services Google Cloud

Com o serviço externo Google Cloud, recebemos dados em nossa API (Interface de Programação de Aplicações). Geramos uma URL que nos envia os dados podendo abrir um Alerme ou Incidente na plataform assim como um status Resolvido.

Temos duas opções:

  • Alert
  • Incident
Configuração Google Cloud

No formulário, deve preencher o External service name e os Responders que receberão s notificações deste serviço, em seguida clique em CREATE

Mais abaixo aparecerá as informações do seu External Service solicitando que selecione um Api token, selecione o criado anteriormente

Após selecionar o Api Token, as informações necessárias para configurar o External Service Google Cloud estão completas

 

Após criados, seus External Services aparecerão no External services monitoring center, eles serão classificados em ordem de status (em alarme antes dos operacionais)

 

Configurando no Google Cloud

 

1 – Na sua Google Cloud Monitoring, no menu lateral esquerdo vá em Alerting:

 

 

2 – No Centro da tela clique em EDIT NOTIFICATION CHANNELS:

 

3 – Desça ate Webhooks e clique em ADD NEW:

4 – Ira abrir um tela para adicionar:
– Endpoint URL: URL gerada na plataforma
– Display Name: coloque o nome de sua escolha

 

Pronto, sua o chanel está criado e pode ser vinculado a qualquer monitoramento para ser alertado via Elven.

External Services Custom

Com o serviço externo Custom, recebemos dados em nossa API (Interface de Programação de Aplicações). Geramos uma URL que nos envia os dados podendo abrir um Alerme ou Incidente na plataform assim como um status Resolvido.

Temos duas opções:

  • Alert
  • Incident

No formulário, deve preencher o External service name e os Responders que receberão s notificações deste serviço, em seguida clique em CREATE

Mais abaixo aparecerá as informações do seu External Service solicitando que selecione um Api token, selecione o criado anteriormente

Após a seleção do Api Token, todas as informações necessárias para proceder com a configuração do CURL estão completas.

Segue um exemplo de CURL da integração custom:
				
					curl --request POST \
  --url '<URL da API Elven>' \
  --header 'Content-Type: application/json' \
  --header 'User-Agent: 1PcustomAuth/1.0' \
  --data '{
    "title": "<título do incidente>",
    "description": "<descrição do incidente>",
    "external_aggregate_key": "001",
    "action": "alarmed",
    "severity": "<Severidade do incident>"
  }'

				
			
  • –url: API_URL gerada na criação do External Service.
  • title: Define o título do incidente que aparecerá na 1P.
  • description: Descrição do incidente, que será exibida em “causa” na 1P.
  • external_aggregate_key: Identificador usado para “abrir” e “fechar” o incidente. Deve ser o mesmo para ambas as ações.
  • action: Ação executada, como “alarmed” (abrir) ou “resolved” (fechar) o incidente.
  • severity: Define a severidade do incidente (informational, low, moderate, high, critical).

Configuração de cloud na Elven

O que é uma cloud?

Uma cloud representa a infraestrutura virtual onde seus environments serão implementados. Dependendo do provedor de cloud que você escolher (AWS, Azure ou Custom).

Opções de criação de cloud

Custom

A opção Custom é a maneira mais rápida e fácil de configurar uma cloud. Para criar uma cloud Custom, você precisa:

  • Nome: nome da cloud que está configurando.

Esta opção permite personalizar a configuração da cloud conforme suas necessidades, sem exigir validações.

AWS

Para configurar a AWS como seu provedor de cloud, forneça as seguintes credenciais (um scan de conexão com a cloud será realizada antes de salvar):

  • Access Key ID: sua chave de acesso única na AWS.
  • Secret Access Key: a chave secreta associada à sua Access Key ID.

Com essas credenciais, você pode criar e monitorar seus ambientes na AWS pela Elven.

Azure

Ao escolher o Azure como provedor de cloud, as seguintes informações são necessárias(um scan de conexão com a cloud será realizada antes de salvar):

  • Client ID: o identificador exclusivo do cliente para a aplicação registrada no Azure AD.
  • Client Secret: a chave secreta gerada para a aplicação registrada.
  • Tenant ID: o identificador do diretório do Azure AD ao qual a aplicação pertence.
  • Subscription ID: o identificador da assinatura do Azure onde os recursos serão gerenciados.

Com essas credenciais, você pode configurar e monitorar seus environments na AZURE diretamente pela Elven.

Como criar uma policy da AWS para o agent

Esta policy permite que o agent execute operações específicas necessárias para o provisionamento, controle e administração de instâncias EC2, além de acessar outros serviços como RDS, Elasticache, CloudWatch, e S3.

Passo 1: acessando o Console da AWS

Primeiro, entre no Console da AWS. Navegue até o serviço IAM e selecione “Policies” no menu lateral. Em seguida, clique em “Create policy” para iniciar a criação de uma nova policy.

Passo 2: criando a policy

Na seção de criação da policy, selecione a aba “JSON” e copie o código abaixo para definir as permissões necessárias para o agente da Elven:


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowRunInstances",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/*",
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:security-group/*",
                "arn:aws:ec2:*:*:key-pair/*"
            ]
        },
        {
            "Sid": "AllowEc2WithRestrictions",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateVolume",
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:volume/*",
                "arn:aws:ec2:*:*:instance/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Owner": "1p-agent"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Owner",
                        "Name",
                        "Environment"
                    ]
                }
            }
        },
        {
            "Sid": "AllowFunctionsWithRestrictions",
            "Effect": "Allow",
            "Action": [
                "ec2:TerminateInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances",
                "ec2:StartInstances",
                "ec2:DeleteSecurityGroup",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:UpdateSecurityGroupRuleDescriptionsIngress",
                "ec2:UpdateSecurityGroupRuleDescriptionsEgress"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:security-group/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Owner": "1p-agent"
                }
            }
        },
        {
            "Sid": "AllowFunctions1p",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:CreateSecurityGroup",
                "ec2:Describe*",
                "rds:Describe*",
                "elasticache:Describe*",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Manage1pAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:get*"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "SsmAllRegionsToAMis",
            "Effect": "Allow",
            "Action": "ssm:*",
            "Resource": [
                "arn:aws:s3:::*",
                "arn:aws:ssm:*:*:opsmetadata/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:parameter/*"
            ]
        }
    ]
}

Passo 3: criando o usuário 1p-agent

Após criar a policy, navegue até o serviço IAM novamente e crie um novo usuário chamado 1p-agent. Ao criar o usuário, selecione “Attach existing policies directly” e anexe a policy que você acabou de criar ao usuário 1p-agent. Isso permitirá que o agente execute as ações especificadas na policy.

Permissões concedidas pela policy

Esta policy permite ao agente da Elven:

  • Provisionar, controlar e administrar instâncias EC2 com a tag “1P”.
  • Realizar operações de leitura e listagem em RDS, Elasticache, EC2, IAM, CloudWatch e S3.
  • Opcionalmente, conceder acesso completo ao EKS.

Com esta policy, o agente pode realizar todas as operações necessárias para manter a infraestrutura gerenciada de forma eficaz e segura, alinhada às práticas recomendadas pela AWS.

O que é trafegado no agent

Descubra como o agent da Elven monitora e transmite dados para gestão de incidents.

Tráfego gerado pelos agents

O agent da Elven gera tráfego essencial que é dividido em três categorias principais:

  • Hits: representam interações bem-sucedidas entre o agent e o ambiente em que está integrado.
  • Failures: destacam as interações malsucedidas ou anomalias detectadas pelo agent.
  • Logs: registro de eventos, operações e informações cruciais para o monitoramento.

Informações dos logs

Nos logs gerados pelo agent, são apresentadas as seguintes informações:

  • id: número identificador do agent.
  • application_id: número identificador da aplicação em que o agent está atuando.
  • addon_id: número identificador da dependência em que o agent está integrado.
  • incident_id: número identificador de quando um incidente é aberto pelo agent.
  • org_uid: número identificador da organização em que o agent está operando.
  • created_at: data em que o incidente foi aberto pelo agent.
  • updated_at: data da última atualização no incidente.
  • origin_entity: identifica o tipo de monitoria (interna, externa, multiflow, synthetic, etc.).
  • type: tipo da interação (resolved ou alarmed).
  • version: versão do agent instalado.

Onde obter os logs

Você pode acessar os logs gerados pelo agent de várias maneiras:

  • Em ambientes Kubernetes, os logs podem ser acessados diretamente utilizando o seguinte comando para encontrar o pod:
  • kubectl get pods -n elvenworks

  • Depois, utilize o comando kubectl logs [nome-do-pod] para acessar os logs do pod específico.
  • No sistema operacional, você pode utilizar o comando journalctl -u 1p-agent.service para visualizar os logs específicos do agent.

Configurando e instalando Enviroments

O que são Enviroments?

Enviroments são configurações para definir onde os Agents de monitoramento serão implantados.

1. Pré-requisito

Antes de utilizar um environment, é necessário subir uma cloud.

2. Opções de criação de Environment

2.1 Custom

Após subir a cloud custom (por padrão uma é criada), você pode utilizar o environment para subir em seu sistema através de um manifesto, com as opções de manual e auto update ou em sistemas operacionais .

Manual ou auto update via Kubernets

  • Manual update: o usuário precisará atualizar manualmente para receber as atualizações do agente.
  • Auto update: as atualizações de funcionalidades e segurança ocorrerão automaticamente.
Configurações de ambiente para sistemas operacionais
  • Amazon Linux
  • CentOS 7 e 8
  • Ubuntu
Como atualizar manualmente

Caso precise atualizar o agent, execute os comandos abaixo, assim será atualizado para a versão atual.

				
					sudo su -
cd agent-custom/scripts
./update.sh
				
			
Como desinstalar

Para desinstalar no terminal execute os comandos abaixo, assim será atualizado para a versão atual.

				
					sudo su -
cd agent-custom/
./setup.sh --uninstall
				
			

2.2 AWS

Ao criar sua cloud  AWS, isso liberará o environment correspondente, permitindo subir o agente no seu ambiente AWS.
Agent vem por padrão com o auto update ativo.

Necessário para subir:

Como desinstalar

Para desinstalar o environment da AWS click no botão uninstall e aguarde a desinstalação do agent

2.3 Azure

Ao criar sua cloud na Azure, isso liberará o environment correspondente, permitindo subir o agente no seu ambiente Azure.
Agent  vem por padrão com o auto update ativo.

Necessário para subir:

  • Cloud Azure
  • Virtual Network
  • Subnet
  • Location
Como desinstalar

Para desinstalar o environment da AZURE click no botão uninstall e aguarde a desinstalação do agent

Configuração SSO com SAML (Single Sign-On)

1 – No Microsoft Entra admin center, acesse Identity > Applications > Enterprise applications 

 

2 – Clique em New application 

 

3 – Clique em + Create your own application e verifique se a opção “Integrate any other application you don’t find in the gallery (Non-gallery)” está selecionada

 

4 – No menu do aplicativo, selecione  Single sign-on e clique em SAML

 

5.1 – Clique em basic SAML Confiuraion e preencha com os dados obtidos na OnePlatform

 

5.2 – Na One Platform, no canto inferior esquerdo, clique em Organization Settings, em seguida, selecione SAML Microsoft clicando nos três pontos e em Integrate now

 

5.3 – Abrirá o formulário de configuração. Neste momento, copie os campos do Basic SAML Configuration e cole no Microsoft SAML

 

6 – Vá até o item 3 e clique em editar, em seguida, clique nos 3 pontinhos e PEM sertificate download

 

7 – Após baixar, volte para a OnePlatform e adicione o certificado clicando em SELECT FILE 

 

8.1 – No item 4 da Microsoft, copie o Login URL  

 

8.2 – Na OnePlatform, cole no campo Sing In URL

8.3 – Adicione os usuários/grupos que vão ser compartilhados com a Elven Platform, para poderem visualizar a aplicação no microsoft workspace

 

9.1 – Na Microsoft, vá em Identity > Overview e copie o Tenant ID

 

9.2 – Na OnePlatform, cole o tenant ID no campo Your sorkspace tenant ID.

 

10 – Volte para o Microsoft Entra Admin Center, vá em Applications > App registrations > All applications e clique no seu aplicativo

 

11.1 – Copie o Application (client) ID

 

11.2 – Na OnePlatform, cole o Client ID

 

12.1 – Agora iremos conceder algumas permissões para a App.

Vá em API permissions > Add a permission > Clique em Microsoft Graph

 

12.2 – Selecione as seguintes permissões:

  • User.Read.All 
  • Group.Read.All 
  • GroupMember.Read.All 

 

13 – Apos adicionar as permissões, clique em Grant admin consent e garanta que o status tenha ficado como na imagem abaixo  

 

14 – Vá em Cetificates & secrets > New client Secret

Preencha com:

  • Description: ElvenPlatform
  • Expires: selecione 24 meses

 

15.1 – Copie o Value da secret 

 

15.2 – Na OnePlatform, cole no campo Client Secret

 

16.1 – No Microsoft Entra Admin Center, vá em Groups > All groups e copie o Object id do grupo que deseja adicionar à plataforma 

 

16.2 – Na OnePlatform, cole no campo Identifier of group to sync users e clique em SAVE INTEGRATION

A partir de agora, os usuários que estiverem no grupo da Microsoft configurado, serão adicionados automaticamente à OnePlatform. Lembrando que estes usuários serão adicionados à plataforma com a role member, clique aqui e veja como alterar a role

Obs: O sync dos usuários acontecerá em até 15 minutos.

Principais funcionalidades e diferenciais Elven Platform

  • Cobrança em Reais com emissão de NF ou outras moedas
  • Emissão de Invoice de consumo
  • Pagamento em Cartão de crédito, Boleto ou Pix
  • Atendimento em Português e inglês
  • Fácil de integrar e configurar
  • Apoio no momento de setup

 

Principais funcionalidades Gestão Incidentes

  • Call Rotation
  • Centralização dos alertas
  • Centralização dos incidentes
  • Abertura de incidente manual
  • Atualização do incidente
  • Escala de plantão inteligente sem limites
  • Post-mortem por incidente
  • Dash com as principais métricas
  • Notificações nos canais de comunicação (Slack, Discord, WhatsApp) entre outros
  • War-room por incidente (Slack)
  • Integração com ferramenta de ITSM (ServiceNOW, Jira)

 

Principais funcionalidades Status Page

  • Status page pública
  • Status page privada com área logada
  • Status page de monitoramento sintético
  • Métricas de Uptime em %
  • Histórico dos incidentes
  • Customização do logo
  • URL customizada
  • Subscribers

 

Principais funcionalidades Monitoramento

  • Monitoramento via webhook hit/failure e timing
  • Indicadores de disponibilidade SRE
  • Indicadores DORA
  • Monitoramento ativo de aplicação
  • Monitoramento de componentes (banco de dados, fila, cache) entre outros
  • Matriz de confiabilidade
  • Error budget
  • Integração com GitHub e Bitbucket
  • Timeline com últimas atualizações
  • Monitoramento sintético
  • Dash com as principais métricas 

O Synthetic Monitoring Center é uma ferramenta projetada para facilitar a visualização e gerenciamento de forma eficiente. Este guia oferece um overview das funcionalidades de filtragem disponíveis para otimizar o monitoramento.

No Synthetic Monitoring, os filtros são utilizados para visualizar e gerenciar diferentes estados de forma eficiente. Abaixo estão as categorias de filtros disponíveis: 

  • All: Exibe todos as Synthetic Monitoring, independentemente do seu status. 

  • Inactive: Mostra apenas os Synthetic Monitoring que estão inativos. 

  • Success: Filtra e mostra apenas os Synthetic Monitoring que retornaram Success. 

  • Pending: Lista os Synthetic Monitoring que estão pendentes, aguardando alguma ação ou decisão. 

  • Error: Mostra os Synthetic Monitoring que apresentam algum error. 

  •  

Cada filtro permite que você foque em recursos específicos, facilitando a gestão e acompanhamento conforme necessário. 

 

Além de filtrar os Synthetic Monitoring por status, você também pode visualizá-los com base em diferentes intervalos de tempo. As opções de período disponíveis são: 

  • All: Mostra os recursos de todos os períodos. 

  • Last Day: Exibe os recursos que tiveram atividades nas últimas 24 horas. 

  • Last Week: Filtra os recursos com atividades na última semana. 

  • Last Month: Lista os recursos que foram ativos no último mês. 

  • Last Year: Mostra os recursos que tiveram atividades no último ano. 

Esses filtros de tempo ajudam a analisar as tendências e mudanças no uso dos recursos ao longo de diferentes períodos, facilitando a tomada de decisão e o planejamento estratégico. 

A opção Custom Range oferece flexibilidade máxima ao permitir que você defina um intervalo de datas e horários específicos para o monitoramento. Aqui está como utilizá-lo: 

  1. Start Date: Selecione a data e o horário de início do intervalo. 

  1. End Date: Escolha a data e o horário de término do intervalo. 

Após definir os parâmetros desejados: 

  • Clique em Apply Time Range para aplicar o filtro. 

  • Se desejar cancelar as seleções feitas, clique em Cancel. 

Esta funcionalidade é ideal para análises precisas e detalhadas, permitindo acompanhar atividades em períodos específicos ajustados conforme sua necessidade. 

Rolar para cima