It's our wits that make us men.

测试环境监控解决方案

Posted on By 刘电波

introduction

测试环境监控解决方案,采用 Prometheus + grafana搭建而成。

1.痛点所在

(1) 目前测试环境还没有存在实时监控报警机制,一些隐性的重大问题很难发现。

(2) 测试环境的机器环境复杂,可能有一些其他的不相关服务影响测试机,没办法准确的监控我们想要的进程数据。

(3) 之前尝试过zabbix,但是由于成本巨大不得不放弃,我们希望测试环境的监控简单而高效,并且具有定制化功能。

2.解决方案 Prometheus + grafana

Prometheus 属于一站式监控告警平台,依赖少,功能齐全。

Prometheus 支持对云或容器的监控,其他系统主要对主机监控。

Prometheus 数据查询语句表现力更强大,内置更强大的统计函数。

Prometheus 灵活的数据采集。

Prometheus方便的部署和维护。

而我最看重的是 Prometheus 对云或容器的监控,由于同属于CNCF毕业项目,K8SPrometheus 的相容性是很好的,可以原生监控 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) 因为是时序化监控,对时间同步要求很高,而我们的机器可能时间不一样,导致数据源失效,后续看下怎么解决。