A、プロメテウスの概要
1.プロメテウスとは何ですか?
プロメテウスは、もともと2012年の創業以来、ツールキットを監視し、警告SoundCloudがオープンソース・システム上に構築された、多くの企業や組織がプロメテウスを採用している、このプロジェクトは、開発者とユーザの非常に活発なコミュニティがあります。さて、それは別のオープンソースプロジェクトであり、そしてどのような企業で独立して維持しました。この点を強調するために、プロジェクトのガバナンス構造を明確にするために、プロメテウスは2016年に彼は、第二のプロジェクト担当者が尋ねた二kubernetesあるクラウドコンピュネイティブ財団(ネイティブ雲が財団(CNCF)を計算する)、参加しました。
2、プロメテウスの利点
プロメテウスの主な利点は次のとおりです。
- インデックス名多次元データ・モデルとその時系列データを識別するキー/値。
- 強力なクエリ言語(PromQL)
- セルフサービスの容量を持つ単一ノードと、それは、分散ストレージに依存しません。
- HTTPベースの方法を引っ張って取得した時系列データ。
- 時系列データは、中間ゲートウェイを介してプッシュすることができます。
- ターゲットの静的な設定ファイルやサービスの発見を監視することによって得ることができます。
- アイコンやダッシュボードなどGrafanaなどというように、複数の種類をサポートしています。
。3、コア成分プロメテウス
成分のプロメテウス生態系複数、それらの多くは任意成分です。
- プロメテウスサーバー:収集指標と時系列データの保存に使用して、クエリインターフェイスを提供します。
- クライアントライブラリ:(などゴー、パイソン、ジャワ、など)のクライアントライブラリは、監視サービス/メトリック(サービス・インジケータ対策)への対応の必要性を生産し、プロメテウスサーバーにさらされています。
- プッシュゲートウェイ:主に一時的な仕事のために、ゲートウェイを押してください。そのため、このようなジョブの存在を短時間で、プロメテウスが消えるを引っ張って、おそらく前に、この仕事のタイミングがpushgatewayからプロメテウスサーバプルで、その後、インデックスpushgatewayをプッシュします。
- 輸出:プロメテウスに既存のサードパーティのサービスメトリックを露出させます。
- AlertManager:アラームを処理するために、プロメテウスサーバ側から警告を受けて、それが重複したデータパケットを削除されると、警報を受信するための受信モードにルーティング。受信するための最も一般的な方法:電子メール。
4、アーキテクチャプロメテウス
プロメテウスエコシステムおよびコンポーネントの全体的なアーキテクチャは、以下のように:
プロメテウス・サーバは、直接的または間接的に、それがローカルに格納されたサンプルデータの全てを捕捉するゲートウェイを押すことによって監視インデックスから監視対象を引き出し、そして凝集し、このデータに一連のルールを実行し、新たな時系列データを記録する前そして、アラームを生成します。監視データは、視覚化の他の手段またはGrafanaによって達成することができます。
図5は、利点と欠点プロメテウス
純粋なデジタル値のシリーズプロメテウス取得時間は、中心として物理マシンを監視するのに適している、非常に優れている、体はまた、高度に動的な監視アーキテクチャ指向のサービスに適しています。マイクロサービス、非常にユニークで非常に競争力の多次元データ収集とクエリの分野では。
信頼性のプロメテウス最大値の嘘、ユーザーは、問題のシステムは、時間の場合でも、監視システム全体の任意の時間の統計を見ることができます。しかし、データが詳細かつ完全にすることはできませんので、あなたが収集した、プロメテウスはあなたのためではないので、要求課金データを押さなければならない場合など、100%正確にすることはできません。この場合、あなたはより良い収集し、課金のためのデータを分析し、システムの残りの部分を監視するためにプロメテウスを使用する他のシステムを使用します。
二、プロメテウスの展開
導入環境:
ノード名 | ホストIP | オペレーティングシステム |
---|---|---|
主人 | 172.16.1.30 | Centos7 |
node01 | 172.16.1.31 | Centos7 |
node02 | 172.16.1.32 | Centos7 |
1、プロメテウスプロジェクトのgitの:
1)安装git工具包:
[root@master ~]# yum install git -y
2)获取Prometheus的git项目:
[root@master prometheus]# git clone https://github.com/coreos/kube-prometheus.git
#执行git pull命令进行更新,确保克隆到本地的是最新的:
[root@master kube-prometheus]# git pull
Already up-to-date.
図2に示すように、ミラーアセンブリインポート配備プロメテウスが必要:
1)マスター含む画像アップロードされたパッケージ()クラスタ内のすべてのノード
2)は、それぞれのクラスタ・ノード上で動作を読み込みます。
#注意:确定在当前路径下执行
[root@master images]# for i in `ls`; do docker load < $i; done
[root@node01 images]# for i in `ls`; do docker load < $i; done
[root@node02 images]# for i in `ls`; do docker load < $i; done
以上镜像都是我通过国内阿里云镜像站下载好的(已修改tag),我已上传至网盘,大家可以去进行下载:链接:https://pan.baidu.com/s/1c8pP3vAS9qHCQqc-XaYRXQ
提取码:8zk2
注意:
考虑到以上组件的镜像版本在git项目上会经常的更新,所以大家就得根据最新版本去下载相对应的镜像;yaml文件中默认是从quay.io和gcr.io进行镜像拉取(其他的国内可直接拉取),我们知道,国内访问外网是被屏蔽的,我们无法直接将镜像下载下来,所以可以分别通过 quay-mirror.qiniu.com 和 registry.aliyuncs.com镜像站去拉取。
###例如:
拉取镜像:quay.io/coreos/prometheus-operator:v0.36.0
可以改为:quay-mirror.qiniu.com/coreos/prometheus-operator:v0.36.0
拉取镜像:gcr.io/google_containers/kube-proxy
可以改为:registry.aliyuncs.com/google_containers//kube-proxy
3,修改访问模式为nodeport
1)修改grafana-service文件:
[root@master kube-prometheus]# cd manifests/
[root@master manifests]# vim grafana-service.yaml
2)修改Prometheus-service文件:
[root@master manifests]# vim prometheus-service.yaml
3)修改alertmanager-service文件:
4,执行安装操作
1)先安装Prometheus所需要的资源(在manifests/setup目录下的yaml文件):
[root@master manifests]# kubectl apply -f setup/
2)安装Prometheus(在manifests/路径下的yaml文件):
[root@master manifests]# cd ..
[root@master kube-prometheus]# kubectl apply -f manifests/
5,查看Prometheus资源(确保以下pod都达到所期望的状态值)[root@master kube-prometheus]# kubectl get pod -n monitoring
[root@master kube-prometheus]# kubectl get svc -n monitoring
以上各组件说明:
- MerticServer: k8s集群资源使用情况的聚合器,收集数据给k8s集群内使用;如kubectl,hpa,scheduler等。
- PrometheusOperator:是一个系统监测和警报工具箱,用来存储监控数据。
- NodeExPorter:用于各个node的关键度量指标状态数据。
- kubeStateMetrics:收集k8s集群内资源对象数据,指定告警规则。
- Prometheus:采用pull方式收集apiserver,scheduler,control-manager,kubelet组件数据,通过http协议传输。
- Grafana:是可视化数据统计和监控平台。
6,Prometheus监控页面展示
1)访问Prometheus web页面:
访问url:http://172.16.1.30:30200/
#部署成功后,会显示集群节点各个组件的详细信息,并且状态为up。
2)访问alertmanager web页面:
访问url: http://172.16.1.30:30300
3)访问Grafana 图形化界面:
访问url: http://172.16.1.30:30100 , 初始用户名和密码都为:admin
#修改用户名和密码后点击登录:
三,使用Prometheus监控平台
1,为grafana添加Prometheus数据源
上图所示,可以看到当部署完Prometheus后默认已经为我们添加了一个Prometheus数据源,大家也可以点击右上角的"Add data source"选项自定义添加所需要的数据源。如下图所示:
2,为grafana添加dashboard
3,监控集群资源
如上图所示,已为我们提供了一些内置资源监控模板,大家可以选择查看需要监控的资源。下面将展示几个重要监控的资源对象信息:
1)查看集群资源信息:
#可以看到集群中cpu,memory,network以及磁盘IO等使用信息的展示。
2)各ノードのリソースの使用状況を確認します。
3)ポッドビューのリソース:
上に示したように#、あなたはプロメテウス用語リソース監視は非常に包括的であると私たちを提供して見ることができます。その他の項目は、あなたが自分自身でリソース監視を表示することができます。
4、他の監視テンプレートは、
組み込みの提供grafanaモニターテンプレート非常に豊富ですが、我々はまた、入力することができますしGrafana公式サイトを追加の監視テンプレートをダウンロードしてください。
下に示すように1)、ダウンロードにテンプレートを監視します。
たとえば、私たちはプロメテウステンプレートのノードの輸出業者を選択します。
Grafana Webインターフェイス上の2)インポートテンプレート:
テンプレートのインポートは、あなたがGrafana公式サイトで自分自身をダウンロードできる監視テンプレートの成功、他のタイプです。
AlertManagerメールアラートは、ボーエンを参照してください達成:監視ツール-Prometheusのインストールと展開+の実現にメールアラームを