1、一台prometheus要监控多个域名,并且要求访问域名能够返回指定的内容呢,同时每个域名都有多台服务器
prometheus-2.36.0.linux-amd64
alertmanager-0.24.0.linux-amd64
blackbox_exporter-0.21.0.linux-amd64
grafana-8.5.4
centos 7.9
修改过配置,未能解决
一、多个域名如何监控业务返回值?(网站访问返回内容)
有三个域名,分别是http://www.sample.com/ www.A.com www.B.com
其中
http://www.sample.com/ 访问返回值必须是A_server 返回其他值一律算故障
http://www.A.com 访问返回值必须是#ok# 返回其他值一律算故障
http://www.B.com 访问返回值必须是200即可,也就是网站能打开即算正常,
该如何编写blackbox.yml
modules:
http_2xx:
prober: http
http:
method: GET
headers:
Host: "192.168.6.63|192.168.6.64"
Accept-Language: en-US
Origin: sample.com
fail_if_body_not_matches_regexp:
- "A_server|ICP|#ok#"
试过这种写法不行,求完整的 求完整的配置文件
二、一个域名有多台服务器,如何监控分别监控每台服务器是否能访问(要求访问域名返回指定的值,不是监控访问网站返回200代码即可,返回值同上面)
http://www.sample.com/ 有3个台服务器(192.168.6.63、192.168.6.64、192.168.6.65)怎么分别监控他的80端口和qos?,在prometheus服务器上 的/etc/hosts绑定IP,实测不会轮询服务器,也就是其中一台服务器挂了,prometheus无法发现并告警
求完整的配置文件
3、prometheus 的告警如何设置某一个组或者IP地址,只在周一到周五,早上7点到晚上21点之间触发告警,其他时间不触发告警,求完整的配置文件。
4、prometheus 如何临时停用某一个服务器或者某一组服务器的监控,类似zabbix 的维护期间,或者临时禁用服务器?
能通俗的说一下嘛
我们用java+prometheus解决服务健康监控。
上面的问题,使用java定时任务查询网站接口返回值,然后将数据处理了后推送到pushgateway上。然后配置prometheus从pushgateway抓取指标,并配置告警规则。
其他问题同理。prometheus不适合处理业务,所以配合java或者其他语言 将复杂问题处理成指标数据,推送到pushgateway。然后prometheus写告警规则就好写了。
第三个问题 ,我们公司在处理告警时,是prometheus推出告警数据时,先用java服务抓取数据。通过java发送邮件/短信/电话/微信消息/飞书消息告警。所以真正收到告警之前是经过java处理的,所以通过java来控制特定时间段收到prometheus告警消息时,判断一下 ,时间符合了再发出去。
第四个问题。我们使用java 管理prometheus的配置文件。当暂停告警时,用java把相关配置修改一下,然后刷新prometheus服务。就达到了临时停用prometheus告警的作用了。
参考如下链接https://blog.csdn.net/shenyuanhaojie/article/details/121775976
在 Prometheus 的架构设计中,Prometheus Server 并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够监控到更多信息,如主机的 CPU 使用率等,我们需要使用到 node_exporter。Prometheus 周期性的从 Exporter 暴露的 HTTP 服务地址(通常是 /metrics)拉取监控样本数据
纯运维操作,是吗?
是的.prometheus他能做到,问题是能做到的,但仅限限一个域名且做了qos返回内容监控就无法做ssl证书过期监控了
blackbox是用来做监控的,但不知怎么搞,qos也能监控到,但不能限定域名,而且QOS和SSL证书监控只能二选1
https://blog.csdn.net/shenyuanhaojie/article/details/121775976 看过了,没解决问题
朋友你好专业😬😬没听懂了是…服务器我都是用来健康自动打卡和准备连校园网的…监控窗口这个也经常用到,没出现问题只能说,下次过期了可以试试腾讯云的
没太理解具体的需求,方便的话说下
再详细举个例子和
现场这三个域名的当前的返回值以及想要达到的结果
如果是一个域名映射到多台服务器的话,因为不清楚访问域名是轮询还是权重。
看你的需求是为了检测这几台服务器是否有挂机,
那么一般来说,解决方法可能是每个服务器IP都单独监控一下,而不是只监控一个服务器域名,
然后判断是否其中一台服务器挂机
1、设计基本的报警流程(全部时间段)
2、设置Aermanage的静默规则来屏蔽告警通知
参考:https://yunlzheng.gitbook.io/prometheus-book/parti-prometheus-ji-chu/alert/alert-manager-inhibit
如果您想使许多规则保持沉默(或者如果您想要更复杂的抑制时间表),这可能会很快变得乏味。在这种情况下,您可以通过以下方式使用警报管理器的https://prometheus.io/docs/alerting/configuration/#inhibit_rule。
第一步是在 Prometheus 中定义一个警报,在您希望抑制发生时触发:
- alert: BackupHours
expr: hour() >= 2 <= 3
for: 1m
labels:
notification: none
annotations:
description: 'This alert fires during backup hours to inhibit others'
请记住在警报管理器中添加路由以避免通知此警报:
routes:
- match:
notification: none
receiver: do_nothing
receivers:
- name: do_nothing
然后在这段时间内使用禁止规则使目标规则静音:
inhibit_rules:
- source_match:
alertname: BackupHours
target_match:
# here can be any other selection of alert
alertname: OutOfMemory
跟上面的问题一样,设置临时静默告警规则即可
如有问题及时沟通