|NO.Z.00330|——————————|CloudNative|——|KuberNetes&运维.V48|——|黑盒监控.v03|blackbox.v03|Prometheusadditional传统配置|
一、黑盒监控blackbox_exporter
### --- 概述说明
~~~ # 使用blackbox-exporter来监控一些传统的网页
~~~ https://github.com/prometheus/blackbox_exporter
~~~ https://github.com/prometheus/blackbox_exporter/blob/master/blackbox.yml
~~~ https://grafana.com/grafana/dashboards/5345
### --- blackbox-exporter监控:使用环境
~~~ # 下列环境为k8s内部做了监控
~~~ 若是公司的机房或者设备遍布很多地方,
~~~ 每个区域都可以搭建一个blackbox:二进制文件可以直接启用
~~~ 启用之后,就可以直接使用Prometheus去调用目标区域的blackbox-exporter;
~~~ 就可以做到多区域的服务监控
一、打开Prometheus的additional configuration配置
### --- 使用additional生成secrets文件
~~~ 创建additional:prometheus-additional.yaml文件
[root@k8s-master01 additional]# vim prometheus-additional.yaml
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response.
static_configs:
- targets:
- http://prometheus.io # Target to probe with http.
- https://prometheus.io # Target to probe with https.
- http://www.baidu.com # Target to probe with http on port 8080.
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: blackbox-exporter:9115 # The blackbox exporter's real hostname:port.
### --- 注:
~~~ 因为是在同一个namespace,所以写成这个地址即可
~~~ # 注释一: replacement: 127.0.0.1:9115 // 这个是黑盒监控的地址
[root@k8s-master01 blackbox]# kubectl get svc -n monitoring -l app=blackbox-exporter
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
blackbox-exporter ClusterIP 10.105.13.82 <none> 9115/TCP 57m
~~~ # 注释二:
relabel_configs: // 相当于把一些label重新赋值
~~~ # 注释三:
- http://www.baidu.com // 这个地址定义成百度的地址
### --- 生成secrets:通过additional文件来生成
[root@k8s-master01 additional]# kubectl create secret generic additional-scrape-configs --from-file=prometheus-additional.yaml --dry-run -oyaml > additional-scrape-configs.yaml
### --- 查看生成的secrets
[root@k8s-master01 additional]# more additional-scrape-configs.yaml
apiVersion: v1
data:
prometheus-additional.yaml: LSBqb2JfbmFtZTogJ2JsYWNrYm94JwogIG1ldHJpY3NfcGF0aDogL3Byb2JlCiAgcGFyYW1zOgogICAgbW9kdWxlOiBbaHR0cF8yeHhdICAjIExvb2sgZm9yIGEgSFRUUCAyMDAgcmVzcG9uc2UuCiAgc3RhdGljX2
NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICAgIC0gaHR0cDovL3Byb21ldGhldXMuaW8gICAgIyBUYXJnZXQgdG8gcHJvYmUgd2l0aCBodHRwLgogICAgICAtIGh0dHBzOi8vcHJvbWV0aGV1cy5pbyAgICMgVGFyZ2V0IHRvIHByb2JlIHdpdGggaHR0cH
MuCiAgICAgIC0gaHR0cDovL3d3dy5iYWlkdS5jb20gICAgIyBUYXJnZXQgdG8gcHJvYmUgd2l0aCBodHRwIG9uIHBvcnQgODA4MC4KICByZWxhYmVsX2NvbmZpZ3M6CiAgICAtIHNvdXJjZV9sYWJlbHM6IFtfX2FkZHJlc3NfX10KICAgICAgdGFyZ2V0X2
xhYmVsOiBfX3BhcmFtX3RhcmdldAogICAgLSBzb3VyY2VfbGFiZWxzOiBbX19wYXJhbV90YXJnZXRdCiAgICAgIHRhcmdldF9sYWJlbDogaW5zdGFuY2UKICAgIC0gdGFyZ2V0X2xhYmVsOiBfX2FkZHJlc3NfXwogICAgICByZXBsYWNlbWVudDogYmxhY2
tib3gtZXhwb3J0ZXI6OTExNSAgIyBUaGUgYmxhY2tib3ggZXhwb3J0ZXIncyByZWFsIGhvc3RuYW1lOnBvcnQuCg==
kind: Secret
metadata:
creationTimestamp: null
name: additional-scrape-configs
二、创建secrets
### --- 创建生成的secrets
[root@k8s-master01 additional]# kubectl create -f additional-scrape-configs.yaml -n monitoring
secret/additional-scrape-configs created
### --- 查看生成的secrets
[root@k8s-master01 additional]# kubectl get secrets -n monitoring
NAME TYPE DATA AGE
additional-scrape-configs Opaque 1 16s
三、在prometheus-prometheus.yaml CRD中引用上面的值
### --- 在prometheus-prometheus.yaml添加CRD中引用的值
[root@k8s-master01 additional]# vim prometheus-prometheus.yaml
secrets:
- etcd-certs // 此行下面添加如下参数
additionalScrapeConfigs: // 添加这3行内容
name: additional-scrape-configs
key: prometheus-additional.yaml
### --- 重新replace一下Prometheus的参数
~~~ 重新触发一下容器
[root@k8s-master01 additional]# kubectl replace -f prometheus-prometheus.yaml -n monitoring
prometheus.monitoring.coreos.com/k8s replaced
[root@k8s-master01 additional]# kubectl delete po prometheus-k8s-0 -n monitoring
pod "prometheus-k8s-0" deleted
### --- 查看日志
[root@k8s-master01 additional]# kubectl logs -f prometheus-k8s-0 -n monitoring prometheus-config-reloader
ts=2021-05-28T07:57:52.311897749Z caller=main.go:85 msg="Starting prometheus-config-reloader version '0.38.1'."
level=error ts=2021-05-28T07:57:52.725405628Z caller=runutil.go:98 msg="function failed. Retrying in next tick" err="trigger reload: reload request failed: Post http://localhost:9090/-/reload: dial tcp 127.0.0.1:9090: connect: connection refused"
### --- 查看容器是否重新启动
~~~ 容器启动之后,查看Prometheus的additional configuration配置是否加载上来
[root@k8s-master01 additional]# kubectl get po -n monitoring -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
prometheus-k8s-0 3/3 Running 2 106s 172.27.14.229 k8s-node02 <none> <none>
四、查看Prometheus的additional configuration的配置是否加载上来
### --- 查看Prometheus的additional configuration的配置是否加载上来
~~~ ——>http://prom.test.com——> Status:configration——>ctrl+F——>可以查看到这个配置已经加载上
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通