文档目录

监控报警

监控报警相关术语:
  1. 时序数据(Metric):代表一个时序数据的监控指标,例如虚拟机CPU的使用率。
  2. 事件(Event):代表某一个事件,例如物理机失联
    Note:
    • 时序数据是时间连续数据,例如以10s间隔采样的虚拟机CPU使用率
    • 事件是离散数据,例如在网络断开后发生的物理机失联的事件
  3. 报警器(Alarm):针对时序数据的报警器,例如在虚拟机CPU使用率连续5分钟超过80%时以邮件的方式向用户报警
  4. 事件订阅(Event Subscription):作用类似于Alarm,只是针对事件报警。例如在物理机失联事件发生时,用邮件的方式向用户报警
  5. 报警文本模板(Text Template):在报警时(Alarm/Event Subscription),用于格式化报警文本

时序数据(Metric)

获取所有metric元数据(GetAllMetricMetadata)

Metric由系统定义也可以由用户创建,用户可以用GetAllMetricMetadata获取系统中已定义的metric以及它们的metadata。
GetAllMetricMetadata namespace=ZStack/PrimaryStorage

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
name 监控指标名称 3.9.0
namespace 监控指标命名空间 3.9.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
该API返回类似如下结构:
[
        {
            "description": "OperatingSystemCPUSystemUtilization",
            "driver": "PrometheusDatabaseDriver",
            "labelNames": [
                "BaremetalVMUuid",
                "CPUNum"
            ],
            "name": "OperatingSystemCPUSystemUtilization",
            "namespace": "ZStack/BaremetalVM"
        },
        {
            "description": "OperatingSystemCPUUserUtilization",
            "driver": "PrometheusDatabaseDriver",
            "labelNames": [
                "BaremetalVMUuid",
                "CPUNum"
            ],
            "name": "OperatingSystemCPUUserUtilization",
            "namespace": "ZStack/BaremetalVM"
        }
]
  • namespace : metric所属的名字空间,用于将相同类型的metric归类
  • name : metric名称
  • labelNames : 标签名。标签用于过滤metric数据,例如metric DataVolumeCount表示主存储上的云盘数量,如果想知道某个主存储上的云盘数量,则可以指定PrimaryStorageUuid标签进行过滤

获取metric的标签值(GetMetricLabelValue)

多数Metric包含一个或多个标签用于描述该metric的元数据。例如namespace ZStack/Host的metric CPUIdleUtilization包含HostUuidCPUNum用于描述CPU的Idle值是属于哪个物理机的哪个CPU。 用户可以通过GetMetricLabelValue获得某个metric的标签的可能值。例如系统中有两个物理机,则HostUuid的可能值有两个分别为这两个物理机的UUID。
GetMetricLabelValue namespace=ZStack/Host metricName=CPUIdleUtilization labelNames=CPUNum,HostUuid

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
namespace 名字空间名称 2.3
metricName 2.3
labelNames 要获取值的标签名列表 2.3
filterLabels 标签过滤器列表,例如可以指定标签HostUuid=e47f7145f4cd4fca8e2856038ecdf3e1来选择特定物理主机的,labelNames中指定标签的值 2.3
startTime 起始时间 3.9.0
endTime 结束时间 3.9.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
返回:
{
    "labels": [
        {
            "CPUNum": "0",
            "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
        },
        {
            "CPUNum": "1",
            "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
        },
        {
            "CPUNum": "2",
            "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
        },
        {
            "CPUNum": "3",
            "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
        },
        {
            "CPUNum": "4",
            "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
        },
        {
            "CPUNum": "5",
            "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
        },
        {
            "CPUNum": "6",
            "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
        },
        {
            "CPUNum": "7",
            "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
        }
    ],
    "success": true
}
  • 用户可以用filterLabels指定过滤条件,例如只返回HostUuid=a133cbcfdc1d462c9b51d7bce6ac6b11所有CPUNum的可能值:
    GetMetricLabelValue namespace=ZStack/Host metricName=CPUIdleUtilization labelNames=CPUNum filterLabels=HostUuid=a133cbcfdc1d462c9b51d7bce6ac6b11
  • filterLabels可以指定多个。
    GetMetricLabelValue namespace=ZStack/Host metricName=CPUIdleUtilization labelNames=CPUNum filterLabels=HostUuid=a133cbcfdc1d462c9b51d7bce6ac6b11,CPUNum=1
    {
        "labels": [
            {
                "CPUNum": "1",
                "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
            }
        ],
        "success": true
    }

获取metric数据(GetMetricData)

GetMetricData用于获得metric的数据:
GetMetricData namespace=ZStack/Host metricName=NetworkAllOutBytes

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
namespace 名字空间 2.3
metricName 监控项 2.3
startTime 起始时间 2.3
endTime 结束时间 2.3
period 时间精度 2.3
labels 过滤标签 2.3
functions 函数列表 2.3
offsetAheadOfCurrentTime 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
返回metric的时序数据:
{
    "data": [
        {
            "labels": {
                "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
            },
            "time": 1516363957,
            "value": 1678.9
        },
        {
            "labels": {
                "HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
            },
            "time": 1516364017,
            "value": 1920.1000000000001
        }
    ],
    "success": true
}
  • 其中value为double型的数据值,time是epoch time(单位秒),labels为标签组,可以用于过滤返回值。例如只获取UUID为a133cbcfdc1d462c9b51d7bce6ac6b11物理机的数据:
    GetMetricData namespace=ZStack/Host metricName=NetworkAllOutByte labels=HostUuid=a133cbcfdc1d462c9b51d7bce6ac6b11
  • 标签支持=(等于)和=~正则两种匹配方式,可以用正则匹配多个标签值。例如返回UUID为a133cbcfdc1d462c9b51d7bce6ac6b11506bd3b46a6543718488b5ba5850aaaa两个物理机的metric值,可以用:
    GetMetricData namespace=ZStack/Host metricName=NetworkAllOutByte labels=HostUuid=~a133cbcfdc1d462c9b51d7bce6ac6b11|506bd3b46a6543718488b5ba5850aaaa
  • 可以传入多个标签作为过滤条件,例如:
    GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph
  • 可以通过startTimeendTime指定查询的时间范围:
    GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph startTime=1516364017 endTime=1516365000
    Note: startTime/endTime均为epoch time。若都省略,默认返回最近1分钟内的数据。若endTime省略,则其值默认为当前时间。
  • period用于指定返回数据的时间精度
  • 可以通过functions传入一组函数对数据进行后处理,例如:
    GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph startTime=1516364017 endTime=1516365000 functions=sort(by=\"value\"\\,direction=\"desc\")
  • 这里使用sort函数对返回结果的value进行降序排序。传入多个函数时按顺序执行,例如:
    GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph startTime=1516364017 endTime=1516365000 functions=sort(by=\"value\"\\,direction=\"desc\"),limit(limit=1)
    Note: 在CLI中需要对函数中的"\转译,用于分隔函数参数的,需要用\\转译
  • 先对数据排序,然后返回第一个数据。
    Note: 函数具体支持列表见附录

存入自定义metric数据 (PutMetricData)

Note: 该API与UI无关,UI设计无需考虑

用户可以使用PutMetricData将时序数据存入ZStack的后端时序数据库中,并使用ZWatch提供的API对时序数据进行操作,方便用户实现自定义metric。例如用户希望将一个MySQL也纳入ZWatch的监控中,则可以通过脚本获得MySQL的并发连接数,周期性的调用PutMetricData API将数据导入,然后就可以使用ZWatch的报警器对该MySQL实例的最大连接数进行报警。

PutMetricData namespace=MyNamespace data='[{"metricName":"MySQLMaxConnections", "value":1000, "labels":{"ip":"10.0.0.10"}}]'

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
namespace 自定义名字空间名称 2.3
data 数据 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
PutMetricDatadata字段接收一个数据列表
[{
    "metricName": "MySQLMaxConnections",
    "value": 1000,
    "labels": {
        "ip": "10.0.0.10"
    }
}]
  • metricName: metric名称
  • value: 整数或浮点数的数据值
  • labels:自定义标签
可以同时push多个属于一个namespace的多个metric:
[{
    "metricName": "MySQLMaxConnections",
    "value": 1000,
    "labels": {
        "ip": "10.0.0.10"
    }
}, {
    "metricName": "MySQLMemory",
    "value": 1999999999999,
    "labels": {
        "ip": "10.0.0.10"
    }
}]
Note: namespace和metric在存入数据时自动创建。没有API删除namespace和metric,数据会在其TTL超时后自动删除

事件(Event)

跟metric不同,event只能由系统定义。事件由系统产生,通常是由某种条件出发,例如物理机网络中断会引发一个HostDisconnected事件,用户可以通过订阅该事件在物理机失联时收到通知,例如邮件通知。

获取所有event元数据(GetAllEventMetadata)

用户可以用GetAllEventMetadata获得系统所有已定义事件以及其元数据:
GetAllEventMetadata namespace=ZStack/VM

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
name 事件名称 3.9.0
namespace 事件命名空间 3.9.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag)
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag)
timeout
其返回类似:
{
    "events": [{
           "description": "VMStateChangedOnHost",
            "labelNames": [
                "OldState",
                "NewState",
                "SourceHostUuid",
                "DestinationHostUuid"
            ],
            "name": "VMStateChangedOnHost",
            "namespace": "ZStack/VM"
        },
        {
           "description": "VRouterDisconnected",
            "labelNames": [
                "Error"
            ],
            "name": "VRouterDisconnected",
            "namespace": "ZStack/VRouter"
        }
    ],
    "success": true
}
元数据结构包含如下字段:
  • namespace: 事件所在的namespace
  • name: 事件名
  • labelNames: 事件的标签名

获取事件 (GetEventData)

用户可以用GetEventData获取系统已发生的事件:
GetEventData 

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
startTime 起始时间 2.3
endTime 结束时间 2.3
limit 最大返回条数 2.3
offsetAheadOfCurrentTime 早于当前时间的毫秒数,例如:查询最近一小时的消息,则传入3600000 3.3.0
conditions 查询条件 3.3.0
count 是否查询事件数量 3.3.0
endpointUuid 接收端Uuid 3.10.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
返回包含一组事件:
{
    "events": [
        {
            "emergencyLevel": "Normal",
            "labels": {
                "NewStatus": "Connecting",
                "OldStatus": "Connected"
            },
            "name": "HostStatusChanged",
            "namespace": "ZStack/Host",
            "resourceId": "184eae9058f9477a91975f549b54f59f",
            "resourceName": "Host-1",
            "time": 1510984704006
        },
        {
            "emergencyLevel": "Normal",
            "labels": {
                "NewStatus": "Disconnected",
                "OldStatus": "Connecting"
            },
            "name": "HostStatusChanged",
            "namespace": "ZStack/Host",
            "resourceId": "184eae9058f9477a91975f549b54f59f",
            "resourceName": "Host-1",
            "time": 1510984704633
        }
    ],
    "success": true
}
其中:
  • emergencyLevel:紧急程度,包含MajorInfoEmergent三种
  • name:事件名称
  • namespace:事件所在namespace
  • resourceId:事件所发生资源的ID,如果为ZStack Cloud资源该ID为资源的UUID
  • resourceName:事件所发生资源的名称
  • time:事件发生的时间

GetEventData支持以下字段:

  • startTime: 起始时间。
  • endTime:结束时间。用户可以通过设置startTimeendTime来获得指定时间段内发生的事件。
  • limit:返回事件的数量。若不指定,默认返回最多100个事件。
  • conditions:过滤条件。用户可以emergencyLevel,name,namespace,resourceName作为过滤条件,例如获得所有跟物理机有关的紧急事件可以用:
    GetEventData conditions=namespace=ZStack/Host,emergencyLevel=Emergent

    过滤条件支持=(等于)和=~(正则)两种操作符。

  • endpointUuid:接收端Uuid。

更新事件消息(UpdateEventData)

用户可以使用UpdateEventData更新事件消息。 例如:
UpdateEventData updateMode=All

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
dataUuid 资源的UUID,唯一标示该资源 3.3.0
dataStartTime 选择目标消息的起始时间,updateMode需要传入InRange 3.3.0
dataEndTime 选择目标消息的结束时间,updateMode需要传入InRange 3.3.0
updateMode 选择更新目标消息的范围,OnlyOne表示只更新指定的消息,InRange表示更新某个时间范围产生的消息, All表示更新所有消息
  • OnlyOne
  • InRange
  • All
3.3.0
readStatus 更新消息已读状态
  • Read
  • Unread
3.3.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 3.3.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 3.3.0
timeout

查询事件报警器报警记录(QueryEventRecord)

用户可以使用QueryEventRecord查询事件报警器报警记录。 例如:
QueryEventRecord accountUuid=f30e0a92898a3cf39b98c7b20d5d09d7

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
accountUuid 报警器所属账号UUID 4.1.0
createTime 4.1.0
dataUuid 4.1.0
emergencyLevel 报警等级 4.1.0
error 4.1.0
id 资源名称 4.1.0
labels 标签列表 4.1.0
name 4.1.0
namespace 名字空间 4.1.0
readStatus 更新消息已读状态 4.1.0
resourceId 事件所发生资源的ID 4.1.0
subscriptionUuid 事件订阅UUID 4.1.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 4.1.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 4.1.0
timeout

报警器(Alarm)

用户可以对metric设置报警器,当报警条件达到时,通过邮件/钉钉/HTTP应用/短信等方式接收报警信息。

创建报警器 (CreateAlarm)

用户可以用CreateAlarm创建针对metric的报警器,例如:
CreateAlarm namespace=ZStack/VM metricName=CPUAllUsedUtilization comparisonOperator=GreaterThanOrEqualTo period=300 \
repeatInterval=600 threshold=90 actions='[{"actionUuid":"2447db65cb46495e87b53d9afbad6936","actionType":"sns"}]' labels='[{"key":"VMUuid", "op":"Equal", \
"value":"1a1d7395cf74474ca52deb80c41214a1"}]' name=my-vm-alarm

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
name 资源名称 2.3
description 资源的详细描述 2.3
comparisonOperator 阈值比较符
  • GreaterThanOrEqualTo
  • GreaterThan
  • LessThan
  • LessThanOrEqualTo
2.3
period 阈值持续时间 2.3
namespace 名字空间 2.3
metricName 监控项名 2.3
threshold 阈值 2.3
repeatInterval 报警重复时间 2.3
labels 标签列表 2.3
actions 报警动作列表 2.3
resourceUuid 2.3
repeatCount 报警重复次数 3.3.0
type 报警器类型 3.3.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
enableRecovery 开启恢复通知 3.4.0
emergencyLevel 报警等级
  • Emergent
  • Important
  • Normal
3.8.0
timeout
{
  "inventory": {
    "uuid": "a6bed2b7c5154371a384f0f90dcd227e",
    "name": "VM CPU Alarm",
    "comparisonOperator": "LessThanOrEqualTo",
    "period": 60.0,
    "namespace": "ZStack/VM",
    "metricName": "org.zstack.zwatch.datatype.Metric@22c0dd63",
    "threshold": 30.0,
    "repeatInterval": 1800.0,
    "repeatCount": -1.0,
    "status": "Alarm",
    "state": "Enabled",
    "createDate": "Jan 8, 2019 4:08:43 PM",
    "lastOpDate": "Jan 8, 2019 4:08:43 PM",
    "labels": [
      {
        "uuid": "c74cb057092243ea8f838a1b4caec128",
        "key": "VMUuid",
        "operator": "\u003d",
        "value": "b5defee7d82f44c692d31e9a9d9e8e7f"
      }
    ],
    "actions": [
      {
        "alarmUuid": "433a94c9da494565a28dc4736e159297",
        "actionType": "sns",
        "actionUuid": "6d5583e8210445e3963c3784d550b8c2"
      }
    ]
  }
}

这里我们对UUID为2c6a070b97d648c080284d395cadb855虚拟机的CPUAllUsedUtilization(所有CPU的总使用率)metric创建了一个报警器,当CPU利用率(threshold)超过(comparisonOperator)90%,并且持续时间(period)超过300秒时,发送报警信息(actions)到SNS主题2447db65cb46495e87b53d9afbad6936。如果在600秒(repeatInterval)内该虚拟机CPU使用率一直超过90%,并且已经报警过了,则不要重复报警。

CreateAlarm包含如下字段:
  • namespace: metric所在namespace
  • metricName:metric名称
  • comparisonOperator:阈值比较符号,包括GreaterThanOrEqualTo(大于等于),GreaterThan(大于),LessThan(小于),LessThanOrEqualTo(小于等于)四种。
  • period:持续时间,单位秒
  • repeatInterval:不重复报警时间,单位秒。用于在一段时间内重复报警。例如报警条件是1分钟内CPU利用率超过90%报警,但该虚拟机CPU利用率超过90%持续了10分钟,则用户会连续收到10条报警。若将repeatInterval设置成10分钟,则只会收到一条报警,设置成5分钟则收到两条报警。以此来避免alarm flooding。如该字段未设置,则默认为30分钟。用户可以通过设置zwatch.alarm.repeatInterval全局设置来调整该默认值。
  • threshold:阈值,浮点数
  • actions:报警动作。报警发生时系统执行的动作。目前只支持向SNS主题发送报警消息。报警动作结构为:
    {
    "actionUuid": "2447db65cb46495e87b53d9afbad6936",
    "actionType": "sns"
    }
    

    actionUuid为SNS主题的UUID,actionType为固定值sns。可以指定多个报警动作。

  • labels:metric过滤标签。通过标签匹配特定的metric,例如对指定虚拟机报警需要设置VMUuid标签:
    {
        "key": "VMUuid",
        "operator": "Equal",
        "value": "1a1d7395cf74474ca52deb80c41214a1"
    }

    key为标签名;operator为标签比较符,支持Equal(等于)和Regex(正则)两种;value为标签值。可以指定多个标签。用户可以通过GetAllMetricMetadata获得每个metric支持的标签。

报警器状态

报警器包含OK,Alarm,InsufficientData三种状态:
  • OK:正常状态,metric数据没有触发报警
  • Alarm:报警状态,metric数据已触发报警器
  • InsufficientData:数据不足状态,metric还未采集到足够数据

通常报警器处于OKAlarm状态。

删除报警器(DeleteAlarm)

用户可以使用DeleteAlarm删除一个报警器:
DeleteAlarm uuid=f8906dd1ce5d4534b4c6b58900e795ef

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 2.3
deleteMode 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout

修改报警器 (UpdateAlarm)

用户可以使用UpdateAlarm修改一个报警:

UpdateAlarm name=my-new-alarm threshold=99 uuid=f8906dd1ce5d4534b4c6b58900e795ef

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 2.3
name 资源名称 2.3
description 资源的详细描述 2.3
comparisonOperator 阈值比较符
  • GreaterThanOrEqualTo
  • GreaterThan
  • LessThan
  • LessThanOrEqualTo
2.3
period 阈值持续时间 2.3
threshold 阈值 2.3
repeatInterval 报警重复时间 2.3
repeatCount 报警重复次数 3.3.0
enableRecovery 开启恢复通知 3.8.0
emergencyLevel 报警等级
  • Emergent
  • Important
  • Normal
3.8.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
Note:

namespace,metricName,actions,labels四个字段外,其它字段均可以修改。

修改事件报警器 (UpdateSubscribeEvent)

用户可以使用UpdateSubscribeEvent修改事件报警器:

UpdateSubscribeEvent uuid=f8906dd1ce5d4534b4c6b58900e795ef emergencyLevel=Normal

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 3.8.0
emergencyLevel 报警等级
  • Emergent
  • Important
  • Normal
3.8.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 3.8.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 3.8.0
timeout
Note:

namespace,metricName,actions,labels四个字段外,其它字段均可以修改。

增加报警动作 (AddActionToAlarm)

用户可以使用AddActionToAlarm对一个报警器增加一个报警动作。actionTypeactionUuid字段意义跟CreateAlarmactions字段相同。
AddActionToAlarm alarmUuid=f8906dd1ce5d4534b4c6b58900e795ef actionType=sns actionUuid=2c6a070b97d648c080284d395cadb855

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
alarmUuid 报警器UUID 2.3
actionUuid 报警动作UUID 2.3
actionType 报警动作类型 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout

删除报警动作 (RemoveActionFromAlarm)

用户可以使用RemoveActionFromAlarm删除一个报警器的报警动作:
RemoveActionFromAlarm alarmUuid=f8906dd1ce5d4534b4c6b58900e795ef actionUuid=f8906dd1ce5d4534b4c6b58900e795ef

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
alarmUuid 报警器UUID 2.3
actionUuid 报警动作UUID 2.3
deleteMode 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout

增加标签到报警器(AddLabelToAlarm)

用户可以使用AddLabelToAlarm对一个报警器增加一个标签。

AddLabelToAlarm key=VMUUid operator=Regex value=e3206dd1ce5d4534b4c6b58900e795ef|1a1d7395cf74474ca52deb80c41214a1 uuid=f8906dd1ce5d4534b4c6b58900e795ef
Note: 这里key,opeartor,value意义跟CreateAlarmlabels字段相同。

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
alarmUuid 报警器UUID 2.3
key 标签键 2.3
value 标签值 2.3
operator 操作符
  • Regex
  • Equal
2.3
resourceUuid 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout

修改报警器标签(UpdateAlarmLabel)

用户可以使用UpdateAlarmLabel修改报警器标签。 例如:
UpdateAlarmLabel key=VMUUid operator=Regex value=e3206dd1ce5d4534b4c6b58900e795ef|1a1d7395cf74474ca52deb80c41214a1 uuid=f8906dd1ce5d4534b4c6b58900e795ef

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 3.3.0
key 标签键 3.3.0
value 标签值 3.3.0
operator 标签操作符
  • Regex
  • Equal
3.3.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 3.3.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 3.3.0
timeout 3.3.0

从报警器上删除标签 (RemoveLabelFromAlarm)

用户可以使用RemoveLabelFromAlarm从报警器上删除一个标签:

RemoveLabelFromAlarm uuid=f8906dd1ce5d4534b4c6b58900e795ef
Note: 注意这里的UUID是标签的UUID

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 2.3
deleteMode 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout

更改报警器状态 (ChangeAlarmState)

用户可以使用ChangeAlarmState更改报警器状态:

ChangeAlarmState uuid=2447db65cb46495e87b53d9afbad6936 stateEvent=disable

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 2.3
stateEvent 状态事件
  • enabled
  • disabled
2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
  • stateEvent: enable启动报警器,disable停用报警器

当报警器被停用后,用户不会收到报警信息,但报警器的报警状态(status)仍然会有相应的变化。

查询报警器 (QueryAlarm)

用户可以使用QueryAlarm查询报警器:

QueryAlarm namespace=ZStack/VM metricName~=%CPU%

原生域查询(Primitive Fields of Query)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 2.3
name 请参见 资源属性 2.3
description 请参见 资源属性 2.3
period 阈值持续时间 2.3
namespace 名字空间 2.3
metricName 监控项名称 2.3
threshold 阈值 2.3
repeatInterval 报警重复时间 2.3
createDate 创建时间 2.3
lastOpDate 最后一次修改时间 2.3
comparisonOperator 2.3
status 2.3
labels 2.3
actions 2.3
groupBy 以字段分组,相当于MySQL中的group by关键字。例如groupBy=type 2.3
createDate 请参见 资源属性 2.3
lastOpDate 请参见 资源属性 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
示例
{
    "inventories": [
        {
            "actions": [
                {
                    "actionType": "sns",
                    "actionUuid": "e7d6f5e23bb74e99a2777126078b551c",
                    "alarmUuid": "b632652cc16044cdb6b4f516ed93a118"
                }
            ],
            "comparisonOperator": "GreaterThanOrEqualTo",
            "createDate": "Jun 20, 2018 10:45:45 AM",
            "labels": [
                {
                    "key": "DirPath",
                    "operator": "Equal",
                    "uuid": "dfed592b822f46439195d7ce7728cdeb",
                    "value": "/var/lib/cloud/"
                }
            ],
            "lastOpDate": "Jun 20, 2018 10:45:45 AM",
            "metricName": "ManagementServerDirUsedCapacityInPercent",
            "name": "Cloud Data Directory Capacity Alarm",
            "namespace": "ZStack/System",
            "period": 60,
            "repeatInterval": 1800,
            "state": "Enabled",
            "status": "OK",
            "threshold": 70.0,
            "uuid": "b632652cc16044cdb6b4f516ed93a118"
        }
    ],
    "success": true
}

嵌套和扩展域查询(Nested And Expanded Fields of Query)

域(Field) 清单(Inventory) 描述 起始支持版本
actions actions Inventory 报警状态 2.3
labels labels Inventory 报警标签 2.3

获取资源报警器历史 (GetAlarmData)

用户可以使用GetAlarmData来获取报警历史记录:

GetAlarmData conditions=alarmUuid=~"772be6e6dba843018c71dac33555da12|36c27e8ff05c4780bf6d2fa65700f22e"

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
startTime 起始时间 2.3
endTime 结束时间 2.3
limit 返回记录条数数量 2.3
conditions 条件列表,用于过滤结果 2.3
count 是否查询消息数量 3.3.0
excludeOtherAccount 是否排除非当前账号的消息(只对SystemAdmin生效) 3.3.0
endpointUuid 接收端Uuid 3.10.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
{
  "histories": [
    {
      "alarmUuid": "143b24a12d193c1992c4774dc3b34fda",
      "namespace": "ZStack/VM",
      "metricName": "CPUUsedUtilization",
      "accountUuid": "90aea7a1dfe93cf7bd3379254dddbdf9",
      "resourceUuid": "4e6bb5390d3938cb9ce830a4766ee4d8",
      "resourceType": "VmInstanceVO",
      "alarmStatus": "Alarm",
      "alarmName": "test-alarm",
      "threshold": 90.0,
      "labels": "VMUuid Equal 4e6bb5390d3938cb9ce830a4766ee4d8, CPUNum Equal 2",
      "metricValue": 10.0,
      "comparisonOperator": "LessThan",
      "time": 1.510669257141E12
    }
  ]
}
  • startTime:起始时间,Epoch Time,单位毫秒。
  • endTime:结束时间,Epoch Time,单位毫秒。用户可以通过指定startTime和endTime获取某段时间内的审计记录
  • limit:最大返回记录数。若不指定,默认100条。如果limit大于最大记录数,则返回所有记录。
  • endpointUuid:接收端Uuid。
  • conditions:过滤条件数组。用户可以指定过滤条件返回特定的记录。过滤条件以条件 操作符 值方式出现,例如alarmUuid=~".+"(注意操作符两边没有空格)。操作符支持=(等于)和=~(正则)两种。过滤条件包括:
    • alarmUuid:报警器UUID
    • namespace:名字空间名称
    • metricName:metric名称
    • accountUuid:报警器所属账号UUID
    • resourceUuid:报警器关联资源UUID
    • resourceType:报警器关联资源类型
    • alarmStatus:报警器报警状态

报警器历史数据结构包含如下字段:

  • alarmUuid:报警器UUID
  • namespace:名字空间名称
  • metricName:metric名称
  • accountUuid:报警器所属账号UUID
  • resourceUuid:报警器关联资源UUID
  • resourceType:报警器关联资源类型
  • alarmStatus:报警器报警状态
  • alarmName:报警器名称
  • threshold:报警器阈值
  • period:报警持续时间
  • labels:报警器标签列表字符串,以"label1=value1,lable2=value2"方式表示
  • metricValue:报警器报警时metric值
  • time:报警发生时间

更新报警器历史消息(UpdateAlarmData)

用户可以使用UpdateAlarmData更新报警器历史消息。 例如:
UpdateAlarmData updateMode=All

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
dataUuid 资源的UUID,唯一标示该资源 3.3.0
dataStartTime 选择目标消息的起始时间,updateMode需要传入InRange 3.3.0
dataEndTime 选择目标消息的结束时间,updateMode需要传入InRange 3.3.0
updateMode 选择更新目标消息的范围,OnlyOne表示只更新指定的消息,InRange表示更新某个时间范围产生的消息, All表示更新所有消息
  • OnlyOne
  • InRange
  • All
3.3.0
readStatus 更新消息已读状态
  • Read
  • Unread
3.3.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 3.3.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 3.3.0
timeout

统计报警消息数量(GetZWatchAlertHistogram)

用户可以使用GetZWatchAlertHistogram统计报警消息数量。 例如:
GetZWatchAlertHistogram tableName=table startTime=1.623414899E9 endTime=1.623501299E9 intervalHours=8.0

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
tableName 消息类型 4.1.0
startTime 起始时间 4.1.0
endTime 结束时间 4.1.0
intervalHours 间隔小时 4.1.0
groupColumns 分组属性 4.1.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 4.1.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 4.1.0
timeout

查询资源报警器报警记录(QueryAlarmRecord)

用户可以使用QueryAlarmRecord查询资源报警器报警记录。 例如:
QueryAlarmRecord accountUuid=f30e0a92898a3cf39b98c7b20d5d09d7

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
accountUuid 报警器所属账号UUID 4.1.0
alarmName 名称 4.1.0
alarmStatus 报警状态 4.1.0
alarmUuid 报警器UUID 4.1.0
comparisonOperator 4.1.0
context 4.1.0
createTime 4.1.0
dataUuid 4.1.0
emergencyLevel 报警等级 4.1.0
id 资源名称 4.1.0
labels 标签列表 4.1.0
metricName 4.1.0
metricValue 报警器报警时metric值 4.1.0
namespace 命名空间 4.1.0
period 报警持续时间 4.1.0
readStatus 更新消息已读状态 4.1.0
resourceUuid 报警器关联资源UUID 4.1.0
threshold 报警器阈值 4.1.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 4.1.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 4.1.0
timeout

修改一键报警模板(UpdateActiveAlarmTemplate)

用户可以使用UpdateActiveAlarmTemplate来修改一键报警模板。 例如:
UpdateActiveAlarmTemplate uuid=ea8aa7b6b2e43d4a9f3a19ba121ab72a

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 模板UUID 4.7.0
alarmName 模板名称 4.7.0
comparisonOperator 阈值比较符
  • GreaterThanOrEqualTo
  • GreaterThan
  • LessThan
  • LessThanOrEqualTo
4.7.0
period 阈值持续时间 4.7.0
threshold 阈值 4.7.0
repeatInterval 报警重复时间 4.7.0
repeatCount 报警重复次数 4.7.0
emergencyLevel 报警等级
  • Emergent
  • Important
  • Normal
4.7.0
labels 4.7.0
systemTags 系统标签 4.7.0
userTags 用户标签 4.7.0

修改事件报警器状态(ChangeEventSubscriptionState)

用户可以使用ChangeEventSubscriptionState来修改事件报警器状态。 例如:
ChangeEventSubscriptionState uuid=f8906dd1ce5d4534b4c6b58900e795ef state=Disabled

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 4.7.0
state 事件报警器状态
  • Enabled
  • Disabled
4.7.0
systemTags (可选) 系统标签 4.7.0
userTags (可选) 用户标签 4.7.0

事件订阅(Event Subscription)

用户可以订阅事件,在某个事件发生时(例如虚拟机意外宕机,高可用(HA)将其重新启动了),通过邮件/钉钉/HTTP应用/短信的方式收到通知。事件订阅可以看作针对事件的报警器。

订阅事件 (SubscribeEvent)

用户可以用SubscribeEvent订阅一个事件:

SubscribeEvent namespace=ZStack/Host eventName=HostStatusChanged actions='[{"actionType":"sns", "actionUuid":"2447db65cb46495e87b53d9afbad6936"}]' labels='[{"key":"NewStatus", "op":"Equal", "value":"Disconnected"}]'

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
namespace 名字空间 2.3
eventName 事件名 2.3
actions 事件动作 2.3
labels 事件标签 2.3
resourceUuid 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
name 资源名称 3.0.0
emergencyLevel 报警等级
  • Emergent
  • Important
  • Normal
3.8.0
tagUuids 标签UUID列表 3.8.0
timeout
{
    "inventory": {
        "actions": [{
            "actionType": "sns",
            "actionUuid": "2447db65cb46495e87b53d9afbad6936",
            "subscriptionUuid": "88c064e2f0004597b0a7161fbe9bcd0c"
        }],
        "createDate": "Jan 24, 2018 1:16:38 PM",
        "eventName": "HostStatusChanged",
        "labels": [{
            "key": "NewStatus",
            "operator": "Equal",
            "value": "Disconnected"
        }],
        "lastOpDate": "Jan 24, 2018 1:16:38 PM",
        "namespace": "ZStack/Host",
        "state": "Enabled",
        "uuid": "88c064e2f0004597b0a7161fbe9bcd0c"
    },
    "success": true
}

参数如下:

  • namespace: 事件所在的namespace
  • eventName:事件名称
    Note: 用户可以通过GetAllEventMetadata获得系统定义的事件
  • actions:事件动作。跟创建报警器动作类似,目前只支持向SNS主题发送通知
    {
    "actionUuid": "2447db65cb46495e87b53d9afbad6936",
    "actionType": "sns"
    }

    actionUuid为SNS主题的UUID,actionType为固定值sns。可以指定多个动作。

  • labels:事件过滤标签。通过标签匹配特定的事件,例如例子中通过NewStatus标签订阅物理机状态变为Disconnected(失联)时的事件:
    {
        "key": "NewStatus",
        "operator": "Equal",
        "value": "Disconnected"
    }

    标签字段跟创建报警器时字段相同。

退订事件(UnsubscribeEvent)

用户可以使用UnsubscribeEvent退订一个事件:
UnsubscribeEvent uuid=88c064e2f0004597b0a7161fbe9bcd0c

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 2.3
deleteMode 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout

查询事件订阅 (QueryEventSubscription)

用户可以使用QueryEventSubscription查询事件订阅:
QueryEventSubscription eventName=HostStatusChanged

原生域查询(Primitive Fields of Query)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 2.3.1
namespace 名字空间 2.3.1
eventName 事件名 2.3.1
state 2.3.1
actions 报警状态 2.3.1
labels 报警标签 2.3.1
groupBy 以字段分组,相当于MySQL中的group by关键字。例如groupBy=type 2.3.1
createDate 请参见 资源属性 2.3.1
lastOpDate 请参见 资源属性 2.3.1
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3.1
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3.1

嵌套和扩展域查询(Nested And Expanded Fields of Query)

域(Field) 清单(Inventory) 描述 起始支持版本
actions actions Inventory 报警状态 2.3
labels labels Inventory 报警标签 2.3

更新事件订阅的标签(UpdateEventSubscriptionLabel)

用户可以使用UpdateEventSubscriptionLabel更新事件订阅的标签。 例如:
UpdateEventSubscriptionLabel uuid=cfb859d412933a1da57ae99e2aa442ce key=VMUuid value=27e59f9fe7ed46118a2f6b8a383ce494 operator=Equal

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 原事件订阅标签的UUID,唯一标示该资源 3.9.0
key 标签的新名 3.9.0
value 标签的新值 3.9.0
operator 标签的新操作符
  • Regex
  • Equal
3.9.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 3.9.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 3.9.0
timeout

报警文本模板(Text Template)

在报警器触发或订阅事件发生时,用户指定的SNS主题会收到相应的报警信息或事件信息,用户可以自定义报警文本模板对信息进行格式化。

默认的邮件报警文本模板如下:

报警器 ${ALARM_NAME} 状态改变成 ${ALARM_CURRENT_STATUS}

报警器详情:
UUID: ${ALARM_UUID}
资源名字空间: ${ALARM_NAMESPACE}
触发条件: ${ALARM_METRIC} ${ALARM_COMPARISON_OPERATOR} ${ALARM_THRESHOLD}
触发条件持续时间: ${ALARM_DURATION} seconds
先前状态: ${ALARM_PREVIOUS_STATUS}
当前值: ${ALARM_CURRENT_VALUE}
标签: ${ALARM_LABELS.join(",")}

如果用户没有设置报警文本模板,收到的报警邮件内容跟上面类似。文本中对应的变量会被替换成相应的报警器内容,如${ALARM_NAME}可能会变成Web服务器CPU。用户可以使用这些变量自定义自己的报警文本模板。

目前邮件和钉钉都可以自定义报警模板,HTTP使用JSON格式不能自定义。HTTP报警文本实例如下:

{
    "ALARM_UUID": "27f8791237ed45b4815be744a2b2fd8a",
    "ALARM_NAMESPACE": "ZStack/VM",
    "ALARM_LABELS": ["VMUuidEqual26643ce4b5604b128e3f7bb3d61ef779"],
    "ALARM_PREVIOUS_STATUS": "InsufficientData",
    "ALARM_THRESHOLD": 10.0,
    "ALARM_METRIC": "CPUUsedUtilization",
    "ALARM_DURATION": 1,
    "ALARM_CURRENT_VALUE": 101.0,
    "ALARM_COMPARISON_OPERATOR": "GreaterThan",
    "ALARM_CURRENT_STATUS": "Alarm",
    "ALARM_NAME": "alarm"
}

模板变量

ZWatch对于报警器和事件订阅了一组模板变量供报警模板引用,在生成报警文本时,ZWatch使用报警器或事件相应的值替换这些变量。报警文本模板使用的语法基于Groovy GString Template。大多数用户只需要使用${}这种最基本的方式引用变量值即可。

报警器和事件订阅支持不同的变量:
  • 报警器变量
    • ALARM_NAME:报警器名称
    • ALARM_UUID:报警器UUID
    • ALARMCOMPARISONOPERATOR: 报警器操作符
    • ALARM_METRIC:报警器metric名称
    • ALARM_NAMESPACE:报警器namespace名称
    • ALARM_THRESHOLD:报警器阈值
    • ALARMLABELS:报警器标签数组,用户可以使用*${ALARMLABELS.join(",")}*将标签组成一个以逗号分隔的字符串
    • ALARM_DURATION:metric值超过阈值持续时间
    • ALARMPREVIOUSSTATUS:报警器触发前的报警状态
    • ALARMCURRENTSTATUS: 报警器当前状态
    • ALARMCURRENTVALUE:报警器触发时的metric值
  • 订阅事件变量
    • EVENT_NAMESPACE:事件namespace名称
    • EVENT_NAME:事件名称
    • EVENTLABELS:事件标签数组,用户可以使用*${EVENTLABELS.join(",")}*将标签组成一个以逗号分隔的字符串
    • EVENTEMERGENCYLEVEL:事件紧急程度
    • EVENTRESOURCEID:发生事件的资源ID
    • EVENTRESOURCENAME:发生事件的资源的名称
    • EVENT_ERROR:如果事件跟一个错误相关,例如引发物理机失联事件的错误(如网络错误),该字段包含错误的字符串表述。如果没有错误,该字段为“”空字符串
    • EVENT_TIME:事件发生的时间,字符串
    • PARAMEVENTSUBSCRIPTION_UUID:订阅事件的UUID

创建报警文本模板 (CreateSNSTextTemplate)

用户可以用CreateSNSTextTemplate创建一个报警文本模板:

CreateSNSTextTemplate name=my-template defaultTemplate=true applicationPlatformType=Email template="${ALARM_NAME} 状态改变成 ${ALARM_CURRENT_STATUS}"

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
name 资源名称 2.3
description 资源的详细描述 2.3
applicationPlatformType SNS应用平台类型 2.3
template 模板文本 2.3
recoveryTemplate String 3.4.0
defaultTemplate 是否作为默认模板 2.3
resourceUuid 2.3
type 类型
  • alarm
  • event
  • combined
5.1.8
tagUuids 标签UUID列表 5.1.8
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
{
    "inventory": {
        "applicationPlatformType": "Email",
        "createDate": "Jan 24, 2018 7:40:02 PM",
        "defaultTemplate": true,
        "lastOpDate": "Jan 24, 2018 7:40:02 PM",
        "name": "my-template",
        "template": "${ALARM_NAME} 状态改变成 ${ALARM_CURRENT_STATUS}",
        "uuid": "0ce9954a578b4795b02ff6b737aa86df"
    },
    "success": true
}
  • applicationPlatformType:SNS应用平台类型,包含Email/HTTP/DingTalk三种类型
  • defaultTemplate:是否为默认模板,设置成true后,ZWatch使用该模板向对应SNS接收终端发送报警消息。例如applicationPlatformType=Email,defaultTemplate=true,则所有通过Email发送的报警信息都用该报警模板。使用该字段,用户可以创建多个模板,要使用某种模板时,将对应模板的defaultTemplate字段设为true即可。
  • template:报警模板文本

删除报警文本模板 (DeleteSNSTextTemplate)

用户可以用DeleteSNSTextTemplate删除一个报警模板:
DeleteSNSTextTemplate uuid=36c27e8ff05c4780bf6d2fa65700f22e

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 2.3
deleteMode 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout

更新报警文本模板 (UpdateSNSTextTemplate)

用户可以用UpdateSNSTextTemplate更新一个报警模板:
UpdateSNSTextTemplate uuid=0ce9954a578b4795b02ff6b737aa86df defaultTemplate=false

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的UUID,唯一标示该资源 2.3
name 资源名称 2.3
description 资源的详细描述 2.3
template 模板文本 2.3
recoveryTemplate String 3.4.0
defaultTemplate 是否为默认模板 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout

查询报警文本模板 (QuerySNSTextTemplate)

用户可以用QuerySNSTextTemplate查询报警模板:
QuerySNSTextTemplate template~="%这是报警模板%

原生域查询(Primitive Fields of Query)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 2.3
name 请参见 资源属性 2.3
description 请参见 资源属性 2.3
applicationPlatformType 应用平台类型 2.3
template 模板文本 2.3
defaultTemplate 是否为默认模板 2.3
groupBy 以字段分组,相当于MySQL中的group by关键字。例如groupBy=type 2.3
createDate 请参见 资源属性 2.3
lastOpDate 请参见 资源属性 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3

创建SNS监控阿里云短信模板(CreateAliyunSmsSNSTextTemplate)

用户可以使用CreateAliyunSmsSNSTextTemplate创建SNS监控阿里云短信模板。 例如:
CreateAliyunSmsSNSTextTemplate sign=test alarmTemplateCode=SMS_153055065 eventTemplateCode=SMS_153055066 name=aliyunSMS applicationPlatformType=AliyunSms template=Alarm ${ALARM_NAME} changes status to ${ALARM_CURRENT_STATUS}

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
sign 短信签名名称 3.7.0
alarmTemplateCode 资源报警器模板Code 3.7.0
eventTemplateCode 事件报警器模板Code 3.7.0
eventTemplate 事件报警器模板文本 3.7.0
name 模板名称 3.7.0
description 模板的详细描述 3.7.0
applicationPlatformType SNS应用平台类型 3.7.0
template 资源报警器模板文本 3.7.0
recoveryTemplate 恢复模板文本 3.7.0
defaultTemplate 是否作为默认模板 3.7.0
resourceUuid 3.7.0
tagUuids 标签UUID列表 3.7.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 3.7.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 3.7.0
timeout

更新SNS阿里云短信文本模板(UpdateAliyunSmsSNSTextTemplate)

用户可以使用UpdateAliyunSmsSNSTextTemplate更新SNS阿里云短信文本模板。 例如:
UpdateAliyunSmsSNSTextTemplate uuid=d7e89644ef273ca8baf451bf845553fd

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
alarmTemplateCode 资源报警器模板Code 3.7.0
sign 短信签名名称 3.7.0
eventTemplateCode 事件报警器模板Code 3.7.0
eventTemplate 事件报警器模板文本 3.7.0
uuid 模板的UUID,唯一标示该资源 3.7.0
name 模板名称 3.7.0
description 模板的详细描述 3.7.0
template 资源报警器模板文本 3.7.0
recoveryTemplate 恢复模板文本 3.7.0
defaultTemplate 是否为默认模板 3.7.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 3.7.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 3.7.0
timeout

查询SNS监控阿里云短信模板(QueryAliyunSmsSNSTextTemplate)

管理员可以使用QueryAliyunSmsSNSTextTemplate查询SNS监控阿里云短信模板。例如:
QueryAliyunSmsSNSTextTemplate 

审计

ZWatch提供对API的审计功能,用户可以查看对某个资源或所有资源的API操作。一条API审计记录类似如下:

        {
            "apiName": "org.zstack.header.vm.APICreateVmInstanceMsg",
            "duration": 3260,
            "operatorAccountUuid": "36c27e8ff05c4780bf6d2fa65700f22e",
            "requestDump": "{"description":"","l3NetworkUuids":["d914360d1b2a42a68f91df0c8863f716"],"dataDiskOfferingUuids":[],"name":"vm","systemTags":["usbRedirect::false","vmConsoleMode::vnc"],"instanceOfferingUuid":"5c5720c9feba4196a9a9d3cb844a77b7","strategy":"InstantStart","imageUuid":"1194b7d10d3345e08b21847165f0b349"}",
            "requestUuid": "30a3cebb29173fa7a60f4e96d397ef1d",
            "resourceType": "VmInstanceVO",
            "resourceUuid": "ec54f53da5204a63954beea0a7782804",
            "responseDump": "{"inventory":{"uuid":"ec54f53da5204a63954beea0a7782804","name":"vm","description":"","zoneUuid":"fad25e2987a746f186896e3234469263","clusterUuid":"6da3fd94b7c5412088e722a773f17796","imageUuid":"1194b7d10d3345e08b21847165f0b349","hostUuid":"9778a9bc6db84ea9847c2023f13cbc1e","lastHostUuid":"9778a9bc6db84ea9847c2023f13cbc1e","instanceOfferingUuid":"5c5720c9feba4196a9a9d3cb844a77b7","rootVolumeUuid":"726f19724a3e4783801d86a7021d2be1","platform":"Linux","defaultL3NetworkUuid":"d914360d1b2a42a68f91df0c8863f716","type":"UserVm","hypervisorType":"KVM","memorySize":1073741824,"cpuNum":1,"cpuSpeed":0,"allocatorStrategy":"LeastVmPreferredHostAllocatorStrategy","createDate":"Dec 21, 2017 1:14:02 PM","lastOpDate":"Dec 21, 2017 1:14:05 PM","state":"Running","vmNics":[{"uuid":"6ddc4064387c4f0f88d5d1e422a4f22a","vmInstanceUuid":"ec54f53da5204a63954beea0a7782804","l3NetworkUuid":"d914360d1b2a42a68f91df0c8863f716","ip":"10.0.0.47","mac":"fa:8e:06:53:90:00","netmask":"255.255.255.0","gateway":"10.0.0.1","deviceId":0,"createDate":"Dec 21, 2017 1:14:02 PM","lastOpDate":"Dec 21, 2017 1:14:02 PM"}],"allVolumes":[{"uuid":"726f19724a3e4783801d86a7021d2be1","name":"ROOT-for-vm","description":"Root volume for VM[uuid:ec54f53da5204a63954beea0a7782804]","primaryStorageUuid":"4966a9f63d274ad0bfc2f59367bf7459","vmInstanceUuid":"ec54f53da5204a63954beea0a7782804","rootImageUuid":"1194b7d10d3345e08b21847165f0b349","installPath":"/Cloud_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-726f19724a3e4783801d86a7021d2be1/726f19724a3e4783801d86a7021d2be1.qcow2","type":"Root","format":"qcow2","size":12682240,"actualSize":7995392,"deviceId":0,"state":"Enabled","status":"Ready","createDate":"Dec 21, 2017 1:14:02 PM","lastOpDate":"Dec 21, 2017 1:14:02 PM","isShareable":false}]},"success":true}",
            "responseUuid": "d6c29c03c894439983f1afd06cb862a9",
            "sessionUuid": "68e54d9719ef42f0807a66eef5483bed",
            "time": 1513833245301
        }
  • apiName: API名称
  • duration:执行API消耗的时间,单位毫秒
  • operatorAccountUuid:执行API的账号UUID
  • requestDump:API请求。不包含敏感字段(如密码)
  • responseDump:API返回
  • requestUuid:API请求UUID
  • resourceType:资源类型。如果API不是对某个具体资源的操作,该字段不存在
  • responseUuid:API返回UUID
  • sessionUuid:账号会话UUID
  • time:收到API请求的时间,Epoch Time,单位毫秒
  • error:如果API执行失败,该字段包括错误的字符串描述。API成功则不包括该字段。

审计功能只记录操作相关API,包括创建/修改/删除等,读API(所有Query,Get类API)不记录。如果一个API操作关联多个资源,例如加载主存储到集群,会分别对各个资源生成审计记录。

获取审计记录 (GetAuditData)

用户可以使用GetAuditData获取审计记录,返回的记录以time字段做降序排列:

GetAuditData conditions=error=~".+"

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
startTime 起始时间 2.3
endTime 结束时间 2.3
limit 最大返回条数 2.3
labels 过滤标签列表 2.3
auditType 审计类型
  • Login
  • Resource
3.5.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
timeout
  • startTime:起始时间,Epoch Time,单位毫秒
  • endTime:结束时间,Epoch Time,单位毫秒。用户可以通过指定startTime和endTime获取某段时间内的审计记录
  • limit:最大返回记录数。若不指定,默认100条。如果limit大于最大记录数,则返回所有记录。
  • conditions:过滤条件数组。用户可以指定过滤条件返回特定的记录。过滤条件以条件 操作符 值方式出现,例如error=~".+"(注意操作符两边没有空格)。操作符支持=(等于)和=~(正则)两种。过滤条件包括:
    • resourceUuid:资源UUID
    • resourceType:资源类型
    • apiName:API名称
    • error:错误
    • operatorAccountUuid:账号UUID
    Note:

    可以使用error=~".+"来匹配所有error字段不为空的API,也就是返回所有失败的API。error=""返回所有成功的API。

CLI命令使用手册 | 5.4.12 | ZStack Cloud · ZCF | ZStack 资源中心