夜莺-Nightingale
夜莺V7
项目介绍 功能概览
部署升级 部署升级
数据接入 数据接入
告警管理 告警管理
数据查看 数据查看
功能介绍 功能介绍
API FAQ
夜莺V6
项目介绍 架构介绍
快速开始 快速开始
黄埔营
安装部署 安装部署
升级
采集器 采集器
使用手册 使用手册
API API
数据库表结构 数据库表结构
FAQ FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵 第1章:天降奇兵
第2章:探索PromQL 第2章:探索PromQL
第3章:Prometheus告警处理 第3章:Prometheus告警处理
第4章:Exporter详解 第4章:Exporter详解
第5章:数据与可视化 第5章:数据与可视化
第6章:集群与高可用 第6章:集群与高可用
第7章:Prometheus服务发现 第7章:Prometheus服务发现
第8章:监控Kubernetes 第8章:监控Kubernetes
第9章:Prometheus Operator 第9章:Prometheus Operator
参考资料

http_response 插件监控 HTTP 地址的连通性和响应时间以及证书有效期

简介

http_response 类似 Prometheus 生态的 blackbox_exporter,是一个黑盒监控插件,用于监控 HTTP 地址的连通性和响应时间以及证书有效期。插件配置文件在 conf/input.http_response/http_response.toml

配置

下面是一个简单配置样例,配置了 4 个要监控的地址:

[mappings]
"http://localhost:5678" = { "app" = "foo" }
"http://localhost:5679" = { "app" = "bar" }

[[instances]]
targets = [
    "http://localhost:5678",
    "http://localhost:5679",
    "https://www.baidu.com",
    "https://flashcat.cloud",
]

核心就是配置这个 targets 字段,是个数组,可以配置多个被监控地址。categraf 会根据 scheme 来决定是 http 还是 https 请求,如果是 https 则会自动检查证书有效期。

像上例,我们看到 www.baidu.com 和 flashcat.cloud 这样的地址,是很容易知道这是哪个域名的,但是看到 localhost:5678 这样的地址,就不知道是哪个服务了,所以我们可以在 mappings 字段里配置一下,这样在监控数据里就会有一个 app 标签,方便区分。最后生成的数据如下:

http_response metrics 指标

从上图可以看到,前面两个地址都有 app 标签,后面两个地址没有。里边还有个 region="ulric" 的标签可以忽略,这是我在 categraf 全局配置文件 config.toml 中配置的全局标签,所有的监控数据都会附带上这个标签。

关键指标

http_response 插件会采集如下指标,在指标视图中可以看到:

http_response metrics 指标说明

cdn 相关的指标是商业版本中的拨测功能采集的,开源版本中不会采集。其中,用于告警的指标是 http_response_result_code 只要这个指标是 0 就是正常的,如果这个指标非 0,就是异常的,不同的值代表不同的含义:

Success          = 0
ConnectionFailed = 1
Timeout          = 2
DNSError         = 3
AddressError     = 4
BodyMismatch     = 5
CodeMismatch     = 6

http_response_cert_expire_timestamp 是证书过期的时间戳,http_response_cert_expire_timestamp - time() 表示证书还有多久过期,单位是秒。

仪表盘

在模板中心搜索 http_response 就可以找到相关的集成:

http_response集成

点击之后可以看到里边的仪表盘,可以直接查看,也可以把仪表盘导入自己业务组下,然后就可以随意调整了。仪表盘的效果如下:

http_response仪表盘

告警规则

还是在刚才的模板中心找到 http_response 集成,里边有现成的告警规则,导入自己的业务组下,然后修改成自己的告警接收组即可。

http_response告警规则

插件其他配置

http_response.toml 中除了 mappings 和 targets,还有其他的配置项,每个配置项都有详细的注释。关键的几个配置如下:

  • labels: 给所有 targets 附加的标签
  • interval_times: 采集频率的倍数。instance 最终的采集频率是 interval_times * global_interval
  • http_proxy: 代理配置
  • interface: HTTP 请求走哪块网卡
  • method: HTTP 请求方法,默认 GET
  • response_timeout: HTTP 请求超时时间
  • follow_redirects: 是否跟随重定向
  • username: HTTP Basic Auth 用户名
  • password: HTTP Basic Auth 密码
  • headers: HTTP 请求头,是个数组结构,必须是偶数,因为其内容是一个 Key,然后一个 Value,然后再一个 Key 再一个 Value,依次类推
  • body: HTTP 请求体,比如 POST 请求的 body
  • expect_response_substring: 期望的响应内容,如果响应内容不包含这个字符串,http_response_result_code 就会设置为 5
  • expect_response_status_codes: 期望的响应状态码,如果响应状态码不在这个列表里,http_response_result_code 就会设置为 6
  • use_tls: 是否使用 TLS,后面那些 TLS 相关配置只有在 use_tls 为 true 时才会生效
快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat