Prometheus Operator + blackbox_exporter 监控Web页面

背景

目前生产环境使用Zabbix自带的web监控模块对所有子优鸟页面进行监控,由于目前Zabbix服务器为单节点,经常出现取不到web监控数据的情况。现将web监控迁移到Prometheus上。

但是线上prometheus的部署是使用prometheus operator实现的,部署了很多的ServiceMonitor 和 PrometheusRule。Prometheus Operator在K8S中建立了4个CRD,避免用户编写复杂的Prometheus Rule,也可以很快速的构建prometheus集群。 CRD详情链接: https://github.com/coreos/prometheus-operator/blob/master/Documentation/design.md

所有blackbox_exporter需要和CRD一起配合工作,详细的配置在后续的步骤中。所有使用的yaml文件我都会放到github上面,地址为:

https://github.com/kevinniu666/prometheusoperator-blackbox_exporter.git

运行以下的步骤需要你的环境满足如下条件:

1. K8S集群

2. Prometheus Operator方式部署的Prometheus集群

3. Prometheus的数据持久化使用NFS(我这里使用的是阿里云的NAS服务)

部署步骤

1.部署blackbox

 #kubectl apply -f blackbox.yaml

 #kubectl apply -f blackbox-config-map.yaml

#kubectl apply -f blackbox-service.yaml

2.添加Prometheus(这里是CRD),监控blackbox 需要的secret

#kubectl create secret generic additional-scrape-configs --from-file=prometheus-additional.yaml --dry-run -oyaml -n monitoring > additional-scrape-configs.yaml

PS: 这里是将prometheus-additional.yaml文件保存为K8S 的Secret,用于Prometheus这个CRD可以进行自定义监控。运行的时候prometheus-additional.yaml必须在当前目录。

#kubectl apply -f  additional-scrape-configs.yaml

3.更新Prometheus的部署

#kubectl apply -f prometheus-prometheus.yaml

PS: 这个yaml文件是prometheus-operator里面就有的,如果你是通过helm部署的prometheus-operator,可以通过将现在的prometheus Deployment导出来,然后加上additionalScrapeConfigs这一段:

.....省略....  
replicas: 1
additionalScrapeConfigs:
    name: additional-scrape-configs
    key: prometheus-additional.yaml
resources:
    requests:
      memory: 2Gi
    limits:
      memory: 4Gi
.....省略.....

还有一个就是prometheus的数据目录/prometheus 我是挂载到NFS上,同时prometheus-additional.yaml 文件中的路径: /prometheus/blackbox_exporter/*.yaml 也放在NFS上,prometheus的持久化是通过volumeClaimTemplate来做的,找了很久也没找到单独再挂一个目录给这个pod,索性就直接在数据目录建了一个目录用来存放需要监控的url地址

4.在监控url文件中添加需要监控的url,

#把NFS直接挂载到其它的主机,直接添加需要监控的URL地址就可以了

#vi /nfs_prometheus_data/prometheus/prometheus-db/blackbox_exporter/monitor_urls.yaml  #文件格式需要满足yaml文件格式

5.查看prometheus中的监控项

Prometheus Operator + blackbox_exporter 监控Web页面_第1张图片

6. Prometheus中查看数据,

Prometheus Operator + blackbox_exporter 监控Web页面_第2张图片

7.配置告警

#kubectl apply -f Web-Monitoring-Alerts.yaml

8.验证告警

 

你可能感兴趣的:(K8S)