prometheus与grafana在kubernetes的配置文件,开箱即用!(暂停更新,仅限于学习使用)
kubernetes: 1.13.1
[root@master-0 ~]# kubectl version --short
Client Version: v1.13.1
Server Version: v1.13.1
需要修改一些配置,如etcd信息。
克隆
git clone https://github.com/marksugar/k8s-pgmon.git
cd $PWD/k8s-pgmon
开始配置
kubectl apply -f k8s-pgmom-namespace.yaml
kubectl apply -f etcd-external/
kubectl apply -f node-export/
kubectl apply -f kube-controller-schedule/
kubectl apply -f kube-state-metrics/
kubectl apply -f grafana/
kubectl apply -f WeChat/
kubectl apply -f alertmanager/
kubectl apply -f prometheus/
你可以使用ip:端口来访问,这些分别是
k8s-pgmon-alertmanager NodePort IP <none> 9093:30004/TCP
k8s-pgmon-grafana NodePort IP <none> 3000:30001/TCP
k8s-pgmon-prometheus NodePort IP <none> 9090:30002/TCP
node-exporter NodePort IP <none> 9100:30003/TCP
Version | type | User ID | port |
---|---|---|---|
marksugar/grafana:5.4.2-p | grafana | 472 | 3000 |
v0.15.3 | alertmanager | 9093/9094 | |
v2.5.0 | prometheus | 665534 | 9090 |
v0.16.0 | node_exporter | 9100 | |
1.8.4 | addon-resizer | 18880 | |
v1.3.0 | kube-state-metrics | ||
latest | blackbox-exporter | ||
3.3.10 | etcd | 2379 | |
master | dingtalk | 3005 | |
None |
提供了如下图
kuberntes API node资源 etcd 名称空间资源
参考prometheus-webhook-dingtalk的[Prometheus AlertManager WebHook](Prometheus AlertManager WebHook)文章
修改dingtalk目录下的deploy文件中的
args:
- "--ding.profile=pgmon=https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXX"
- "--web.listen-address=:30005"
- "--log.level=info"
- "--ding.timeout=5s"
- corp_id: 企业微信账号唯一 ID, 可以在我的企业中查看。
- to_party: 需要发送的组。
- agent_id: 第三方企业应用的 ID,可以在自己创建的第三方企业应用详情页面查看。
- api_secret: 第三方企业应用的密钥,可以在自己创建的第三方企业应用详情页面查看。
微信API详情请参考文档。
如果你不想使用任何报警媒介,你可以使用默认的配置文件
如果你也是外部的etcd集群,你可以参考etcd-external路径下的文件,在etcd-ep文件中修改IP地址,在etcd-tls中附上密钥即可完成添加。
如果此刻你的集群内监听的端口仍然是127.0.0.1,那么如果需要,你可以进行修改,命令如下
sed -ri '/--address/s#=.+#=0.0.0.0#' /etc/kubernetes/manifests/kube-*
另外,在kube-endpoints文件中需要修改成你集群的IP地址即可
-
增删改触发器:编辑alertmanager-configMapRules配置文件即可,报警媒介请参考上述的微信和dingding,推荐使用微信
-
微信配置文件修改
如下
receivers:
- name: 'wechat'
wechat_configs:
- api_secret: 'xxxxxxxxx'
send_resolved: true
to_user: '@all'
to_party: 'marksugar'
agent_id: '100000X'
corp_id: 'ww0164xxxxx'
如果你不想使用任何报警媒介,你可以使用默认的配置文件
模板的添加和删除,需要修改模板配置文件Dashboard,可以直接在里面添加,也可以添加单独的configMap文件而后挂载到grafana中
prometheus配置文件做了简单的发现,如有需要可进行调整即可