1、Prometheus組件包括:Prometheus server、push gateway 、alertmanager、Web UI等
Prometheus server 定期從數據源拉取數據,然后將數據持久化到磁盤。Prometheus 可以配置 rules,然后定時查詢數據,當條件觸發的時候,會將 alert 推送到配置的 Alertmanager。Alertmanager 收到警告的時候,可以根據配置,聚合並記錄新時間序列,或者生成警報。同時還可以使用其他 API 或者 Grafana 來將收集到的數據進行可視化。
2、安裝prometheus operator
去github上下載最新的版本:https://github.com/coreos/prometheus-operator.git
#wget https://github.com/coreos/prometheus-operator/archive/v0.20.0.tar.gz
#tar xf v0.20.0.tar.gz
#cd prometheus-operator-0.20.0
#kubectl apply -f bundle.yaml
#cd contrib/kube-prometheus
#hack/cluster-monitoring/deploy
這個過程會創建一個名為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
