一、Prometheus組件包括:Prometheus server、push gateway 、alertmanager、Web UI等node
Prometheus server 按期從數據源拉取數據,而後將數據持久化到磁盤。Prometheus 能夠配置 rules,而後定時查詢數據,當條件觸發的時候,會將 alert 推送到配置的 Alertmanager。Alertmanager 收到警告的時候,能夠根據配置,聚合並記錄新時間序列,或者生成警報。同時還能夠使用其餘 API 或者 Grafana 來將收集到的數據進行可視化。git
二、安裝prometheus operatorgithub
去github上下載最新的版本:https://github.com/coreos/prometheus-operator.gitdocker
#wget https://github.com/coreos/prometheus-operator/archive/v0.20.0.tar.gzapp
#tar xf v0.20.0.tar.gzgoogle
#cd prometheus-operator-0.20.0spa
#kubectl apply -f bundle.yamlserver
#cd contrib/kube-prometheusget
#hack/cluster-monitoring/deployit
這個過程會建立一個名爲monitoring的namespace,建立過程須要拉取鏡像,而鏡像都是在google雲上的,須要爲docker使用加速器,我使用的是daocloud。自行註冊https://www.daocloud.io/
注意:上面的命令只能這樣執行,不能進到cluster-monitoring目錄下面執行,由於deploy裏面寫的執行路徑找的文件都在這一層。
執行成功後就建立完畢了,接下來就是檢查服務:
# kubectl get pod -n monitoring
AME READY STATUS RESTARTS AGE
alertmanager-main-0 2/2 Running 0 1h
alertmanager-main-1 2/2 Running 0 1h
alertmanager-main-2 2/2 Running 0 1h
grafana-595c4445d9-tlp6z 1/1 Running 0 1h
kube-state-metrics-78c8f797d-6s2wj 4/4 Running 0 1h
node-exporter-lbxlq 2/2 Running 0 1h
node-exporter-vff4z 2/2 Running 0 1h
prometheus-k8s-0 2/2 Running 1 1h
prometheus-k8s-1 2/2 Running 2 1h
prometheus-operator-784bcf6d6-8r9f2 1/1 Running 0 1h
# kubectl -n monitoring get svc
# kubectl -n monitoring get endpoints
# kubectl -n monitoring get servicemonitors
# kubectl get customresourcedefinitions