マイクロサービスモニタPrometheusのインストール導入
8304 ワード
本稿では、k 8 sの下でPrometheus+grafanaの監視環境を構築する方法について説明します.
基本概念
Prometheusは、コンテナとクラウドのオリジナル分野のデータ収集、ストレージ、処理、可視化、アラートの完全なソリューションを提供しています.最初はSoundCloud社が開発しました.2012年のオープンソース以来、コミュニティのメンバーは増加しています.現在のPrometheusはKubernetesに続いて2番目にCNCF財団に正式に加入するプロジェクトに発展している.
Prometheusの特徴は?多次元データモデル(時間系列に基づくk/vキー値対). 柔軟なクエリーおよび集約文(PromQL). は分散型ストレージに依存せず、ノードが自治している. HTTPのpullモードに基づいて時系列データを収集する. はpushgateway(prometheusのオプションミドルウェア)を使用してpushモードを実現することができる. は、動的サービス発見または静的構成を使用して収集されたターゲットマシンを構成することができる. は、さまざまなグラフィックおよびダッシュボードをサポートします.
Prometheusは何を監視できますか? k 8 s、docker、mysql、redis、es、consul、rabbitmq、zabbixなど Prometheusアーキテクチャ図
Prometheusインストールの導入
Helmインストール
Helmはコマンドラインの下にあるクライアントツールです.主にKubernetesアプリケーションChartの作成、パッケージング、パブリッシュ、ローカルおよびリモートのChartウェアハウスの作成および管理に使用されます.
Tillerサーバのインストール
TillerはHelmのサービス・エンドであり、Kubernetesクラスタに配備されています.TillerはHelmの要求を受信し、Chartに従ってKubernetesの配置ファイル(HelmはReleaseと呼ぶ)を生成し、Kubernetes作成アプリケーションにコミットするために使用されます.Tillerはまた、Releaseのアップグレード、削除、ロールバックなどの一連の機能を提供しています.
rbac-configを作成する.yaml
開始
アリクラウドミラーを使用したインストール
結果の表示
Prometheus Operatorの配備
ネームスペースの作成
Prometheus Operatorのダウンロード
ダウンロードした依存パッケージを解凍してprometheus-operatorと名前を変更し、cdこのディレクトリにprometheus関連コンテンツをインストールします.
検証#ケンショウ#
kube-prometheusのインストール
検証#ケンショウ#
grafanaのサービスタイプをNodePortに変更
grafanaのデフォルトポート31106にアクセスします.
インストール手順のリファレンス:https://blog.csdn.net/wangzan18/article/details/85270816
grafanaの各種テンプレートは参考になりますhttps://grafana.com/dashboards
おすすめ読書
SpringCloudラーニングシリーズまとめ どうして一線の大工場の面接は必ずredisに聞いて、何か聞きたいことがありますか? マルチスレッド面接に必要な基礎知識の要約 Java集合ソース分析要約-JDK 1.8 Linux常用コマンド速報-要約編 JVMシリーズ記事要約
ブログのすべての文章は公衆番号《Java学習録》に初発して転載してコードをスキャンして公衆番号に注目して2000 GJava学習資源を受け取ることができます
基本概念
Prometheusは、コンテナとクラウドのオリジナル分野のデータ収集、ストレージ、処理、可視化、アラートの完全なソリューションを提供しています.最初はSoundCloud社が開発しました.2012年のオープンソース以来、コミュニティのメンバーは増加しています.現在のPrometheusはKubernetesに続いて2番目にCNCF財団に正式に加入するプロジェクトに発展している.
Prometheusの特徴は?
Prometheusは何を監視できますか?
Prometheusインストールの導入
Helmインストール
Helmはコマンドラインの下にあるクライアントツールです.主にKubernetesアプリケーションChartの作成、パッケージング、パブリッシュ、ローカルおよびリモートのChartウェアハウスの作成および管理に使用されます.
1
2
3
4
5
6
[root@syj ~]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-rc.2-linux-amd64.tar.gz
[root@syj ~]# tar -zxvf helm-v2.14.0-rc.2-linux-amd64.tar.gz
[root@syj ~]# cp linux-amd64/helm /usr/local/bin/
[root@syj ~]# helm version
Client: &version.Version{SemVer:"v2.13.1-rc.2", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Error: could not find tiller
Tillerサーバのインストール
TillerはHelmのサービス・エンドであり、Kubernetesクラスタに配備されています.TillerはHelmの要求を受信し、Chartに従ってKubernetesの配置ファイル(HelmはReleaseと呼ぶ)を生成し、Kubernetes作成アプリケーションにコミットするために使用されます.Tillerはまた、Releaseのアップグレード、削除、ロールバックなどの一連の機能を提供しています.
rbac-configを作成する.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
開始
1
2
3
[root@syj ~]# kubectl apply -f rbac-config.yaml
serviceaccount/tiller created
clusterrolebinding.rbac.authorization.k8s.io/tiller created
アリクラウドミラーを使用したインストール
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@syj ~]# helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.13.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
Creating /root/.helm
Creating /root/.helm/repository
Creating /root/.helm/repository/cache
Creating /root/.helm/repository/local
Creating /root/.helm/plugins
Creating /root/.helm/starters
Creating /root/.helm/cache/archive
Creating /root/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /root/.helm.
Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
To prevent this, run `helm init` with the --tiller-tls-verify flag.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
Happy Helming!
結果の表示
1
2
3
4
5
6
7
[root@syj ~]# helm version
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
[root@syj ~]# helm repo list
NAME URL
stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
local http://127.0.0.1:8879/charts
Prometheus Operatorの配備
ネームスペースの作成
1
[root@syj ~]# kubectl create namespace monitoring
Prometheus Operatorのダウンロード
1
[root@syj ~]# wget https://github.com/coreos/prometheus-operator/archive/release-0.29.zip
ダウンロードした依存パッケージを解凍してprometheus-operatorと名前を変更し、cdこのディレクトリにprometheus関連コンテンツをインストールします.
1
2
3
helm install --name prometheus-operator --set rbacEnable=true --namespace=monitoring helm/prometheus-operator
helm install --name prometheus --set serviceMonitorsSelector.app=prometheus --set ruleSelector.app=prometheus --namespace=monitoring helm/prometheus
helm install --name alertmanager --namespace=monitoring helm/alertmanager
検証#ケンショウ#
1
2
3
4
5
6
7
8
9
10
11
[root@syj ~]# kubectl get pod -n monitoring
NAME READY STATUS RESTARTS AGE
alertmanager-alertmanager-0 2/2 Running 0 58s
prometheus-operator-545b59ffc9-6g7dg 1/1 Running 0 6m32s
prometheus-prometheus-0 3/3 Running 1 3m31s
[root@syj ~]# kubectl get svc -n monitoring
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
alertmanager ClusterIP 10.98.237.7 9093/TCP 87s
alertmanager-operated ClusterIP None 9093/TCP,6783/TCP 87s
prometheus ClusterIP 10.104.185.104 9090/TCP 4m
prometheus-operated ClusterIP None 9090/TCP 4m
kube-prometheusのインストール
1
2
3
4
[root@syj ~]# mkdir -p helm/kube-prometheus/charts
[root@syj ~]# helm package -d helm/kube-prometheus/charts helm/alertmanager helm/grafana helm/prometheus helm/exporter-kube-dns \
> helm/exporter-kube-scheduler helm/exporter-kubelets helm/exporter-node helm/exporter-kube-controller-manager \
> helm/exporter-kube-etcd helm/exporter-kube-state helm/exporter-coredns helm/exporter-kubernetes
検証#ケンショウ#
1
2
3
4
5
6
7
8
9
10
11
[root@syj ~]# kubectl get svc -n monitoring
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
alertmanager ClusterIP 10.98.237.7 9093/TCP 34m
alertmanager-operated ClusterIP None 9093/TCP,6783/TCP 34m
kube-prometheus ClusterIP 10.101.249.82 9090/TCP 29s
kube-prometheus-alertmanager ClusterIP 10.100.29.63 9093/TCP 29s
kube-prometheus-exporter-kube-state ClusterIP 10.98.91.146 80/TCP 29s
kube-prometheus-exporter-node ClusterIP 10.98.34.11 9100/TCP 29s
kube-prometheus-grafana ClusterIP 10.108.208.247 80/TCP 29s
prometheus ClusterIP 10.104.185.104 9090/TCP 36m
prometheus-operated ClusterIP None 9090/TCP 36m
grafanaのサービスタイプをNodePortに変更
1
kubectl patch svc kube-prometheus-grafana -p '{"spec":{"type":"NodePort"}}' -n monitoring
grafanaのデフォルトポート31106にアクセスします.
1
http://ip:31106
インストール手順のリファレンス:https://blog.csdn.net/wangzan18/article/details/85270816
grafanaの各種テンプレートは参考になりますhttps://grafana.com/dashboards
おすすめ読書
ブログのすべての文章は公衆番号《Java学習録》に初発して転載してコードをスキャンして公衆番号に注目して2000 GJava学習資源を受け取ることができます