自定义消息

最近更新时间:2019-03-06 17:34:13

概述

腾讯云监控服务提供了完整的监控数据采集获取,数据计算聚合,可视化数据展示,告警判定收敛,及告警分发与通道触达等能力。
现云监控自定义消息将告警通道能力产品化独立开放,面向业务监控告警场景,为自有服务和自建监控系统提供告警分发与通道能力。助力客户快速构建打通告警消息推送渠道。

功能

自定义消息面向业务告警场景提供了以下功能:

  • 告警分发:通过配置管理不同的消息策略,将从属不同模块和资源的告警推送至对应消息策略,实现告警信息的分发。
  • 告警订阅:消息策略可配置接收组实现对应告警信息的订阅。
  • 告警渠道:支持对消息策略配置告警渠道,免配置的接收组内接收人使用对应渠道推送告警信息。
  • 告警历史查看检索:对应消息策略可以查看历史推送的告警信息,并支持对告警内容关键字进行搜索。

场景

  • 自定义业务告警推送:自建监控系统,告警通过特定告警渠道推送至对应接收人
  • 服务重要信息及时触达:特定服务状态与异常发生时及时推送开发者,无需监控、日志系统对接与告警策略配置。

原理与调用方式

云监控自定义消息以消息策略为告警信息接收与分发推送中枢,消息策略有全局唯一ID标识。告警信息通过提供对应消息策略ID实现信息分发至各消息策略,消息策略再根据起订阅关系和告警渠道完成告警消息触达接收人。

云监控自定义消息支持两种调用方式为客户提供告警通道服务。

  • API:使用发送自定义消息内容api,传递指定消息策略ID与告警内容,将告警信息推送至对应消息策略。查看自定义消息发送调用API
  • 监控组件:在已安装云监控监控组件监控组件的CVM中,可直接使用提供的命令行发送工具【cagent_tools】,调用相应命令指定策略ID和内容,并在告警时发送相关内容。

操作指南

消息策略创建与管理

创建、配置、编辑和删除消息策略。

  1. 登录 云监控控制台
  2. 在左侧导航栏中,单击【告警配置】-【自定义消息】 进入自定义消息页面。
  3. (可选)单击【新增消息策略】,填写消息策略名称,选择消息接收组和勾选对应告警渠道。单击【完成】,完成策略创建。
  4. (可选)单击特定消息策略操作栏【编辑】,对策略名称,消息接收组和告警渠道进行修改。单击【完成】,完成策略修改。
  5. (可选)单击特定消息策略操作栏【删除】,单击确认弹窗中的【确定】,完成策略删除。

告警信息调用推送

调用 API 与使用监控组件命令行工具发送信息至自定义消息服务。

  1. 登录 云监控控制台的 自定义消息页面 获取对应告警分发目的策略的策略ID。
  2. (可选)【方式一】通过调用发送自定义消息内容 API,传递指定消息策略 ID 与告警内容至对应消息策略。查看自定义消息发送调用 API 文档。
  3. (可选)【方式二】通过使用监控组件提供的命令行发送工具【cagent_tools】,调用命令指定策略ID和内容,推送告警信息至对应消息策略。

    注意:

    cagent_tools 仅适用于腾讯云中使用系统镜像创建的云服务器。

示例1:Linux系统使用 cagent_tools

  1. 安装 Linux 监控组件,安装方法见安装监控控件
  2. 查看工具帮助,直接执行以下命令,查看帮助信息:
    cagent_tools
    结果如下图:
  3. 调用命令指定策略 ID 和内容推送告警内容。执行以下命令:
    cagent_tools alarm ‘$告警内容’ cm-xxxxxxxx(策略ID)

    注意:

    • 中文告警内容目前仅支持 utf-8 编码格式。
    • 告警内容最大长度为256字节, 超出部分会截断。
    • 成功发送告警信息,命令行提示"send alarm OK!",进程执行返回码为0;若发送告警信息失败,命令行提示相应错误,进程执行返回码为非0。
  4. 附使用案例。
    • PHP示例:
      $link = mysql_connect('192.168.0.2', 'mysql_user', 'mysql_password');
      if (!$link) {
      //alarm content
      $alarmContent = " Connection failed ";
      $cmd = “cagent_tools alarm $alarmContent cm-xxxxxxxx(policyId)”; 
      system($cmd);
      die('Could not connect: ' . mysql_error());
      }
    • Shell示例:
      #!/bin/sh
      PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:$PATH
      CAGENT_CMD = /usr/bin/cagent_tools
      cnt=$(ps -ef | grep mysqld | grep -v grep | wc -l)
      if [ $cnt -eq 0 ] ; then
      # alarm content 
      cagent_tools alarm "the process mysqld died." cm-xxxxxxxx(policyId)
      fi

示例2: Windows系统使用cagent_tools

  1. 安装 Windows 监控组件,安装方法见 安装监控控件
  2. 查看工具帮助,在命令行界面下执行以下命令,查看帮助信息:
    cagent_tools
    结果如下:
  3. 调用命令指定策略 ID 和内容推送告警内容,执行以下命令:
    cagent_tools alarm "$告警内容" cm-xxxxxxxx(策略ID)
  4. 附使用案例。
    • DOS 示例:
      @echo off
      set service_name=StargateSvc
      sc query %service_name% > nul
      if not %errorlevel% == 0 (
      cagent_tools alarm "service %service_name% didn't exist" cm-xxxxxxxx(policyId)
      )

注意:

  • 中文告警内容目前支持 UTF-8 和 GBK 编码格式。
  • 告警内容显示最大长度为256 字节, 超出部分会截断。
  • 成功发送告警信息,命令行提示"send alarm OK!",进程执行返回码为0;若发送告警信息失败,命令行提示相应错误,进程执行返回码为非0。

告警历史查看与检索

  1. 登录 云监控控制台
  2. 在左侧导航栏中,单击【告警配置】>【自定义消息】,进入自定义消息页面。
  3. 单击对应策略近24小时触发告警数字,如下图所示。
  4. 系统将打开悬浮窗展示策略所发送所有告警信息内容,时间与调用方式。
  5. (可选)在右上侧搜索框内输入告警消息内容关键字或者调用 cagent_toolsCVM 的内网 IP,检索对应的告警记录。