Promethues(H)監視kubernetes

プロメテウス関連サービスは、この名前空間の監視に配備されています

サービス展開プロメテウス

  1. 名前空間を作成します。

    $ cd /opt/k8s/prometheus
    $ cat>1-namespace.yml<<EOF
    apiVersion: v1
    kind: Namespace
    metadata:
      name: monitoring
    EOF
    
    
  2. プロメテウス対応するコンフィギュレーションファイル、ConfigMapの使用kubernetesを作成します

    $ cd /opt/k8s/prometheus 
    $ cat>2-prom-cnfig.yml<<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: prom-config
      namespace: monitoring
    data:
      prometheus.yml: |
        global:
          scrape_interval: 15s
          scrape_timeout: 15s
        scrape_configs:
        - job_name: 'prometheus'
          static_configs:
          - targets: ['localhost:9090']
    EOF
    
    
  3. データを格納するために作成されたPVのプロメテウスは、PVC(ローカルストレージを使用してはGlusterFs等、分散ファイルシステムNFSを構築することによって置き換えることができます)

    $ cd /opt/k8s/prometheus
    $ cat>3-prom-pv.yml<<EOF
    kind: PersistentVolume
    apiVersion: v1
    metadata:
      namespace: monitoring
      name: prometheus
      labels:
        type: local
        app: prometheus
    spec:
      capacity:
        storage: 10Gi
      accessModes:
        - ReadWriteOnce
      hostPath:
        path: /opt/k8s/prometheus/data
    ---
    
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      namespace: monitoring
      name: prometheus-claim
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi 
    EOF
    
    
  4. プロメテウスは、サービスNodePortの種類によって展開、外部アクセスの展開フォームにブートファイルを作成します

    $ cd /opt/k8s/prometheus
    $ cat>4-prometheus.yml<<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: prometheus
      namespace: monitoring
      labels:
        app: prometheus
    spec:
      selector:
        matchLabels:
          app: prometheus
      replicas: 1
      template:
        metadata:
          labels:
            app: prometheus
        spec:
          containers:
          - name: prometheus
            image: prom/prometheus:v2.16.0
            args:
            - '--config.file=/etc/prometheus/prometheus.yml'
            - '--storage.tsdb.path=/prometheus'
            - "--storage.tsdb.retention=7d"
            - "--web.enable-lifecycle"
            ports:
            - containerPort: 9090
            volumeMounts:
            - mountPath: "/prometheus"
              subPath: prometheus
              name: data
            - mountPath: "/etc/prometheus"
              name: config
            resources:
              requests:
                cpu: 500m
                memory: 2Gi
              limits:
                cpu: 500m
                memory: 2Gi
          volumes:
          - name: config
            configMap:
              name: prom-config
          - name: data
            persistentVolumeClaim:
              claimName: prometheus-claim
    	     
    ---
    apiVersion: v1
    kind: Service
    metadata:
      namespace: monitoring
      name: prometheus
    spec:
      type: NodePort
      ports:
        - port: 9090
          targetPort: 9090
          nodePort: 9090
      selector:
        app: prometheus
       
    EOF
    
    
    • プロメテウスにパラメータstorage.tsdb.pathを渡し、コマンドを起動し、storage.tsdb.retentionプロメテウスは、経路データ記憶、蓄積時間を指定します
    • web.enable・ライフサイクルの構成情報の後ときに変更することによって/ - /リロードサービスを再起動することなく、新しい設定内容をリロードします
  5. スタートプロメテウスサービス

    $ cd /opt/k8s/prometheus
    $ mkdir data & chmod -R 777 data
    $ kubectl create -f 1-namespace.yml -f 2-prom-cnfig.yml -f 3-prom-pv.yml -f 4-prometheus.yml
    
    
  6. すべてのサービスが正常に起動することを確実にするために、コンポーネントのステータスを表示します

    $ kubectl get all -n monitoring
    NAME                              READY   STATUS    RESTARTS   AGE
    pod/prometheus-57cf64764d-xqnvl   1/1     Running   0          51s
    
    NAME                 TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
    service/prometheus   NodePort   10.254.209.164   <none>        9090:9090/TCP   51s
    
    NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/prometheus   1/1     1            1           51s
    
    NAME                                    DESIRED   CURRENT   READY   AGE
    replicaset.apps/prometheus-57cf64764d   1         1         1       51s
    
    
  7. インターフェイスのアクセス

監視Kubernetesおよび関連技術

  • cAdvisor Googleのオープンソース容器モニタリングプログラム、resutful APIのの外形に提供されるリソース、パフォーマンス関連のさまざまな情報を使用して、コンテナ自体を集めます。外部コールのポッドの単位でkubeletに対応する機能に統合cAdvisorのでない直接kubeletから、別々が展開され、さらに容器kubelet要約情報を、kubernetes。
  • メトリックサーバは、プロセスを監視コア成分kubernetesあるHeapster代替で、インターフェースkubelet指標から情報を得るために、主にCPU、メモリ、およびその後APIサーバーによって露出されます。主にkubectlトップのために、HPAおよびその他のkubernetesコンポーネントが使用しています。最後買収インデックス情報を格納するためのメモリでは、データストレージのための責任を負いません
  • KUBE-状態メトリック Serverは、このような展開として、状態指標のリソースオブジェクト、レプリカセットなどについて生成APIを聴くこともできます。最後買収インデックス情報を格納するためのメモリでは、データストレージのための責任を負いません
  • ノードエクスポータ公式コレクションプロメテウス* NIXシステム自体、ならびに対応するハードウェアを提供するように設計されたインデックス情報、
  • KUBE-プロメテウスプログラムの監視を停止kubernetesは、ノード・輸出、プロメテウス、kube-状態メトリック、Grafana、メトリック・サーバーおよびその他のコンポーネントはすぐに完全な監視プラットフォームを構築するためのユーザーのためのより便利なスクリプトを提供し、収集しました。

kubernetesは、コンテンツを監視します

  • そのようなノード自身のCPU、メモリ、IO、ネットワークおよびその他の情報として、クラスタ自体の状態を監視
  • このような自己組織化kubernetes KUBEスケジュールマネージャ、KUBEプロキシ、kubelet等のモニターシステム
  • クラスタの動作CPUユニット、メモリ情報として、容器、コンテナ、ポッドを監視
  • など展開、Daemonsetとしてオーケストレーション構成要素に対応するクラスタ索引を監視

本論文では、配備するコンポーネントの独自の形式は、監視プラットフォームをセットアップする方法をステップバイステップを参照してください。すぐに参照することができ、構築することが必要であるKUBE-プロメテウス

ノード・輸出国の展開

各ノードを監視するために、コントローラが使用するDaemonsetノード-輸出を展開するように、ポッド内の各ノードで実行

  1. スタートアップファイル

    $ cd /opt/k8s/prometheus
    $ cat>5-node-exporter.yml<<EOF
    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      labels:
        app: node-exporter
      name: node-exporter
      namespace: monitoring
    spec:
      selector:
        matchLabels:
          app: node-exporter
      template:
        metadata:
          labels:
            app: node-exporter
        spec:
          containers:
          - name: node-exporter
            image: 192.168.0.107/prometheus/node-exporter:v0.18.1
            args:
            - --web.listen-address=:9100
            - --path.procfs=/host/proc
            - --path.sysfs=/host/sys
            - --path.sysfs=/host/sys
            - --path.rootfs=/host/root
            - --no-collector.hwmon
            - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+)($|/)
            - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$
            resources:
              limits:
                cpu: 250m
                memory: 180Mi
              requests:
                cpu: 102m
                memory: 180Mi
            ports:
            - containerPort: 9100
            volumeMounts:
            - mountPath: /host/proc
              name: proc
              readOnly: false
            - mountPath: /host/sys
              name: sys
              readOnly: false
            - mountPath: /host/root
              mountPropagation: HostToContainer
              name: root
              readOnly: true
          hostNetwork: true
          hostPID: true
          nodeSelector:
            kubernetes.io/os: linux
          securityContext:
            runAsNonRoot: true
            runAsUser: 65534
          
          tolerations:
          - operator: Exists
          volumes:
          - hostPath:
              path: /proc
            name: proc
          - hostPath:
              path: /sys
            name: sys
          - hostPath:
              path: /
            name: root
      
    EOF
    
    
  2. 開始ノード、輸出国

    $ cd /opt/k8s/prometheus
    $ kubectl create -f 5-node-exporter.yml 
    $ kubectl -n monitoring get pod | grep node
    node-exporter-854vr           1/1     Running   6          50m
    node-exporter-lv9pv           1/1     Running   0          50m
    
    
  3. プロメテウスによってインジケータ情報ノード輸出を収集します

    動的拡張理由と静的構成の形で不都合は、プロメテウスは、私たちはサービス発見機能はKubernetesの動的監視を可能にする対応Kubernetes提供するように、後にノードクラスタを低減することができます。前記ノード発見モードによって監視サービス・ノード、さらにプロメテウス設定ファイルを次の(2-PROM-cnfig.ymlに対応し、またそうでなければ再構成Configmap情報が失われることになる、追加する必要があります)

    $ kubectl -n monitoring edit configmaps prom-config
    
    
    - job_name: "kubernetes-nodes"
        kubernetes_sd_configs:
        - role: node
        relabel_configs:
        - source_labels: [__address__]
          regex: '(.*):10250'
          replacement: '${1}:9100'
          target_label: __address__
          action: replace
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)
    
    

    追加の完了がなぜこのような構成のように、設定項目を再ロードするには、次のコマンドを実行した後、後部の構成原理は特定を説明します

    $ curl -XPOST http://192.168.0.107:9090/-/reload
    
    

    この時点では、プロメテウスのクラスタノードでは、次のエラーメッセージが表示されています、promethesログ情報を参照して、情報を取得しようとします

    level=error ts=2020-03-22T10:37:13.856Z caller=klog.go:94 component=k8s_client_runtime func=ErrorDepth msg="/app/discovery/kubernetes/kubernetes.go:333: Failed to list *v1.Node: nodes is forbidden: User \"system:serviceaccount:monitoring:default\" cannot list resource \"nodes\" in API group \"\" at the cluster scope"
    
    

    リストは、デフォルトのserviceaccount * v1.Nodeを使用することはできませんので、私たちはプロメテウスに再作成serviceaccountする必要があり、適切な権限を与えられたことを意味

  4. プロメテウス対応serviceaccountを作成し、適切な権限を与えられました

    $ cd /opt/k8s/prometheus
    $ cat>6-prometheus-serivceaccount-role.yaml<<EOF
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: prometheus-k8s
      namespace: monitoring
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: prometheus-k8s
    rules:
    - apiGroups: [""]
      resources:
      - nodes/proxy
      - nodes
      - namespaces
      - endpoints
      - pods
      - services
      verbs: ["get","list","watch"]
    - apiGroups: [""]
      resources:
      - nodes/metrics
      verbs: ["get"]
    - nonResourceURLs:
      - /metrics
      verbs: ["get"]
    - apiGroups:
      - extensions
      resources:
      - ingresses
      verbs: ["get", "list", "watch"]
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: prometheus-k8s
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: prometheus-k8s
    subjects:
    - kind: ServiceAccount
      name: prometheus-k8s
      namespace: monitoring
    
    EOF
    
    
    $ cd /opt/k8s/prometheus
    $ kubectl create -f 6-prometheus-serivceaccount-role.yaml
     
    

    プロメテウスは、スタートYAML、追加のserivceaccount構成を変更、プロメテウスを再起動します

    ...
    spec:
      serviceAccountName: prometheus-k8s
      containers:
      - name: prometheus                 
    ...
    
    

    オブジェクトリストを監視ビュープロメテウス

詳細な構成原則kubernetes_sd_config

  1. 送信先アドレスを探します

    ロールkubernetes_sd_configノードの構成である場合、プロメテウス後LISTノードAPI呼び出しのkubernetes取得したノード情報を開始し、監視アドレスを構成するノードオブジェクトからIPとポートを得ます。

    ここで、次の順序InternalIP、ExternalIP、LegacyHostIP、ホスト名でIPのルックアップを取得

    ポート値のデフォルトは、HTTPポートをKubelet。

    情報リストノードインタフェースを表示することができますIPとポートは、次のコマンドを返さ

    $ kubectl get node -o=jsonpath='{range .items[*]}{.status.addresses}{"\t"}{.status.daemonEndpoints}{"\n"}{end}'
    [map[address:192.168.0.107 type:InternalIP] map[address:master type:Hostname]]  map[kubeletEndpoint:map[Port:10250]]
    [map[address:192.168.0.114 type:InternalIP] map[address:slave type:Hostname]]   map[kubeletEndpoint:map[Port:10250]]
    
    

    クラスタ内の戻り結果は、それぞれのアドレスを構成する2つのノード、tagetあります

    192.168.0.107:10250
    192.168.0.114:10250
    
    
  2. relabe_configs

    再ラベルは、データをクロールする前に、プロメテウスのラベルの値を動的に変更することができます。プロメテウスは、デフォルトタグの数を持っており、私たちのいくつかは、次のように対処します

    • __address__:初期化に対応するターゲットアドレスとして設定されます<host>:<port>
    • instance__address__再ラベル付け段階の後にタグの値は、タグに設定されinstanceinstanceある__address__再ラベル付け後のラベルの値
    • __scheme__ デフォルト:HTTP
    • __metrics_path__ デフォルト/メトリック

    宛先アドレス情報のプロメテウスプル指数は、接続するには、いくつかのラベルをつけています__scheme__://instance/__metrics_path__

  3. 我々は、各ノードに、ノードexpeorterを開始:9100/metrics露出ノードのインデックス情報に、次にセグメントプロメテウスの構成に加え

    - job_name: "kubernetes-nodes"
        kubernetes_sd_configs:
        - role: node
        relabel_configs:
        - source_labels: [__address__]
          regex: '(.*):10250'
          replacement: '${1}:9100'
          target_label: __address__
          action: replace
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)
          
    

    前記第一のプロファイルセグメントrelabel_configs

      - source_labels: [__address__]
         regex: '(.*):10250'
         replacement: '${1}:9100'
         target_label: __address__
         action: replace
    
    
    • 正規表現からによる__address__IPアドレスと一致します
    • 交換:に対応する値に設定 ${IP}:9100
    • target_label:__address__値、すなわち、置換に置き換え、${IP}:9100

    これらのステップの後、インデックスアドレスにスプライスを取得[http://192.168.0.107:9100/metrics, http://192.168.0.114:9100/metrics]し、Googleのインデックスノード-輸出暴露試合に取り組むには、ノードのインデックス情報を引き出すことができます

    また、タグプロメテウスに対応するノードになるであろうので__meta_kubernetes_node_label_<labelname>、これを添加labelmapの操作、これらのタグの名前は、それらを復元します

  4. 基準の完全な構成例プロメテウス-kubernetes

追加の指標が提供さkubeleteを収集します

収集特定の情報指標APIサーバー、etcdやその他のサービスをkubelet、次のコマンドで表示することができます

$ kubectl get --raw https://192.168.0.107:10250/metrics 

  • どこ10250はkubeletのデフォルトのリスニングポートです

promehteusがこの情報を引っ張るようにすることを、promehteusで追加設定が続きます

- job_name: "kubernetes-kubelet"
  scheme: https
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
  bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  kubernetes_sd_configs:
  - role: node
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_node_label_(.+)

クラスタコンテナの制御を達成するために追加の収集cAdvisor指標

kubeletは、クラスタ情報収集容器に、cAdvisorデフォルト集積Kubernetes 1.7.3バージョン、その後、インデックス情報は、対応するKubeletからcAdvisor(開始container_)を収集/メトリックはそう除去しましたジョブcAdvisorコレクションの追加設定が必要です。コマンド呼び出しcAdvisor指標

$ kubectl get --raw https://192.168.0.107:6443/api/v1/nodes/master/proxy/metrics/cadvisor 

  • どこ10250はkubeletのデフォルトのリスニングポートです

promehteusがこの情報を引っ張るようにすることを、promehteusで追加設定が続きます

- job_name: "kubernetes-cadvisor"
  scheme: https
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
  bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  kubernetes_sd_configs:
  - role: node
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_node_label_(.+)
  - target_label: __address__
    replacement: kubernetes.default.svc:443
  - source_labels: [__meta_kubernetes_node_name]
    regex: (.+)
    target_label: __metrics_path__
    replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
         

添加が完了した後、設定ファイルを再読み込み、モニタプロメテウスにオブジェクトのリストを表示

完全な設定ファイルは以下の

$ cd /opt/k8s/prometheus
$ cat 2-prom-cnfig.yml
apiVersion: v1
kind: ConfigMap
metadata:
  name: prom-config
  namespace: monitoring
data:
level=info ts=2020-03-22T12:15:02.551Z caller=head.go:625 component=tsdb msg="WAL segment loaded" segment=10 maxSegment=15
  prometheus.yml: |
    global:
      scrape_interval: 15s
      scrape_timeout: 15s
    scrape_configs:
    - job_name: 'prometheus'
      static_configs:
      - targets: ['localhost:9090']
    - job_name: "kubernetes-nodes"
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - source_labels: [__address__]
        regex: '(.*):10250'
        replacement: '${1}:9100'
        target_label: __address__
        action: replace
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
    - job_name: "kubernetes-kubelet"
      scheme: https
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
    - job_name: "kubernetes-cadvisor"
      scheme: https
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      - target_label: __address__
        replacement: kubernetes.default.svc:443
      - source_labels: [__meta_kubernetes_node_name]
        regex: (.+)
        target_label: __metrics_path__
        replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor

部署grafana

  1. データを格納するためのPV grafanaを作成し、PVC(ローカルストレージを使用してはGlusterFs等、分散ファイルシステムNFSを構築することによって置き換えることができます)

    $ cd /opt/k8s/prometheus
    $ cat>7-grafana-pv.yml<<EOF
    kind: PersistentVolume
    apiVersion: v1
    metadata:
      namespace: monitoring
      name: grafana
      labels:
        type: local
        app: grafana
    spec:
      capacity:
        storage: 10Gi
      accessModes:
        - ReadWriteOnce
      hostPath:
        path: /opt/k8s/prometheus/grafana-pvc
    ---
    
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      namespace: monitoring
      name: grafana-claim
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi 
    EOF
    
    
    
  2. grafanaデプロイメントファイル

    $ cd /opt/k8s/prometheus
    $ cat>8-grafana.yml<<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: grafana
      name: grafana
      namespace: monitoring
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: grafana
      template:
        metadata:
          labels:
            app: grafana
        spec:
          containers:
          - image: grafana/grafana:6.6.2
            name: grafana
            ports:
            - containerPort: 3000
              name: http
            readinessProbe:
              httpGet:
                path: /api/health
                port: http
            resources:
              limits:
                cpu: 200m
                memory: 400Mi
              requests:
                cpu: 100m
                memory: 200Mi
            volumeMounts:
            - mountPath: /var/lib/grafana
              name: grafana-pvc
              readOnly: false
              subPath: data
            - mountPath: /etc/grafana/provisioning/datasources
              name: grafana-pvc
              readOnly: false
              subPath: datasources
            - mountPath: /etc/grafana/provisioning/dashboards
              name: grafana-pvc
              readOnly: false
              subPath: dashboards-pro
            - mountPath: /grafana-dashboard-definitions/0
              name: grafana-pvc
              readOnly: false
              subPath: dashboards
          nodeSelector:
            beta.kubernetes.io/os: linux
          securityContext:
            runAsNonRoot: true
            runAsUser: 65534
          volumes:
          - name: grafana-pvc
            persistentVolumeClaim:
              claimName: grafana-claim
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      namespace: monitoring
      name: grafana
    spec:
      type: NodePort
      ports:
        - port: 3000
          targetPort: 3000
          nodePort: 3000
      selector:
        app: grafana
      
    EOF
    
    
  3. スタートgrafana

    1. grafanaをマウントするディレクトリを作成します。

      $ cd /opt/k8s/prometheus
      $ mkdir -p grafana-pvc/data
      $ mkdir -p grafana-pvc/datasources
      $ mkdir -p grafana-pvc/dashboards-pro
      $ mkdir -p grafana-pvc/dashboards
      
      $ chmod -R 777 grafana-pvc
      
      
      • データディレクトリデータ保存grafana
      • 事前定義されたデータ・ソースを格納するデータソース
      • grafana-PVC /ダッシュボード容器のダッシュボードへの設定ファイルアドレスポイントはアドレス/ grafana-ダッシュボード定義/ 0に装着され、前記ダッシュボードを、格納されたダッシュボードプロ管理ファイル
      • ダッシュボードのストレージ実際のダッシュボード定義ファイル(JSON)
    2. デフォルトのデータソースファイルを作成します。

      $ cd /opt/k8s/prometheus/grafana-pvc/datasources
      $ cat > datasource.yaml<<EOF
      apiVersion: 1
      datasources:
      - name: Prometheus
        type: prometheus
        access: proxy
        url: http://prometheus.monitoring.svc:9090
      
      EOF
      
      
    3. デフォルトのファイル管理ダッシュボードを作成します。

      $ cd /opt/k8s/prometheus/grafana-pvc/dashboards-pro
      $ cat >dashboards.yaml<<EOF
      apiVersion: 1
      providers:
      - name: '0'
        orgId: 1
        folder: ''
        type: file
        editable: true
        updateIntervalSeconds: 10
        allowUiUpdates: false
        options:
          path: /grafana-dashboard-definitions/0
      EOF
      
      
    4. デフォルトのダッシュボードの定義ファイルを作成します。

      して共有ダッシュボードのA集、彼らが必要とするダッシュボードテンプレートを見つけ、は/ opt / K8S /プロメテウス/ grafanaに保存されたファイルに対応する対応するJSONファイルダウンロード -pvc /ダッシュボード)を、 ここでは一例として、ダウンロードプロメテウスダッシュボードのために1ノード輸出をv20191102 CN、対応するIDは8919です。

      $ cd /opt/k8s/prometheus/grafana-pvc/dashboards
      $ wget https://grafana.com/api/dashboards/8919/revisions/11/download -o node-exporter-k8s.json
      
      

      デフォルトのテンプレートのデータソースが使用されているので${DS_PROMETHEUS_111}、インタフェースからの輸入代替設定項目があり、我々は、直接私達にファイル、データソースを変更することで、ファイルをダウンロードし、JSON /opt/k8s/prometheus/grafana-pvc/datasourcesデータソースに設定

      $ cd /opt/k8s/prometheus/grafana-pvc/dashboards
      $ sed -i "s/\${DS_PROMETHEUS_111}/Prometheus/g" node-exporter-k8s.json
      
      

      変更タイトル

      ...
      "timezone": "browser",
      "title": "k8s-node-monitoring", 
      
           ...
      
      
    5. スタート

      $ cd /opt/k8s/prometheus/
      $ kubectl create -f 7-grafana-pv.yml 8-grafana.yml 
      
      
  4. ビューへのインターフェイスにより、我々は、デフォルトの設定を超えるデータソース、ダッシュボードやその他の情報を持っているので、あなたが直接対応するダッシュボードを表示することができます

grafanaを展開するとき、私たちは主に監視指標が直接システムの導入後に観察することができ、これらのデフォルトを達成するために、デフォルトのデータソース、ダッシュボードやその他の情報を設定し、実装は、オンサイトの構成を必要としません。
例えばKUBEステートメトリックおよびクラスタ展開、StatefulSet、コンテナを達成cAdvisorメトリックを使用して、他の監視、ポッドモニタリングもこの形で実施することができます。使用できません。1. Kubernetes展開Statefulset Daemonsetメトリックをもはや特定の手順が表示され、少し私たちの監視のニーズを満たすように変更、テンプレートとして、読者は自分で試すことができます。

おすすめ

転載: www.cnblogs.com/gaofeng-henu/p/12555116.html