|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
セレクターとスクレイプ設定
|
Rancher-IstioはRancher v2.12.0以降廃止されました。セキュリティを強化するために、 SUSE Application CollectionのIstioビルドに切り替えてください(SUSE Rancher Primeサブスクリプションに含まれています)。 詳細情報は この発表にあります。 |
モニタリングアプリは`prometheus.prometheusSpec.ignoreNamespaceSelectors=false`を設定し、これによりデフォルトで全てのネームスペースの監視が可能になります。
これにより、`istio-injection=enabled`ラベルが付けられたネームスペースにデプロイされたリソースのトラフィック、メトリクス、グラフを表示できます。
Prometheusを特定のネームスペースに制限したい場合は、`prometheus.prometheusSpec.ignoreNamespaceSelectors=true`を設定してください。これを行うと、リソースの監視を続けるために追加の設定を行う必要があります。
ignoreNamespaceSelectorsをTrueに設定して特定のネームスペースに監視を制限する
特定のネームスペースに監視を制限するには、ignoreNamespaceSelectors Helmチャートオプションを編集します。モニタリングHelmチャートをインストールまたはアップグレードする際に、このオプションを設定します:
-
モニタリングHelmチャートをインストールまたはアップグレードする際に、values.ymlを編集し、
prometheus.prometheusSpec.ignoreNamespaceSelectors=trueを設定します。 -
インストールまたはアップグレードを完了します。
*結果:*Prometheusは特定のネームスペースに制限されるため、さまざまなダッシュボードでデータを表示し続けるために、次のいずれかの設定を行う必要があります。
Prometheusが他のネームスペースのリソースを検出できるようにする
`prometheus.prometheusSpec.ignoreNamespaceSelectors=true`の際に、Prometheusが他のネームスペースのリソースを検出できるようにする方法は2つあります:
-
*特定のネームスペースの監視:*スクレイプしたいターゲットがあるネームスペースにサービスモニターまたはポッドモニターを追加します。
-
*ネームスペース間の監視:*すべてのネームスペースのすべてのターゲットをスクレイプするために、rancher-monitoringインスタンスに`additionalScrapeConfig`を追加します。
特定のネームスペースの監視:サービスモニターまたはポッドモニターを作成する
このオプションにより、特定のネームスペースで監視したい特定のサービスやポッドを定義できます。
使いやすさのトレードオフは、ネームスペースをまたいで監視できないため、ネームスペースごとにサービスモニターまたはポッドモニターを作成する必要があることです。
|
前提条件:
`<your namespace>`のためにServiceMonitorまたはPodMonitorを定義してください。以下に例としてServiceMonitorを示します。 |
-
*☰ > クラスター管理*をクリックします。
-
作成したクラスターに移動し、*探索*をクリックします。
-
上部のナビゲーションバーで、kubectl シェルを開きます。
-
ServiceMonitorまたはPodMonitorファイルがクラスター内にローカルに保存されている場合、`kubectl create -f <name of service/pod monitor file>.yaml`にあります。
-
ServiceMonitorまたはPodMonitorがローカルに保存されていない場合は、`cat<< EOF | kubectl apply -f -`を実行し、ファイルの内容をターミナルに貼り付けてから、`EOF`を実行してコマンドを完了してください。
-
`kubectl label namespace <your namespace> istio-injection=enabled`を実行して、envoyサイドカーの注入を有効にします。
結果: `<your namespace>`は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
ネームスペースをまたいだ監視:ignoreNamespaceSelectorsをFalseに設定します。
これにより、Prometheusに追加のスクレイプ設定を提供することで、ネームスペースをまたいだ監視が可能になります。
使いやすさのトレードオフは、Prometheusのすべての`additionalScrapeConfigs`が単一のSecretに保持されることです。これは、Istioをインストールする前にadditionalScrapeConfigsで監視がすでにデプロイされている場合、アップグレードが困難になる可能性があります。
-
Monitoring Helmチャートをインストールまたはアップグレードする際は、values.ymlを編集し、`prometheus.prometheusSpec.additionalScrapeConfigs`配列を以下に示す*追加のスクレイプ設定*に設定してください。
-
インストールまたはアップグレードを完了します。
結果:`istio-injection=enabled`ラベルを持つすべてのネームスペースは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