introduction
测试环境监控解决方案,采用 Prometheus
+ grafana
搭建而成。
1.痛点所在
(1) 目前测试环境还没有存在实时监控报警机制,一些隐性的重大问题很难发现。
(2) 测试环境的机器环境复杂,可能有一些其他的不相关服务影响测试机,没办法准确的监控我们想要的进程数据。
(3) 之前尝试过zabbix
,但是由于成本巨大不得不放弃,我们希望测试环境的监控简单而高效,并且具有定制化功能。
2.解决方案 Prometheus
+ grafana
Prometheus
属于一站式监控告警平台,依赖少,功能齐全。
Prometheus
支持对云或容器的监控,其他系统主要对主机监控。
Prometheus
数据查询语句表现力更强大,内置更强大的统计函数。
Prometheus
灵活的数据采集。
Prometheus
方便的部署和维护。
而我最看重的是 Prometheus
对云或容器的监控,由于同属于CNCF
毕业项目,K8S
和Prometheus
的相容性是很好的,可以原生监控 Kubernetes
、 节点,而且部署起来也简单。
而grafana
是展示使用,具有丰富的模板和可用数据源,并且十分酷炫。
3.部署 Prometheus
+ grafana
(1) 拉取项目
git clone git@github.com:bo07997/k8s-prometheus-grafana.git
(2) 采用daemonset方式部署node-exporter组件
kubectl create -f node-exporter.yaml
(3) 部署Prometheus组件
kubectl create -f prometheus/rbac-setup.yaml
kubectl create -f prometheus/configmap.yaml
kubectl create -f prometheus/prometheus.deploy.yml
kubectl create -f prometheus/prometheus.svc.yml
(4) 部署grafana
,并且增加数据源为Prometheus
`grafana`不建议以`k8s`的形式部署,因为高版本的`grafana`会有权限报错,这里推荐官网的`https`://`grafana`.`com`/`grafana`/`download`?`platform`=`docker`
(5) 访问集群任何一台机器的29998端口可以进去 Prometheus 界面,如下图
(6) 访问grafana,因为我们是官方安装的方式,以服务的形式存在,我们直接访问该服务。
4.未来展望
(1) 由于时间紧急,个性化监控还没做,只是调用了一些公共的node-export
监控。
(2) 因为是时序化监控,对时间同步要求很高,而我们的机器可能时间不一样,导致数据源失效,后续看下怎么解决。