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