监控报警
- 时序数据(Metric):代表一个时序数据的监控指标,例如虚拟机CPU的使用率。
- 事件(Event):代表某一个事件,例如物理机失联Note:
- 时序数据是时间连续数据,例如以10s间隔采样的虚拟机CPU使用率
- 事件是离散数据,例如在网络断开后发生的物理机失联的事件
- 报警器(Alarm):针对时序数据的报警器,例如在虚拟机CPU使用率连续5分钟超过80%时以邮件的方式向用户报警
- 事件订阅(Event Subscription):作用类似于Alarm,只是针对事件报警。例如在物理机失联事件发生时,用邮件的方式向用户报警
- 报警文本模板(Text Template):在报警时(Alarm/Event Subscription),用于格式化报警文本
时序数据(Metric)
获取所有metric元数据(GetAllMetricMetadata)
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 | 是 |
[
{
"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)
ZStack/Host的metric
CPUIdleUtilization包含HostUuid和CPUNum用于描述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 | 是 |
{
"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为a133cbcfdc1d462c9b51d7bce6ac6b11和506bd3b46a6543718488b5ba5850aaaa两个物理机的metric值,可以用:GetMetricData namespace=ZStack/Host metricName=NetworkAllOutByte labels=HostUuid=~a133cbcfdc1d462c9b51d7bce6ac6b11|506bd3b46a6543718488b5ba5850aaaa - 可以传入多个标签作为过滤条件,例如:
GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph - 可以通过
startTime和endTime指定查询的时间范围:GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph startTime=1516364017 endTime=1516365000Note: 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)
用户可以使用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 | 是 |
PutMetricData的data字段接收一个数据列表[{
"metricName": "MySQLMaxConnections",
"value": 1000,
"labels": {
"ip": "10.0.0.10"
}
}]- metricName: metric名称
- value: 整数或浮点数的数据值
- labels:自定义标签
[{
"metricName": "MySQLMaxConnections",
"value": 1000,
"labels": {
"ip": "10.0.0.10"
}
}, {
"metricName": "MySQLMemory",
"value": 1999999999999,
"labels": {
"ip": "10.0.0.10"
}
}]事件(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:紧急程度,包含
Major、Info和Emergent三种 - name:事件名称
- namespace:事件所在namespace
- resourceId:事件所发生资源的ID,如果为ZStack Cloud资源该ID为资源的UUID
- resourceName:事件所发生资源的名称
- time:事件发生的时间
GetEventData支持以下字段:
- startTime: 起始时间。
- endTime:结束时间。用户可以通过设置
startTime和endTime来获得指定时间段内发生的事件。 - limit:返回事件的数量。若不指定,默认返回最多100个事件。
- conditions:过滤条件。用户可以
emergencyLevel,name,namespace,resourceName作为过滤条件,例如获得所有跟物理机有关的紧急事件可以用:GetEventData conditions=namespace=ZStack/Host,emergencyLevel=Emergent过滤条件支持
=(等于)和=~(正则)两种操作符。 - endpointUuid:接收端Uuid。
更新事件消息(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表示更新所有消息 |
|
3.3.0 | |
| readStatus | 更新消息已读状态 | 是 |
|
3.3.0 |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 3.3.0 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 3.3.0 | |
| timeout | 是 |
查询事件报警器报警记录(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 | 阈值比较符 |
|
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 | 报警等级 | 是 |
|
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还未采集到足够数据
通常报警器处于OK或Alarm状态。
删除报警器(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 | 阈值比较符 | 是 |
|
2.3 |
| period | 阈值持续时间 | 是 | 2.3 | |
| threshold | 阈值 | 是 | 2.3 | |
| repeatInterval | 报警重复时间 | 是 | 2.3 | |
| repeatCount | 报警重复次数 | 是 | 3.3.0 | |
| enableRecovery | 开启恢复通知 | 是 | 3.8.0 | |
| emergencyLevel | 报警等级 | 是 |
|
3.8.0 |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 2.3 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 2.3 | |
| timeout | 是 |
除namespace,metricName,actions,labels四个字段外,其它字段均可以修改。
修改事件报警器 (UpdateSubscribeEvent)
用户可以使用UpdateSubscribeEvent修改事件报警器:
UpdateSubscribeEvent uuid=f8906dd1ce5d4534b4c6b58900e795ef emergencyLevel=Normal
参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 资源的UUID,唯一标示该资源 | 3.8.0 | ||
| emergencyLevel | 报警等级 | 是 |
|
3.8.0 |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 3.8.0 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 3.8.0 | |
| timeout | 是 |
除namespace,metricName,actions,labels四个字段外,其它字段均可以修改。
增加报警动作 (AddActionToAlarm)
AddActionToAlarm对一个报警器增加一个报警动作。actionType和actionUuid字段意义跟CreateAlarm中actions字段相同。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
key,opeartor,value意义跟CreateAlarm中labels字段相同。参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| alarmUuid | 报警器UUID | 2.3 | ||
| key | 标签键 | 2.3 | ||
| value | 标签值 | 2.3 | ||
| operator | 操作符 |
|
2.3 | |
| resourceUuid | 是 | 2.3 | ||
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 2.3 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 2.3 | |
| timeout | 是 |
修改报警器标签(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 | 标签操作符 |
|
3.3.0 | |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 3.3.0 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 3.3.0 | |
| timeout | 是 | 3.3.0 |
从报警器上删除标签 (RemoveLabelFromAlarm)
用户可以使用RemoveLabelFromAlarm从报警器上删除一个标签:
RemoveLabelFromAlarm uuid=f8906dd1ce5d4534b4c6b58900e795ef
参数(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 | 状态事件 |
|
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 updateMode=All参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| dataUuid | 资源的UUID,唯一标示该资源 | 是 | 3.3.0 | |
| dataStartTime | 选择目标消息的起始时间,updateMode需要传入InRange | 是 | 3.3.0 | |
| dataEndTime | 选择目标消息的结束时间,updateMode需要传入InRange | 是 | 3.3.0 | |
| updateMode | 选择更新目标消息的范围,OnlyOne表示只更新指定的消息,InRange表示更新某个时间范围产生的消息, All表示更新所有消息 |
|
3.3.0 | |
| readStatus | 更新消息已读状态 | 是 |
|
3.3.0 |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 3.3.0 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 3.3.0 | |
| timeout | 是 |
统计报警消息数量(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 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 uuid=ea8aa7b6b2e43d4a9f3a19ba121ab72a参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 模板UUID | 4.7.0 | ||
| alarmName | 模板名称 | 是 | 4.7.0 | |
| comparisonOperator | 阈值比较符 | 是 |
|
4.7.0 |
| period | 阈值持续时间 | 是 | 4.7.0 | |
| threshold | 阈值 | 是 | 4.7.0 | |
| repeatInterval | 报警重复时间 | 是 | 4.7.0 | |
| repeatCount | 报警重复次数 | 是 | 4.7.0 | |
| emergencyLevel | 报警等级 | 是 |
|
4.7.0 |
| labels | 是 | 4.7.0 | ||
| systemTags | 系统标签 | 是 | 4.7.0 | |
| userTags | 用户标签 | 是 | 4.7.0 |
修改事件报警器状态(ChangeEventSubscriptionState)
ChangeEventSubscriptionState uuid=f8906dd1ce5d4534b4c6b58900e795ef state=Disabled参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 资源的UUID,唯一标示该资源 | 4.7.0 | ||
| state | 事件报警器状态 |
|
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 | 报警等级 | 是 |
|
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 uuid=cfb859d412933a1da57ae99e2aa442ce key=VMUuid value=27e59f9fe7ed46118a2f6b8a383ce494 operator=Equal参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 原事件订阅标签的UUID,唯一标示该资源 | 3.9.0 | ||
| key | 标签的新名 | 3.9.0 | ||
| value | 标签的新值 | 3.9.0 | ||
| operator | 标签的新操作符 |
|
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 | ||
| 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 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 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 审计
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 | 审计类型 | 是 |
|
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。
