|
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. |
Seletores e Configurações de Scrape
|
Rancher-Istio foi descontinuado desde o Rancher v2.12.0; recorra à SUSE Application Collection versão do Istio para segurança aprimorada (incluída nas assinaturas do SUSE Rancher Prime). Informações detalhadas podem ser encontradas em este anúncio. |
O aplicativo de Monitoramento define prometheus.prometheusSpec.ignoreNamespaceSelectors=false, que habilita o monitoramento em todos os namespaces por padrão.
Isso garante que você possa visualizar tráfego, métricas e gráficos para recursos implantados em um namespace com o rótulo istio-injection=enabled.
Se você deseja limitar o Prometheus a namespaces específicos, defina prometheus.prometheusSpec.ignoreNamespaceSelectors=true. Uma vez que você fizer isso, deve realizar algumas configurações adicionais para continuar monitorando seus recursos.
Limitando o Monitoramento a Namespaces Específicos definindo ignoreNamespaceSelectors como Verdadeiro
Para limitar o monitoramento a namespaces específicos, você editará a opção do Helm chart ignoreNamespaceSelectors. Você configurará esta opção ao instalar ou atualizar o Helm chart de Monitoramento:
-
Ao instalar ou atualizar o Helm chart de Monitoramento, edite o values.yml e defina
prometheus.prometheusSpec.ignoreNamespaceSelectors=true. -
Complete a instalação ou atualização.
Resultado: O Prometheus será limitado a namespaces específicos, o que significa que uma das seguintes configurações precisará ser configurada para continuar visualizando dados em vários painéis.
Habilitando o Prometheus a Detectar Recursos em Outros Namespaces
Existem duas maneiras diferentes de habilitar o Prometheus a detectar recursos em outros namespaces quando prometheus.prometheusSpec.ignoreNamespaceSelectors=true:
-
Monitorando namespaces específicos: Adicione um Monitor de Serviço ou Monitor de Pod no namespace com os alvos que você deseja coletar.
-
Monitorando entre namespaces: Adicione um
additionalScrapeConfigà sua instância de rancher-monitoring para coletar todos os alvos em todos os namespaces.
Monitoramento de Namespaces Específicos: Crie um Monitor de Serviço ou Monitor de Pod
Esta opção permite que você defina quais serviços ou pods específicos você gostaria de monitorar em um namespace específico.
A desvantagem de usabilidade é que você precisa criar o ServiceMonitor ou PodMonitor por namespace, uma vez que não é possível monitorar entre namespaces.
|
Pré-requisitos:
Defina um ServiceMonitor ou PodMonitor para |
-
Clique em ☰ > Gerenciamento de Cluster.
-
Vá para o cluster que você criou e clique em Explorar.
-
Na barra de navegação superior, abra o shell do kubectl.
-
Se o arquivo ServiceMonitor ou PodMonitor estiver armazenado localmente em seu cluster, em
kubectl create -f <name of service/pod monitor file>.yaml. -
Se o ServiceMonitor ou PodMonitor não estiver armazenado localmente, execute `cat<< EOF | kubectl apply -f -`, cole o conteúdo do arquivo no terminal e, em seguida, execute
EOFpara completar o comando. -
Execute
kubectl label namespace <your namespace> istio-injection=enabledpara habilitar a injeção do sidecar envoy.
Resultado: <your namespace> pode ser coletado pelo Prometheus.
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: envoy-stats-monitor
namespace: istio-system
labels:
monitoring: istio-proxies
spec:
selector:
matchExpressions:
- {key: istio-prometheus-ignore, operator: DoesNotExist}
namespaceSelector:
any: true
jobLabel: envoy-stats
endpoints:
- path: /stats/prometheus
targetPort: 15090
interval: 15s
relabelings:
- sourceLabels: [__meta_kubernetes_pod_container_port_name]
action: keep
regex: '.*-envoy-prom'
- action: labeldrop
regex: "__meta_kubernetes_pod_label_(.+)"
- sourceLabels: [__meta_kubernetes_namespace]
action: replace
targetLabel: namespace
- sourceLabels: [__meta_kubernetes_pod_name]
action: replace
targetLabel: pod_name
Monitoramento entre namespaces: Defina ignoreNamespaceSelectors como Falso
Isso habilita o monitoramento entre namespaces, fornecendo ao Prometheus configurações adicionais de coleta.
A desvantagem de usabilidade é que todos os additionalScrapeConfigs do Prometheus são mantidos em um único Secret. Isso pode dificultar a atualização se o monitoramento já estiver implantado com additionalScrapeConfigs antes de instalar o Istio.
-
Ao instalar ou atualizar o Helm chart de Monitoramento, edite o values.yml e defina o array
prometheus.prometheusSpec.additionalScrapeConfigspara o Configuração de Coleta Adicional fornecido abaixo. -
Complete a instalação ou a atualização.
Resultado: Todos os namespaces com o rótulo istio-injection=enabled serão coletados pelo Prometheus.
- job_name: 'istio/envoy-stats'
scrape_interval: 15s
metrics_path: /stats/prometheus
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_container_port_name]
action: keep
regex: '.*-envoy-prom'
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:15090
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: pod_name