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

网站建设研究课题宝塔和WordPress一样吗

网站建设研究课题,宝塔和WordPress一样吗,wordpress 获取用户角色,自适应网站模板公司欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文是《prometheus实战》系列的第四篇#xff0c;在《prometheus实战之三#xff1a;告警规则》中曾经提到过#xff0c;整个告警功能分为规则和…欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)https://github.com/zq2599/blog_demos 本篇概览 本文是《prometheus实战》系列的第四篇在《prometheus实战之三告警规则》中曾经提到过整个告警功能分为规则和通知两部分前文详细说明了规则今天要学习的就是剩下的通知部分 完整的数据流如下图告警从prometheus出发到达alertmanager之后根据配置alertmanager会调用web服务的接口而web服务自己又会向飞书服务器发送请求从而触发飞书APP收到通知 之所以选飞书作通知手段首先是简单其次是相对熟悉您也可以按照自己的喜好去选择通知途径 本篇要做的是把alertmanager部署好配置好至于后面的web服务就留在下一篇吧咱们适当控制篇幅 接下来把本篇的操作步骤按顺序列一下然后开工如下所示一共八步助您完成完全个性化的告警配置 #mermaid-svg-u7pxN0UtPR89Uqd8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-u7pxN0UtPR89Uqd8 .error-icon{fill:#552222;}#mermaid-svg-u7pxN0UtPR89Uqd8 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-u7pxN0UtPR89Uqd8 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-u7pxN0UtPR89Uqd8 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-u7pxN0UtPR89Uqd8 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-u7pxN0UtPR89Uqd8 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-u7pxN0UtPR89Uqd8 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-u7pxN0UtPR89Uqd8 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-u7pxN0UtPR89Uqd8 .marker.cross{stroke:#333333;}#mermaid-svg-u7pxN0UtPR89Uqd8 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-u7pxN0UtPR89Uqd8 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-u7pxN0UtPR89Uqd8 .cluster-label text{fill:#333;}#mermaid-svg-u7pxN0UtPR89Uqd8 .cluster-label span{color:#333;}#mermaid-svg-u7pxN0UtPR89Uqd8 .label text,#mermaid-svg-u7pxN0UtPR89Uqd8 span{fill:#333;color:#333;}#mermaid-svg-u7pxN0UtPR89Uqd8 .node rect,#mermaid-svg-u7pxN0UtPR89Uqd8 .node circle,#mermaid-svg-u7pxN0UtPR89Uqd8 .node ellipse,#mermaid-svg-u7pxN0UtPR89Uqd8 .node polygon,#mermaid-svg-u7pxN0UtPR89Uqd8 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-u7pxN0UtPR89Uqd8 .node .label{text-align:center;}#mermaid-svg-u7pxN0UtPR89Uqd8 .node.clickable{cursor:pointer;}#mermaid-svg-u7pxN0UtPR89Uqd8 .arrowheadPath{fill:#333333;}#mermaid-svg-u7pxN0UtPR89Uqd8 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-u7pxN0UtPR89Uqd8 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-u7pxN0UtPR89Uqd8 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-u7pxN0UtPR89Uqd8 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-u7pxN0UtPR89Uqd8 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-u7pxN0UtPR89Uqd8 .cluster text{fill:#333;}#mermaid-svg-u7pxN0UtPR89Uqd8 .cluster span{color:#333;}#mermaid-svg-u7pxN0UtPR89Uqd8 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-u7pxN0UtPR89Uqd8 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. 编写部署alertmanager的ansible脚本 2. 部署alertmanager 3. 配置prometheus,使告警到达alertmanager 4. 配置alertmanager,使通知到达web服务 5. 简单验证 接下来就逐步完成吧 1. 编写部署alertmanager的ansible脚本 关于用ansible部署软件的操作咱们在《prometheus实战之一用ansible部署》有详细的说明因此关于ansible的基本设置就不在本篇赘述了直接给出部署alertmanager的ansible脚本即可ansible的改动一共有以下三步 #mermaid-svg-luiA1ak2MlMgG8Gu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-luiA1ak2MlMgG8Gu .error-icon{fill:#552222;}#mermaid-svg-luiA1ak2MlMgG8Gu .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-luiA1ak2MlMgG8Gu .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-luiA1ak2MlMgG8Gu .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-luiA1ak2MlMgG8Gu .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-luiA1ak2MlMgG8Gu .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-luiA1ak2MlMgG8Gu .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-luiA1ak2MlMgG8Gu .marker{fill:#333333;stroke:#333333;}#mermaid-svg-luiA1ak2MlMgG8Gu .marker.cross{stroke:#333333;}#mermaid-svg-luiA1ak2MlMgG8Gu svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-luiA1ak2MlMgG8Gu .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-luiA1ak2MlMgG8Gu .cluster-label text{fill:#333;}#mermaid-svg-luiA1ak2MlMgG8Gu .cluster-label span{color:#333;}#mermaid-svg-luiA1ak2MlMgG8Gu .label text,#mermaid-svg-luiA1ak2MlMgG8Gu span{fill:#333;color:#333;}#mermaid-svg-luiA1ak2MlMgG8Gu .node rect,#mermaid-svg-luiA1ak2MlMgG8Gu .node circle,#mermaid-svg-luiA1ak2MlMgG8Gu .node ellipse,#mermaid-svg-luiA1ak2MlMgG8Gu .node polygon,#mermaid-svg-luiA1ak2MlMgG8Gu .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-luiA1ak2MlMgG8Gu .node .label{text-align:center;}#mermaid-svg-luiA1ak2MlMgG8Gu .node.clickable{cursor:pointer;}#mermaid-svg-luiA1ak2MlMgG8Gu .arrowheadPath{fill:#333333;}#mermaid-svg-luiA1ak2MlMgG8Gu .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-luiA1ak2MlMgG8Gu .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-luiA1ak2MlMgG8Gu .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-luiA1ak2MlMgG8Gu .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-luiA1ak2MlMgG8Gu .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-luiA1ak2MlMgG8Gu .cluster text{fill:#333;}#mermaid-svg-luiA1ak2MlMgG8Gu .cluster span{color:#333;}#mermaid-svg-luiA1ak2MlMgG8Gu div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-luiA1ak2MlMgG8Gu :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. 修改hosts : 增加alertmanager所在机器的登录信息 2. 修改vars.yml : 增加几个变量的定义 3. 新增install_alertmanager.yml : alertmanager部署脚本 hosts文件内容如下新增了alertmanager可见我这里是把prometheus和alertmanager部署在同一台机器上的您可以按自己的实际情况调整 [prometheus-group] prometheus ansible_host192.168.50.134 ansible_port22 ansible_userprometheus ansible_password888888 working001 ansible_host192.168.50.134 ansible_port22 ansible_userprometheus ansible_password888888 alertmanager ansible_host192.168.50.134 ansible_port22 ansible_userprometheus ansible_password888888vars.yml文件内容如下新增四个和alertmanager有关的 prometheus_user_home: /home/prometheus prometheus_base_path: {{prometheus_user_home}}/prometheus prometheus_url: https://github.com/prometheus/prometheus/releases/download prometheus_version: 2.37.7 prometheus_deploy_path: {{prometheus_base_path}}/prometheus-{{prometheus_version}}.linux-amd64node_exporter_base_path: {{prometheus_user_home}}/node_exporter node_exporter_url: https://github.com/prometheus/node_exporter/releases/download node_exporter_version: 1.5.0 node_exporter_deploy_path: {{node_exporter_base_path}}/node_exporter-{{node_exporter_version}}.linux-amd64alertmanager_base_path: {{prometheus_user_home}}/alertmanager alertmanager_url: https://github.com/prometheus/alertmanager/releases/download alertmanager_version: 0.25.0 alertmanager_deploy_path: {{alertmanager_base_path}}/alertmanager-{{alertmanager_version}}.linux-amd64最后是执行部署的脚本install_alertmanager.yml - name: 部署alertmanagerhosts: alertmanagergather_facts: Truevars_files:- vars.yml tasks:- name: 停止残留的alertmanagerignore_errors: yessystemd:name: alertmanagerstate: stoppedbecome: yes- name: 清理可能的alertmanager service残留文件file:path: /etc/systemd/system/alertmanager.servicestate: absentbecome: yes- name: 清理可能的alertmanager残留文件夹file:path: {{alertmanager_base_path}}state: absent- name: 新建部署文件夹file:path: {{alertmanager_base_path}}state: directorymode: 0755- name: 下载并解压文件alertmanager-{{alertmanager_version}}.linux-amd64.tar.gzansible.builtin.unarchive:src: {{alertmanager_url}}/v{{alertmanager_version}}/alertmanager-{{alertmanager_version}}.linux-amd64.tar.gzdest: {{alertmanager_base_path}}remote_src: yes- name: 生成systemd的service文件shell: |tee /etc/systemd/system/alertmanager.service -EOF[Unit]DescriptionAlert manager ServerDocumentationhttps://prometheus.io/docs/introduction/overview/Afternetwork-online.target[Service]UserprometheusRestarton-failureExecStart{{alertmanager_deploy_path}}/alertmanager --config.file{{alertmanager_deploy_path}}/alertmanager.yml --storage.path{{alertmanager_base_path}}/data[Install]WantedBymulti-user.targetEOFbecome: yes- name: 刷新服务配置systemd:daemon_reload: truebecome: yes- name: 将alertmanager服务设置为自启动systemd:name: alertmanagerenabled: truemasked: nobecome: yes - name: 启动alertmanagersystemd:state: startedname: alertmanagerbecome: yes 以上就是部署alertmanger所需的全部脚本了它们都存放在ansible服务器的playbooks目录下 2. 部署alertmanager ssh到ansible服务器在playbooks目录执行以下命令即可完成部署 ansible-playbook install_alertmanager.yml检查服务状态确认已经启动成功 alertmanager也有自己的webui端口号是9093浏览器打开后如下图所示只不过现在还是空空如也的状态 3. 配置prometheus使告警到达alertmanager 目前prometheus还不知道alertmanager服务已就绪需要修改它的配置文件prometheus.yml让它知道alertmanager在哪里以prometheus账号的身份登录prometheus服务器修改prometheus.yml文件如下图增加alertmanager的地址 然后用命令systemctl restart prometheus重启prometheus服务注意是prometheus账号可以在prometheus的webui检查配置是否成功 4. 配置alertmanager使通知到达web服务 现在prometheus的告警可以到达alertmanager了然后要考虑的是alertmanager如何处理这个告警按照最初的目标就是alertmanager会发起webhook于是咱们就要在alertmanager上做配置让它知道收到告警后该怎么做alertmanager的告警通知配置共有以下五部分 全局配置(global)一些通用的全局参数模板(templates)告警通知用的模板告警路由(route)指定特定的告警去特定的通知目标例如A告警走webhookB告警走邮件通知通知接受者(receivers)定义通知目标例如webhook、邮件等抑制规则(inhibit_rules)对告警进行收敛的规则避免产生无用告警 本篇使用的配置文件route.yml如下每个配置都有详细描述 global:# 全局配置收到告警后如果持续10分钟都没再收到告警就把告警状态标记为resolved已解决resolve_timeout: 10m route:# 分组处于同一组的告警会被合并为同一个通知# 这里设置的是alertname相同的告警会被合并为同一个通知group_by: [alertname]# 30秒是个时间窗口这个窗口内同一个分组的所有消息会被合并为同一个通知group_wait: 30s# 同一个分组发送一次合并消息之后每隔1分钟检查一次告警判断是否要继续对此告警做操作group_interval: 1m# 按照group_interval的配置每隔1每分钟检查一次等到第六次时1*66大于repeat_interval的5m此时就会在再次发送告警repeat_interval: 5m# 指定具体的通知方式# 简单起见这里只配置了顶级路由没有针对故障的标签进行细分receiver: web.hook receivers:- name: web.hookwebhook_configs:# alertmanager发起web请求的地址- url: http://192.168.50.134:8888/webhook # 告警抑制规则可以有多条 inhibit_rules:# 这个规则的意思是一旦收到critical级别的告警那么再收到低级别(warning)的告警就没必要通知了# 还有一处非常重要的比较就是低级别告警的node标签的值要和critical级别告警的node标签的值要相等也就是确保两个告警的来源相同- source_match:severity: criticaltarget_match:severity: warningequal: [node]在本篇的实战中由于prometheus发来的告警非常简单只是个CPU使用量过高的告警达不到上面的抑制规则的要求需要sererity和node两个标签所以抑制规则就不做实际演练了注意上面配置的webhook_configs地址是http://192.168.50.134:8888/webhook这是咱们自己写的一个web服务只要alertmanager收到prometheus发来的告警就会调用这个web接口当然了目前此接口还未实现留待下一篇完成 5. 简单验证 现在web应用还没有开发出来所以alertmanager收到告警去调用web接口肯定会失败的不过即便如此我也想强行试试效果动手吧确保您的prometheus是正常状态然后像前文那样把应用服务器的CPU弄得很高例如运行ffmpeg触发告警 这时候去看alertmanager的web UI地址是http://192.168.50.134:9093/#/alerts发现已经收到了来自prometheus的告警证明咱们的部署和配置都是有效的了 既然咱们配置了webhook而且webhook的地址是个不存在的服务那么alertmanager的告警通知应该会发生调用失败吧这只是个推测要如何确认呢用命令journalctl _PID767查看alertmanager日志767是alertmanager的进程ID内容如下所示可见alertmanager确实根据配置向http://192.168.50.134:8888/webhook发起了web调用遇到了connection refused错误完全符合预期 May 13 10:04:40 deskmini alertmanager[767]: ts2023-05-13T02:04:40.869Z callernotify.go:732 levelwarn componentdispatcher receiverweb.hook integrationwebhook[0] msgNotify attempt failed, will retry later attempts1 errPost \http://192.168.50.134:8888/webhook\: dial tcp http://192.168.50.134:8888/webhook: connect: connection refused May 13 10:09:40 deskmini alertmanager[767]: ts2023-05-13T02:09:40.869Z callerdispatch.go:352 levelerror componentdispatcher msgNotify for alerts failed num_alerts1 errweb.hook/webhook[0]: notify retry canceled after 16 attempts: Post \http://192.168.50.134:8888/webhook\: dial tcp http://192.168.50.134:8888/webhook: connect: connection refused May 13 10:09:40 deskmini alertmanager[767]: ts2023-05-13T02:09:40.869Z callernotify.go:732 levelwarn componentdispatcher receiverweb.hook integrationwebhook[0] msgNotify attempt failed, will retry later attempts1 errPost \http://192.168.50.134:8888/webhook\: dial tcp http://192.168.50.134:8888/webhook: connect: connection refused至此alertmanager的部署和配置就完成了也初步验证过基本功能都是正常的下一篇咱们一起动手开发web服务达到最终目标应用服务器CPU偏高的时候飞书APP收到告警 你不孤单欣宸原创一路相伴 Java系列Spring系列Docker系列kubernetes系列数据库中间件系列DevOps系列
http://www.w-s-a.com/news/968867/

相关文章:

  • 云服务器上放多个网站wordpress ping大全
  • 以下属于网站的管理 更新 维护如何才能做好品牌网站建设
  • 国家工业和信息化部网站备案系统网站建设设计费用
  • 网站建设利弊宁波高端网站建设联系方式
  • 网站订票策划方案郑州代做网站
  • 免费的网站加速器注册公司邮箱
  • 千助网站建设网站整站程序
  • 自学建网站做网站优化访问网站出现目录
  • 济南网站建设是什么百度官网登录入口手机版
  • net快速建站西宁手机网站建设
  • 网站浏览器不兼容怎么办软件系统开发大概多少钱
  • 网站建设哪个公司最好shift wordpress
  • 公司网站建设功能介绍室内设计学习
  • 做网站策划容易遇到哪些问题沈阳公司网站制作
  • 做php网站都用框架吗网站备案当面核验拍摄照片
  • 泉州企业自助建站兰州最好的互联网公司
  • 监察部门网站建设方案网站seo技术教程
  • 个人网站制作源代码下载品牌建设部
  • 网站备案需要准备什么文创产品设计思路
  • 网站开发书籍推荐青岛城阳新闻最新消息
  • 秦皇岛网站建设服务聊城做网站的公司资讯
  • 30岁转行做网站设计丰涵网站建设
  • 山东省和住房建设厅网站首页开发商不按时交房可以退房吗
  • asp网站怎么做404页面跳转本地南通网站建设
  • 点击网站出现微信二维码的链接怎么做申请网站空间怎么做
  • 网站开发的论文题目广告设计排行榜
  • 网络营销网站 功能南京h5制作公司
  • 做网站的费用的会计分录合肥做网站推广哪家好
  • 电子商城网站开发怎么wordpress用的什么主题
  • 榆林电商网站建设网上做试卷的网站