当前位置: 首页 > news >正文

网站建设的前后台代码南山网站设计费用

网站建设的前后台代码,南山网站设计费用,公章在线制作网站,html5个人网站模板环境,软件准备 本次演示环境#xff0c;我是在虚拟机上安装 Linux 系统来执行操作#xff0c;以下是安装的软件及版本#xff1a; System: CentOS Linux release 7.6Docker: 24.0.5Prometheus: v2.37.6Consul: 1.6.1 注意#xff1a;这里为了方便启动 Prometheus、Consul服…环境,软件准备 本次演示环境我是在虚拟机上安装 Linux 系统来执行操作以下是安装的软件及版本 System: CentOS Linux release 7.6Docker: 24.0.5Prometheus: v2.37.6Consul: 1.6.1 注意这里为了方便启动 Prometheus、Consul服务我使用 Docker 方式启动所以本机需要安装好 Docker 环境这里忽略 Docker 的安装过程。其中 Prometheus 安装配置可以参照之前文章 Prometheus 监控报警系统 AlertManager 之邮件告警这里着重介绍一下如何启动并配置 Consul 并配置 Prometheus 基于 Consul 实现自动服务发现。 Consul 安装配置 Docker 安装 使用 Docker 启动 Consul 单节点服务直接获取最新版官方镜像 consul:latest 命令如下 $ docker run --name consul -d -p 8500:8500 consul启动完毕后同上方法验证是否启动成功这里为了方便演示我采用 Docker 方式启动 Consul这里的访问地址为:http://192.168.75.42:8500 API 注册服务到 Consul 接下来我们要注册服务到 Consul 中可以通过其提供的 API 标准接口来添加。那么先注册一个测试服务该测试数据为本机 node-exporter 服务信息服务地址及端口为 node-exporter 默认提供指标数据的地址执行如下命令 $curl -X PUT -d {id: node-exporter,name: node-exporter-192.168.75.42,address: 192.168.75.42,port: 9100,tags: [test],checks: [{http: http://192.168.75.42:9100/metrics, interval: 5s}]} http://192.168.75.41:8500/v1/agent/service/register 提一下如果要注销掉某个服务可以通过如下 API 命令操作例如注销上边添加的 node-exporter 服务.这里的node-exporter事这个注册服务的ID $curl -X PUT http://192.168.75.41:8500/v1/agent/service/deregister/node-exporter 配置 Prometheus 实现自动服务发现 现在 Consul 服务已经启动完毕并成功注册了一个服务接下来我们需要配置 Prometheus 来使用 Consul 自动服务发现目的就是能够将上边添加的服务自动发现到 Prometheus 的 Targets 中增加 prometheus.yml 配置如下 - job_name: consul_exporterconsul_sd_configs:- server: 192.168.75.41:8500services: []#重新加载prometheus服务 [rootnode1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus]$curl -X POST http://localhost:9090/-/reload说明一下这里需要使用 consul_sd_configs 来配置使用 Consul 服务发现类型server 为 Consul 的服务地址这里跟上边要对应上。 配置完毕后重启 Prometheus 服务此时可以通过 Prometheus UI 页面的 Targets 下查看是否配置成功。 这里说明下,在进行服务注册的时候ID是不可以重复出现的,如果重复出现的话那么这个ID要么会被替换成新的,要么会注册不成功. 可以看到在 Targets 中能够成功的自动发现 Consul 中的 Services 信息后期需要添加新的 Targets 时只需要通过 API 往 Consul 中注册服务即可Prometheus 就能自动发现该服务是不是很方便。 不过我们会发现有如下几个问题 会发现 Prometheus 同时加载出来了默认服务 consul这个是不需要的。默认只显示 job 及 instance 两个标签其他标签都默认属于 before relabeling 下有些必要的服务信息也想要在标签中展示该如何操作呢如果需要自定义一些标签例如 team、group、project 等关键分组信息方便后边 alertmanager 进行告警规则匹配该如何处理呢所有 Consul 中注册的 Service 都会默认加载到 Prometheus 下配置的 consul_prometheus 组如果有多种类型的 exporter如何在 Prometheus 中配置分配给指定类型的组方便直观的区别它们 以上问题我们可以通过 Prometheus 配置中的 relabel_configs 参数来解决。 配置 relabel_configs 实现自定义标签及分类 我们先来普及一下 relabel_configs 的功能 Prometheus 允许用户在采集任务设置中通过 relabel_configs 来添加自定义的 Relabeling 的额过程来对标签进行指定规则的重写。 Prometheus 加载 Targets 后这些 Targets 会自动包含一些默认的标签Target 以 __ 作为前置的标签是在系统内部使用的这些标签不会被写入到样本数据中。眼尖的会发现每次增加 Target 时会自动增加一个 instance 标签而 instance 标签的内容刚好对应 Target 实例的 __address__ 值这是因为实际上 Prometheus 内部做了一次标签重写处理默认 __address__ 标签设置为 host:port 地址经过标签重写后默认会自动将该值设置为 instance 标签所以我们能够在页面看到该标签。 详细 relabel_configs 配置及说明可以参考 relabel_config 官网说明这里我简单列举一下里面每个 relabel_action 的作用方便下边演示。 replace: 根据 regex 的配置匹配 source_labels 标签的值注意多个 source_label 的值会按照 separator 进行拼接并且将匹配到的值写入到 target_label 当中如果有多个匹配组则可以使用 1,1,{2} 确定写入的内容。如果没匹配到任何内容则不对 target_label 进行重新 默认为 replace。keep: 丢弃 source_labels 的值中没有匹配到 regex 正则表达式内容的 Target 实例drop: 丢弃 source_labels 的值中匹配到 regex 正则表达式内容的 Target 实例hashmod: 将 target_label 设置为关联的 source_label 的哈希模块labelmap: 根据 regex 去匹配 Target 实例所有标签的名称注意是名称并且将捕获到的内容作为为新的标签名称regex 匹配到标签的的值作为新标签的值labeldrop: 对 Target 标签进行过滤会移除匹配过滤条件的所有标签labelkeep: 对 Target 标签进行过滤会移除不匹配过滤条件的所有标签 接下来我们来挨个处理上述问题。 问题一我们可以配置 relabel_configs 来实现标签过滤只加载符合规则的服务。 以上边为例可以通过过滤 __meta_consul_tags 标签为 test 的服务relabel_config 向 Consul 注册服务的时候只加载匹配 regex 表达式的标签的服务到自己的配置文件。修改 prometheus.yml 配置如下 - job_name: consul_exporterconsul_sd_configs:- server: 192.168.75.41:8500services: []relabel_configs:- source_labels: [__meta_consul_tags]regex: .*test.*action: keep解释下这里的 relabel_configs 配置作用为丢弃源标签中 __meta_consul_tags 不包含 test 标签的服务__meta_consul_tags 对应到 Consul 服务中的值为 tags: [test]默认 consul 服务是不带该标签的从而实现过滤。重启 Prometheus 可以看到现在只获取了 node-exporter-75.42 这个服务了, 问题二和问题三 可以归为一类就是将系统默认标签或者用户自定义标签转换成可视化标签 方便查看及后续 Alertmanager 进行告警规则匹配分组。不过要实现给服务添加自定义标签我们还得做一下修改就是在注册服务时将自定义标签信息添加到 Meta Data 数据中具体可以参考 [这里](Consul Service - Agent HTTP API) 官网说明下边来演示一下如何操作。 新建 consul-0.json 如下 [rootnode1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus/test]$cat consul-0.json {ID: node-exporter,Name: node-exporter-192.168.75.41,Tags: [test],Address: 192.168.75.41,Port: 9100,Meta: {app: spring-boot,team: appgroup,project: bigdata},EnableTagOverride: false,Check: {HTTP: http://192.168.75.41:9100/metrics,Interval: 10s},Weights: {Passing: 10,Warning: 1} } 说明一下该 Json 文件为要注册的服务信息同时往 Meta 信息中添加了 appspring-bootteamappgroupprojectbigdata 三组标签目的就是为了方便告警分组使用。执行如下命令进行注册 [rootnode1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus/test]$curl --request PUT --data consul-0.json http://192.168.75.41:8500/v1/agent/service/register?replace-existing-checks1 注册完毕通过 Consul Web 管理页面可以查看到已注册成功并且包含了 Meta 信息。 然后修改 prometheus.yml 配置如下 - job_name: consul_exporterconsul_sd_configs:- server: 192.168.75.41:8500services: []relabel_configs:- source_labels: [__meta_consul_tags]regex: .*test.*action: keep- regex: __meta_consul_service_metadata_(.)action: labelmap#重新加载prometheus配置 [rootnode1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus]$curl -X POST http://localhost:9090/-/reload解释一下增加的配置作用为匹配 __meta_consul_service_metadata_ 开头的标签将捕获到的内容作为新的标签名称匹配到标签的的值作为新标签的值而我们刚添加的三个自定义标签系统会自动添加 __meta_consul_service_metadata_appspring-boot、__meta_consul_service_metadata_teamappgroup、__meta_consul_service_metadata_projectbigdata 三个标签经过 relabel 后Prometheus 将会新增 appspring-boot、teamappgroup、projectbigdata 三个标签。重启 Prometheus 服务可以看到新增了对应了三个自定义标签。 问题四将自动发现的服务进行分类 本质上跟上边的处理方式一致可以添加自定义的标签方式通过标签来区分二可以通过服务 Tag 来进行匹配来创建不同的类型 exporter 分组。这里我以第二种为例通过给每个服务标记不同的 Tag然后通过 relabel_configs 来进行匹配区分。我们来更新一下原 node-exporter-192.168.75.42 服务标签同时注册一个其他类型 exporter 的服务如下 [rootnode1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus/test]$cat consul-0.json {ID: node-exporter,Name: node-exporter-192.168.75.41,Tags: [node-exporter],Address: 192.168.75.41,Port: 9100,Meta: {app: spring-boot,team: appgroup,project: bigdata},EnableTagOverride: false,Check: {HTTP: http://192.168.75.41:9100/metrics,Interval: 10s},Weights: {Passing: 10,Warning: 1} } #更新注册服务 [rootnode1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus/test]$curl --request PUT --data consul-0.json http://192.168.75.41:8500/v1/agent/service/register?replace-existing-checks1 这里说明下,最后的checks参数表示如果重复那么就覆盖更新 [rootnode1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus/test]$cat consul2.json {ID: cadvisor-exporter-test,Name: cadvisor-exporter-192.168.75.42,Tags: [cadvisor-exporter],Address: 192.168.75.42,Port: 8080,Meta: {app: docker,team: cloudgroup,project: docker-service},EnableTagOverride: false,Check: {HTTP: http://192.168.75.42:8080/metrics,Interval: 10s},Weights: {Passing: 10,Warning: 1} }[rootnode1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus/test]$curl --request PUT --data consul2.json http://192.168.75.41:8500/v1/agent/service/register?replace-existing-checks1查看注册情况 最后我们修改 prometheus.yml 配置如下 - job_name: consul_exporterconsul_sd_configs:- server: 192.168.75.41:8500services: []relabel_configs:- source_labels: [__meta_consul_tags]regex: .*node-exporter.*action: keep- regex: __meta_consul_service_metadata_(.)action: labelmap- job_name: cadvisor-exporter-testconsul_sd_configs:- server: 192.168.75.41:8500services: []relabel_configs:- source_labels: [__meta_consul_tags]regex: .*cadvisor-exporter.*action: keep- regex: __meta_consul_service_metadata_(.)action: labelmap #重新加载prometheus配置 [rootnode1-prome /zpf/k8s/prometheus/docker-prometheus/prometheus]$curl -X POST http://localhost:9090/-/reload这里需要根据每种类型的 exporter 新增一个关联 job同时 relabel_configs 中配置以 Tag 来做匹配区分。重启 Prometheus 服务可以看到服务已经按照类型分类了方便查看。
http://www.hkea.cn/news/14449893/

相关文章:

  • 杭州比较有名的设计院免费网站排名优化
  • 网站建设行业解决方案苏州新途网络科技有限公司
  • 旅游网站建设方案高端网站源码
  • 家电维修企业网站源码iis配置网站无法浏览
  • 福建省建设资格注册管理中心网站asp.net网站开发书籍
  • 大学网站建设工作总结如何登录公众号平台
  • 哪些网站是做食品聊城定制化网站建设
  • 什么网站可以做模型挣钱网站扫二维码怎么做
  • jsp网站开发目的及意义wordpress 去掉左上角
  • 珠海网站建设推广服务代理公司收费标准
  • 网站建设一秒互联怎么填写网站icp备案
  • 网站建设程序员招聘中国设计联盟官网
  • 上海静安网站制作潍坊网站开发高手
  • 电商网站规划与建设方案建设营销型网页
  • 大庆建设银行网站首页网站建设项目需求说明
  • 广州做内销鞋的网站wordpress网站amp
  • 威海外贸网站建设联系方式宜春网站制作公司
  • dw个人网站主页怎么做做ae好的网站有哪些
  • 描述网站开发的广告词小程序开发公司米云
  • qq群推广引流免费网站建设工程信息网官网新网站
  • app制作简易网站建e网3d模型库
  • 用php做网站和go做网站设计欣赏心得体会
  • 酒类销售公司的网站建设家具东莞网站建设
  • 企业网站源码打包怎样做省钱购物网站
  • 做衣服接订单的网站怎么看网站开发的技术
  • 网站排名快速提升工具阜南网站建设公司
  • 金华网站建设公司网页传奇游戏如何0血打不死
  • 创意福州网站建设百度极简网址
  • 车陂手机网站开发公司要做个网站吗
  • 扬州企业网站建设网站是用什么程序做的