AOM支持用戶訂閱指標或者告警信息,訂閱后可以將數據轉發到用戶配置的kafka或DMS的Topic中,供消費者消費轉發的訂閱的信息。
說明最多可創建10個數據訂閱規則。
創建訂閱規則
步驟 1 在左側導航欄中選擇“配置管理 > 數據訂閱”。
步驟 2 單擊“創建訂閱規則”,設置相關參數后,單擊“確定”。
您可根據實際需求,選擇訂閱目標類型為“自定義Kafka”或“分布式消息服務DMS”。
1、訂閱目標類型為“自定義Kafka”。
數據訂閱規則參數說明
| 參數 | 說明 | 示例 |
|---|---|---|
| 規則名稱 | 訂閱規則名稱。 | 輸入:aom-kafka-test。 |
| 訂閱內容 | 支持“指標”和“告警”。 | 選擇:指標。 |
| 訂閱目標類型 | 選擇“自定義Kafka”或“分布式消息服務DMS”。 | 自定義Kafka |
| 訂閱目標連接地址 | 用戶自己的kafka地址,需要打通網絡。格式為逗號分割的ipv4:port。例如: 192.168.0.1:9092,192.168.0.2:9092** | 根據實際情況填寫。 |
a.(可選)進入到“規則詳情”,單擊
,配置Kafka SASL_SSL,參數如下表所示。
說明AOM當前僅支持Kafka SASL_SSL安全認證配置,如果目前實例已經開啟Kafka SASL_SSL,請打開此開關。
配置Kafka SASL_SSL參數
| 參數 | 說明 | 示例 |
|---|---|---|
| 用戶名 | SASL用戶名用于實例訪問認證。 | demo |
| 密碼 | SASL密碼用于實例訪問認證,請妥善管理密碼,系統無法獲取您設置的密碼內容。 | - |
| 客戶端證書 | 請采用.pem格式的客戶端證書 | - |
b.單擊“驗證并保存自定義Kafka配置信息”,驗證自定義Kafka實例連通性。
c.選擇數據發送topic后,單擊“確定”。
2、訂閱目標類型選擇“分布式消息服務DMS”,請參考下表配置參數。
數據訂閱規則參數說明
| 參數 | 說明 | 示例 |
|---|---|---|
| 規則名稱 | 訂閱規則名稱 | 輸入:aom-kafka-test。 |
| 訂閱內容 | 支持“指標”和“告警”。 | 選擇:指標。 |
| 訂閱目標類型 | 選擇“自定義Kafka”或“分布式消息服務DMS”。 | 分布式消息服務DMS |
| 實例 | 選擇DMS實例,如沒有DMS實例,請單擊“創建DMS實例”,創建DMS實例。 | kafka-aom-7160 |
a. 進入到“規則詳情”,單擊“創建網絡連接通道”。
b. 驗證DMS實例連通性。
您需要確保在安全組"入方向規則"中,放通9011端口,源地址為"198.19.128.0/20"的網絡流量。設置安全組規則操作如下:
i. 登錄管理控制臺。
ii. 在左側導航欄,單擊
,選擇“網絡 > 虛擬私有云 VPC”。
iii. 在左側導航欄單擊“訪問控制 > 安全組”,在使用DMS所在的安全組右側,單擊“配置規則”。
iv. 在“入方向規則”頁簽下,單擊“添加規則”,放通9011端口、源地址為“198.19.128.0/20”的網絡流量。
c. 單擊“驗證并保存DMS配置信息”。
d. 選擇數據發送topic后,單擊“確定”。
數據訂閱格式說明
- AOM格式的指標JSON格式代碼片斷
package metric
?
type MetricDatas struct {
?? Metrics?? []Metrics `json:"metrics"`
?? ProjectId string??? `json:"project_id"`
}
?
type Metrics struct {
?? Metric????? Metric? `json:"metric"`
?? Values????? []Value `json:"values"`
?? CollectTime int64?? `json:"collect_time"`
}
?
type Metric struct {
?? Namespace? string????? `json:"namespace"`
?? Dimensions []Dimension `json:"dimensions"`
}
?
type Value struct {
?? Value?????????? interface{} `json:"value"`
?? Type??????????? string????? `json:"type"`
?? Unit??????????? string????? `json:"unit"`
?? StatisticValues string????? `json:"statisticvalues"`
?? MetricName????? string????? `json:"metric_name"`
}
?
type Dimension struct {
?? Name? string `json:"name"`
?? Value string `json:"value"`
}
- kafka消息示例
key:,
value:{"metrics":[{"metric":{"namespace":"PAAS.NODE","dimensions":[{"name":"nodeName","value":"test-vss-cop-master-1"},{"name":"nodeIP","value":"1.1.1.1"},{"name":"hostID","value":"75d97111-4734-4c6c-ae9e-f6111111111"},{"name":"nameSpace","value":"default"},{"name":"clusterId","value":"46a7bc0d-1d8b-11ea-9b04-333333333333333"},{"name":"clusterName","value":"test-vss-111"},{"name":"diskDevice","value":"vda"},{"name":"master","value":"true"}]},"values":[{"value":0,"type":"","unit":"Kilobytes/Second","statisticvalues":"","metric_name":"diskReadRate"},{"value":30.267,"type":"","unit":"Kilobytes/Second","statisticvalues":"","metric_name":"diskWriteRate"}],"collect_time":1597821030037}],"project_id":"111111111111111111111"}
- 告警數據格式說明
示例:
{
??? "events": [{
??????? "id": "4346299651651991683",
??????? "starts_at": 1597822250194,
??????? "ends_at": 0,
??????? "arrives_at": 1597822250194,
??????? "timeout": 300000,
??????? "resource_group_id": "312313123112222222222232131312131",
??????? "metadata": {
??????????? "kind": "Pod",
??????????? "event_severity": "Major",
??????????? "resource_type": "service",
??????????? "clusterId": "6add4ef5-1358-11ea-a5bf-111111111",
??????????? "event_type": "alarm",
??????????? "clusterName": "cce-ief-4516140c-96ca-4a5f-8d85-1111111",
??????????? "namespace": "PAAS.NODE",
??????????? "name": "test15769793809553052-f5557bd7f-qnfkm",
??????????? "event_name": "調度失敗##FailedScheduling",
??????????? "resource_id": "clusterName=cce-ief-4516140c-96ca-4a5f-8d85-111111;clusterID=6add4ef5-1358-11ea-a5bf-11111111111;kind=Pod;namespace=30d5758f166947c6b164af604a654b09;name=test15769793809553052-f5557bd7f-qnfkm;uid=589fc746-245d-11ea-a465-fa163e5fc15d",
??????????? "nameSpace": "30d5758f166947c6b164af604a654b09",
??????????? "resource_provider": "CCE",
??????????? "nodeID": "589fc746-245d-11ea-a465-fa163e5fc15d"
??????? },
??????? "annotations": {
??????????? "alarm_probableCause_zh_cn": "FailedScheduling",
??????????? "alarm_probableCause_en_us": "FailedScheduling",
??????????? "message": "0/110 nodes are available: 1 node(s) had taints that the pod didn't tolerate, 109 node(s) didn't match node selector."
??????? },
??????? "attach_rule": {
????????????
??????? }
??? }],
??? "project_id": "312313123112222222222232131312131"
}
參數說明:
告警參數
| 參數 | 參數類型 | 描述 |
|---|---|---|
| events | Array ofobjects | 事件或者告警詳情。 |
| project_id | String | 租戶從IAM申請到的projectid,一般為32位字符串。 |
EventModel
參數 參數類型 描述 id String 事件或者告警id,系統自動生成。 starts_at Long 事件或者告警產生的時間,CST毫秒級時間戳。 ends_at Long 事件或者告警清除的時間,CST毫秒級時間戳,為0時表示未刪除。 arrives_at Long 事件或者告警到達AOM的時間,CST毫秒級時間戳。 timeout Long 告警自動清除時間。毫秒數,例如一分鐘則填寫為60000。默認清除時間為3天。 resource_group_id String 資源組預留字段,當前默認和projectid的值一樣。 事件或者告警的詳細信息,為鍵值對形式。必須字段為:
??? event_name:事件或者告警名稱,類型為String;
??? event_severity:事件級別枚舉值。類型為String,四種類型 "Critical",?? "Major", "Minor", "Info";
??? event_type:事件類別枚舉值。類型為String,event為普通告警,alarm為告警事件;
??? resource_provider:事件對應云服務名稱。類型為String;
??? resource_type:事件對應資源類型。類型為String;
??? resource_id:事件對應資源信息。類型為String。事件或者告警附加字段,可以為空。
事件或者告警預留字段,為空。
后續操作
數據訂閱規則設置完成后,AOM會將數據發到配置的kafka或DMS的Topic中,您可以消費訂閱的指標或者告警信息。