|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
SUSE® Observability
Introdução
SUSE® Observability, anteriormente conhecido como StackState, pode ser usado para observabilidade de seus clusters Kubernetes e suas cargas de trabalho.
A instalação do SUSE® Observability, da extensão de interface do usuário SUSE® Observability e dos Agentes SUSE® Observability leva cerca de 30 minutos no total.
Obtendo ajuda
Para suporte, por favor, registre um caso de suporte no SUSE Customer Center (SCC).
Pré-requisitos
Chave de licença
Uma chave de licença para o servidor SUSE® Observability pode ser obtida através do SUSE Customer Center na aba de assinatura e será exibida como "SUSE® Observability" Código de Registro. Esta licença é válida até o final da sua assinatura do Rancher Prime.
Requisitos
Para instalar o SUSE® Observability, certifique-se de que o cluster tenha capacidade suficiente de CPU e memória. Abaixo estão os requisitos específicos.
Existem diferentes opções de instalação disponíveis para o SUSE® Observability. É possível instalar o SUSE® Observability tanto em uma configuração de Alta Disponibilidade (HA) quanto em uma instância única (não-HA). A configuração não-HA é recomendada para fins de teste ou ambientes pequenos. Para ambientes de produção, é recomendado instalar o SUSE® Observability em uma configuração HA.
A configuração de produção HA pode suportar de 150 até 4000 nós observados. Um nó observado nesta tabela de dimensionamento é considerado como 4 vCPUs e 16GB de memória, nosso default node size.
Se os nós em seu cluster observado forem maiores, eles podem contar como múltiplos default nodes, então um nó de 12vCPU e 48GB conta como 3 default nodes sob observação ao escolher um perfil.
A configuração não-HA pode suportar até 100 default nodes sob observação.
A tabela a seguir descreve os recursos necessários para implantar o servidor SUSE® Observability em um cluster, dada a quantidade de default nodes que será observada e se a instalação deve ser HA ou não.
| trial | 10 non-HA | 20 non-HA | 50 non-HA | 100 non-HA | 150 HA | 250 HA | 500 HA | 4000 HA | |
|---|---|---|---|---|---|---|---|---|---|
Solicitações de CPU (núcleos) |
6.945 |
6.945 |
9.245 |
13.945 |
23.545 |
49.245 |
61.245 |
84.745 |
210.05 |
Limites de CPU (núcleos) |
15.02 |
15.02 |
19.32 |
28.72 |
47.87 |
104 |
127 |
175.38 |
278.95 |
Requisições de Memória |
23180Mi |
23180Mi |
27056Mi |
31582Mi |
48088Mi |
129958Mi |
142426Mi |
161106Mi |
264330Mi |
Limites de Memória |
23718Mi |
23718Mi |
27708Mi |
31614Mi |
48120Mi |
134762Mi |
147030Mi |
165910Mi |
327550Mi |
Armazenamento |
153613Mi |
338957Mi |
379917Mi |
482317Mi |
533517Mi |
2654430Mi |
2756950Mi |
3678260Mi |
7159862Mi |
| É necessário um adicional de 20% de recursos para distribuição desigual de pods, plano de controle e instalações de agentes. |
|
O requisito mostrado para o arquivo de controle representa a quantidade total de recursos necessários para executar o servidor SUSE® Observability. Para garantir que todos os diferentes serviços do servidor SUSE Observability possam ser alocados:
|
|
Uma configuração trial é uma configuração de 10-nonha, configurada com uma retenção de 3 dias e requisitos menores de espaço em disco. |
Esses são apenas os limites superior e inferior dos recursos que podem ser consumidos pelo SUSE® Observability nas diferentes opções de instalação. O uso real de recursos dependerá das funcionalidades utilizadas, limites de recursos configurados e padrões de uso dinâmico, como escalonamento de Deployment ou DaemonSet. Para nossos clientes do Rancher Prime, recomendamos começar com os requisitos padrão e monitorar o uso de recursos dos componentes SUSE® Observability.
|
Os requisitos mínimos não incluem capacidade de CPU/Memória reserva para garantir atualizações contínuas suaves da aplicação. |
Armazenamento
SUSE® Observability utiliza solicitações de volume persistente para os serviços que precisam armazenar dados. A classe de armazenamento padrão para o cluster será utilizada para todos os serviços, a menos que isso seja substituído por valores especificados na linha de comando ou em um arquivo values.yaml. Todos os serviços vêm com um tamanho de volume pré-configurado que deve ser bom para você começar, mas pode ser personalizado mais tarde usando variáveis conforme necessário.
|
SUSE® Observability requer que o armazenamento subjacente seja baseado em memória flash (SSD) ou similar em desempenho. |
|
Para ambientes de produção, NFS não é recomendado e suportado para provisionamento de armazenamento em SUSE® Observability devido ao risco potencial de corrupção de dados. |
Para nossos diferentes arquivos de controle de instalação, os seguintes são os requisitos de armazenamento padrão:
| trial | 10 non-HA | 20 non-HA | 50 non-HA | 100 non-HA | 150 HA | 250 HA | 500 HA | 4000 HA | |
|---|---|---|---|---|---|---|---|---|---|
Retenção (dias) |
3 |
30 |
30 |
30 |
30 |
30 |
30 |
30 |
30 |
Requisito de armazenamento |
125 GB |
280GB |
420 GB |
420 GB |
600 GB |
2TB |
2TB |
2,5 TB |
5,5 TB |
Para mais detalhes sobre os padrões utilizados, veja a página Configurar armazenamento.
Helm
SUSE® Observability é instalado através do Helm, que precisa ser instalado com uma versão mínima de 3.13.1.
Os diferentes componentes
SUSE® Observability Servidor
Esta é a parte do servidor hospedado localmente da instalação. Ele contém um conjunto de serviços para armazenar dados de observabilidade:
-
Topologia (StackGraph)
-
Métricas (VictoriaMetrics)
-
Rastreamentos (ClickHouse)
-
Logs (ElasticSearch)
Além disso, contém um conjunto de serviços para todas as tarefas de observabilidade, por exemplo, Notificações, Gerenciamento de estado, Monitoramento, etc.
SUSE® Observability Agente
O agente leve SUSE® Observability é instalado em seus nós worker downstream. Ele coleta e relata métricas, eventos, rastreamentos e logs, e fornece observabilidade e insights em tempo real, permitindo monitoramento proativo e solução de problemas do seu ambiente de TI.
A versão SUSE® Observability do Agente também usa eBPF como uma maneira leve de monitorar todas as suas cargas de trabalho e sua comunicação. Ele também decodifica os sinais RED (Taxa, Erros e Duração) para a maioria dos protocolos L7 comuns, como TCP, HTTP, TLS, Redis, etc.
Onde instalar o servidor SUSE® Observability
O servidor SUSE® Observability deve ser instalado em seu próprio cluster downstream destinado à Observabilidade. Veja a imagem abaixo como referência.
Para que o SUSE® Observability funcione corretamente, ele precisa:
-
Armazenamento Persistente do Kubernetes estar disponível no cluster de observabilidade para armazenar métricas, eventos, etc.
-
o cluster de observabilidade deve suportar uma maneira de expor o SUSE® Observability em uma URL HTTPS para Rancher, usuários do SUSE® Observability e o agente SUSE® Observability. Isso pode ser feito por meio de uma configuração de Ingress usando um controlador de ingress, alternativamente, um balanceador de carga (em nuvem) para os serviços SUSE® Observability também poderia fazer isso, para mais informações veja a documentação do Rancher.
Pré-instalação
Antes de instalar o servidor SUSE® Observability, uma classe de armazenamento padrão deve ser configurada no cluster onde o servidor SUSE® Observability será instalado:
-
Para k3s: A classe de armazenamento local-path do tipo rancher.io/local-path é criada por padrão.
-
Para EKS, AKS, GKE uma classe de armazenamento é definida por padrão.
-
Para Drivers de Nó RKE2: Nenhuma classe de armazenamento é criada por padrão. Você precisará criar uma antes de instalar SUSE® Observability.
Instalando SUSE® Observability
|
Bom saber Se você criou o cluster usando o Rancher Manager e gostaria de executar os comandos de provisionamento abaixo a partir de um terminal local em vez do terminal web, basta copiar ou baixar o kubeconfig do painel do cluster, veja a imagem abaixo, e colá-lo (ou colocar o arquivo baixado) em um arquivo que você possa encontrar facilmente, por exemplo, ~/.kube/config-rancher e definir a variável de ambiente KUBECONFIG=$HOME/.kube/config-rancher |
Após atender aos pré-requisitos, você pode prosseguir com a instalação. A instalação ainda NÃO ESTÁ DISPONÍVEL na loja de aplicativos. Em vez disso, você pode instalar SUSE® Observability via o shell kubectl do cluster.
Agora você pode seguir as instruções abaixo para uma configuração HA ou NÃO-HA.
|
Esteja ciente de que a atualização ou downgrade de HA para NÃO-HA e vice-versa ainda não é suportado. |
Instalação
-
Obtenha o Helm chart
helm_repo.shhelm repo add suse-observability https://charts.rancher.com/server-charts/prime/suse-observability helm repo update -
Crie a configuração e implante
-
Método recomendado
-
Método legado (Descontinuado)
O método de configuração
global.suseObservabilityestá disponível a partir da versão2.8.0. Para versões anteriores, use o método legado.Crie um arquivo
values.yamlcom sua configuração:global: # Optional: Override image registry (defaults to registry.rancher.com) # Only needed for air-gapped environments or custom registries # imageRegistry: "your-private-registry.example.com" suseObservability: # Required: Your {stackstate-product-name} license key license: "YOUR-LICENSE-KEY" # Required: Base URL for {stackstate-product-name} baseUrl: "https://observability.example.com" # Required: Sizing profile # Available: trial, 10-nonha, 20-nonha, 50-nonha, 100-nonha, # 150-ha, 250-ha, 500-ha, 4000-ha sizing: profile: "150-ha" # Required: Plain text Admin password adminPassword: "your-password" # Instead of adminPassword you can provide a bcrypt hashed password with adminPasswordBcrypt # Generate with: htpasswd -bnBC 10 "" "your-password" | tr -d ':\n' # adminPasswordBcrypt: "$2a$10$..." # Optional: Receiver API key (auto-generated if not provided) # receiverApiKey: "your-receiver-api-key" # Optional: Affinity for pod scheduling (see affinity documentation) # affinity: # nodeAffinity: ... # podAntiAffinity: # requiredDuringSchedulingIgnoredDuringExecution: trueO
baseUrldeve ser a URL pela qual SUSE® Observability será acessível ao Rancher, usuários e ao agente SUSE® Observability. A URL deve incluir o esquema, por exemplohttps://observability.internal.mycompany.com. Veja também acessando SUSE® Observability.O
sizing.profiledeve ser um dos seguintes: trial, 10-nonha, 20-nonha, 50-nonha, 100-nonha, 150-ha, 250-ha, 500-ha, 4000-ha. Com base neste perfil, os recursos e a configuração são aplicados automaticamente para o modo HA ou não-HA. Atualmente, não é possível mover de um ambiente não-HA para um ambiente HA, então, se você espera que seu ambiente exija a observação de cerca de 150 nós, selecione um perfil HA imediatamente.Implante com um único comando:
helm_deploy.shhelm upgrade --install \ --namespace suse-observability \ --create-namespace \ --values values.yaml \ suse-observability \ suse-observability/suse-observabilityAlternativamente, implante diretamente usando as flags
--setsem um arquivo de valores:helm upgrade --install \ --namespace suse-observability \ --create-namespace \ --set global.suseObservability.license="YOUR-LICENSE-KEY" \ --set global.suseObservability.baseUrl="https://observability.example.com" \ --set global.suseObservability.sizing.profile="150-ha" \ --set global.suseObservability.adminPassword='$2a$10$...' \ suse-observability \ suse-observability/suse-observabilityUsar uma única senha padrão é ótimo para começar com SUSE® Observability, mas para uma configuração de produção, opções de autenticação mais seguras estão disponíveis.
Para opções de configuração de afinidade, consulte Configurar Afinidades do Kubernetes.
Este método está descontinuado. Para novas instalações, use o método recomendado acima. Para instalações existentes que utilizam este método, consulte o guia de migração para transitar para o novo formato de configuração.
Gere arquivos de valores do helm chart:
helm_template.shexport VALUES_DIR=. helm template \ --set license='<your license>' \ --set baseUrl='<suse-observability-base-url>' \ --set rancherUrl='<rancher-prime-base-url>' \ --set sizing.profile='<sizing.profile>' \ suse-observability-values \ suse-observability/suse-observability-values --output-dir $VALUES_DIRO
baseUrldeve ser a URL pela qual SUSE® Observability será acessível ao Rancher, usuários e ao agente SUSE® Observability. A URL deve incluir o esquema, por exemplohttps://observability.internal.mycompany.com. Veja também acessando SUSE® Observability.Para ver informações de saúde no Rancher usando a extensão da interface do usuário, defina o valor
rancherUrlpara a URL do Rancher (para ser preciso, sua Origem).Este comando gera os arquivos
$VALUES_DIR/suse-observability-values/templates/baseConfig_values.yaml,$VALUES_DIR/suse-observability-values/templates/sizing_values.yamle$VALUES_DIR/suse-observability-values/templates/affinity_values.yamlcontendo a configuração necessária para instalar o Helm Chart SUSE® Observability.A senha do administrador SUSE® Observability será gerada automaticamente pelo comando acima e será exibida como comentários no arquivo
basicConfig.yamlgerado. Para mais informações, consulte senha única. Os valores reais contêm os hashesbcryptdessas senhas para que sejam armazenados de forma segura na liberação do Helm no cluster.Usar uma única senha padrão é ótimo para começar com SUSE® Observability, mas para uma configuração de produção, opções de autenticação mais seguras estão disponíveis.
Armazene os arquivos gerados
basicConfig.yaml,sizing_values.yamleaffinity_values.yamlcom segurança. Você pode reutilizar esses arquivos para atualizações, o que economiza tempo e garante que SUSE® Observability continue a usar a mesma chave de API. Isso é desejável, pois significa que os Agentes e outros provedores de dados para SUSE® Observability não precisarão ser atualizados. Os arquivos podem ser regenerados independentemente usando os switchesbasicConfig.generate=falseesizing.generate=falsepara desativar qualquer um deles, mantendo a versão previamente gerada do arquivo emoutput-dir.O gráfico de Valores SUSE® Observability gera configurações de afinidade que você pode usar com o gráfico principal SUSE® Observability para controlar o comportamento de agendamento de pods. Consulte Configurar Afinidades do Kubernetes para mais informações.
-
Configure SUSE® Observability para usar o Rancher como um provedor OIDC.
Generate the `oidc_values.yaml`. This guide assumes that you save it in the `$VALUES_DIR`
$VALUES_DIR/oidc_values.yamlstackstate: authentication: rancher: clientId: "<oidc-client-id>" secret: "<oidc-secret>" baseUrl: "<rancher-url>"Esta etapa é necessária se você planeja usar o RBAC do Rancher para limitar a visibilidade nos clusters downstream. Para uma explicação mais detalhada sobre como configurar SUSE® Observability para usar o Rancher como um provedor OIDC, veja Configurar SUSE® Observability para usar o Rancher como um provedor OIDC.
-
Implantar o gráfico helm SUSE® Observability com os valores gerados:
helm_deploy.shhelm upgrade --install \ --namespace suse-observability \ --create-namespace \ --values $VALUES_DIR/suse-observability-values/templates/baseConfig_values.yaml \ --values $VALUES_DIR/suse-observability-values/templates/sizing_values.yaml \ --values $VALUES_DIR/suse-observability-values/templates/affinity_values.yaml \ --values $VALUES_DIR/oidc_values.yaml \ suse-observability \ suse-observability/suse-observability -
Acessando SUSE® Observability
O gráfico Helm SUSE® Observability tem suporte para criar um recurso Ingress para tornar SUSE® Observability acessível fora do cluster. Siga estas instruções para configurar isso quando você tiver um controlador de Ingress no cluster. Certifique-se de que a URL resultante use TLS com um certificado válido, não autoassinado.
Se você preferir usar um balanceador de carga em vez de Ingress, exponha o serviço suse-observability-router. A URL para o balanceador de carga precisa usar um certificado TLS válido, não autoassinado.
Instalando extensões de UI
Para instalar extensões de UI, ative as extensões de UI na UI do Rancher.
Após ativar as extensões de UI, siga estas etapas:
-
Navegue até extensões na UI do Rancher e, na seção "Disponíveis" das extensões, você encontrará a extensão de Observabilidade.
-
Instale a extensão de Observabilidade.
-
Uma vez instalada, no painel esquerdo da UI do Rancher, a seção SUSE® Observability aparece.
-
Navegue até a seção SUSE® Observability e selecione "configurações". Nesta seção, você pode adicionar os detalhes do servidor SUSE® Observability e conectá-lo.
-
Siga as instruções mencionadas na seção Obter um token de serviço abaixo e preencha os detalhes.
Obtenha um token de serviço:
-
Faça login na instância SUSE® Observability.
-
No canto superior esquerdo, selecione CLI.
-
Anote o token da API e instale o CLI SUSE® Observability em sua máquina local.
-
Crie um token de serviço executando
sts service-token create --name suse-observability-extension --roles stackstate-k8s-troubleshooter
Instalando o SUSE® Observability Agente
-
Na interface do SUSE® Observability, abra o menu principal e selecione StackPacks.
-
Selecione o StackPack do Kubernetes.
-
Clique em nova instância e forneça o nome do cluster downstream que você está adicionando. Certifique-se de que o nome do cluster do Rancher corresponda ao nome fornecido aqui. Clique em instalar.
-
Na lista de instruções, encontre a seção que melhor corresponde ao seu cluster.
-
Execute as instruções fornecidas para instalar o agente, estas podem ser executadas no
kubectl shellque você pode abrir para seu cluster via a interface do Rancher. Mas também pode ser executado a partir de uma máquina local se tiver o Helm instalado e estiver autorizado a se conectar ao cluster. -
Após instalar o agente, o cluster será exibido tanto na UI do SUSE® Observability quanto na extensão SUSE Rancher - Observability UI extension.
Privilégios necessários
A implantação do agente SUSE® Observability requer os seguintes privilégios de sistema:
-
hostPID: true: Este privilégio é necessário para associar identificadores de processo (PIDs) aos seus grupos de controle correspondentes (cgroups). Essa associação é essencial para mapear com precisão os processos aos seus respectivos contêineres. -
hostNetwork: true(Opcional): Por padrão, o agente do nó é executado comhostNetwork: truepara facilitar a coleta de dados de métricas abertas de todos os pods configurados no nó sem exigir políticas de rede adicionais. Se desativado, políticas de rede apropriadas devem ser definidas para garantir que o agente possa acessar os endpoints necessários. -
securityContext.privileged: true: Este privilégio elevado é necessário para várias funções críticas. Principalmente, permite que o agente injete programas eBPF (Extended Berkeley Packet Filter) em cada namespace de rede para fins de monitoramento. Também é necessário para ler as tabelas de rastreamento de conexões (conntrack) em todos os namespaces de rede. Embora esta lista não seja exaustiva, o desenvolvimento futuro visa substituir este privilégio amplo por capacidades Linux mais granulares, quando viável.
Além disso, o agente requer que os sockets de tempo de execução do contêiner sejam montados dentro de seu pod. Esta configuração é essencial, pois facilita a comunicação direta com os daemons de tempo de execução do contêiner, que é um pré-requisito para coletar métricas e metadados de todos os contêineres no sistema host.
Modelo PSA Restrito do Rancher
A configuração Rancher-restricted (Modelos de Configuração do Pod Security Admission (PSA)) é uma configuração altamente restritiva que está alinhada com as melhores práticas atuais para proteger pods.
Ao executar o Rancher em um cluster Kubernetes que impõe uma política de segurança restritiva por padrão, existem duas maneiras de instalar o gráfico Helm de Observabilidade da SUSE:
-
Isentar todo o namespace do gráfico, junto com outros namespaces obrigatórios do Rancher.
-
Desativar o contêiner init Elasticsearch privilegiado definindo
elasticsearch.sysctlInitContainer.enabledcomofalse. Isso requer que você aumente manualmente as configurações de memória virtual (vm.max_map_count) nos nós. Veja também Permissões Requeridas do Elasticsearch.
Como o Agente de Observabilidade da SUSE deve ser executado em modo privilegiado, a abordagem recomendada é instalá-lo em um namespace que você planeja isentar da política restritiva.
|
Todos os contêineres do gráfico Helm de Observabilidade da SUSE são configurados com as seguintes
|
Login Único
Para habilitar o Single sign-on com seu próprio provedor de autenticação, por favor veja aqui.
Perguntas frequentes & Observações:
-
É obrigatório instalar um agente SUSE® Observability antes de prosseguir com a adição da extensão da UI?
-
Não, isso não é obrigatório, a extensão da UI pode ser instalada de forma independente.
-
-
É obrigatório instalar o Servidor SUSE® Observability antes de prosseguirmos com as extensões da UI?
-
Sim, isso é obrigatório, pois você precisa fornecer um SUSE® Observability endpoint na configuração.
-
-
Podemos instalar SUSE® Observability em um cluster local ou em um cluster downstream?
-
Ambas as opções são possíveis.
-
-
Para monitorar os clusters downstream, devemos instalar o agente SUSE® Observability da loja de aplicativos ou adicionar uma nova instância da UI SUSE® Observability?
-
Ambas as opções são possíveis, dependendo da preferência do usuário.
-
Problemas Abertos
-
Quando você desinstala e reinstala as extensões de UI para Observabilidade, notamos que o token de serviço não é excluído e é reutilizado após a reinstalação. Sempre que desinstalamos as extensões, o token de serviço deve ser removido.
-
Essas informações devem ser excluídas quando as extensões de UI são desinstaladas.
-
-
Após a instalação das extensões, a SUSE® Observability UI é aberta na mesma aba que a UI do Rancher.
-
Você pode usar shift-click para abrir em uma nova aba, isso se tornará o comportamento padrão.
-
-
Esteja ciente de que a atualização ou downgrade de HA para NÃO-HA e vice-versa ainda não é suportado.
Solução de problemas
Para quaisquer dúvidas sobre a instalação da extensão de UI para Observabilidade, consulte Guia de solução de problemas da extensão.