应用运维管理 AOM-添加或修改应用发现规则(即将下线):请求消息

时间:2023-11-24 09:53:29

请求消息

请求参数

请求参数如表1所示。

表1 请求参数

参数

是否必选

参数类型

取值范围

描述

appRules

Array

-

详见表2

表2 appRules参数

参数

是否必选

参数类型

取值范围

描述

projectid

String

-

租户从IAM申请到的projectid,一般为32位字符串。

id

String

-

创建时填空,修改时填规则ID。

name

String

字符长度小于64位,以小写字母(a-z)开头,只能包含0-9/a-z/-,不能以-结尾。

规则名称。

createTime

String

-

创建时间(创建时不传,修改时传查询返回的createTime)

enable

Boolean

true、false

规则是否启用。

hostid

Array

-

主机ID(暂不使用,传空即可)。

eventName

String

aom_inventory_rules_event

规则事件名称,对于应用发现固定为"aom_inventory_rules_event"

spec

Object

-

规则详情。详见表3

表3 spec参数

参数

是否必选

参数类型

取值范围

描述

detectLog

String

true、false

是否开启日志采集。

logFileFix

Array

log、trace、out

日志文件的后缀。

discoveryRule

Array

  • checkType为cmdLine时checkMode填contain,checkContent格式为[“xxx”]表示进程命令行参数中需要包含xxx。
  • checkType为env时checkMode填contain,checkContent格式为 ["k1","v1"]表示进程环境变量中需要包含名为k1值为v1的环境变量。
  • checkType为scope时checkMode填equals,checkContent格式为节点ID数组["hostId1”,”hostId2”],表示规则仅会在这些节点上生效(如果不指定节点范围,规则将下发到该项目所有的节点)。

规则发现部分,数组中有多个对象时表示需要同时满足所有条件的进程才会被匹配到。详见表4

attrList

Array

cmdLine、env

属性列表(暂不使用,可不传)。

isDetect

String

true、false

是否为规则预探测场景(预探测场景不会保存规则,仅用于规则下发之前对规则正确性的检测)。

isDefaultRule

String

true、false

是否为默认规则。

priority

Integer

1~9999的整数,默认取值为9999

规则优先级。

nameRule

Object

-

应用发现规则命名部分。详见表5

appType

String

-

应用类型,用于标记应用的分类,仅用于规则分类和界面展示。可以填写任意字段,如按技术栈分类可填写Java,Python。按作用分类可填写collector(采集),database(数据库)等。

logPathRule

Array

  • 当cmdLineHash为固定字符串时,指定日志路径或者日志文件。否则只采集进程当前打开的以.log和.trace结尾的文件。
  • nameType取值cmdLineHash时,args格式为["00001"],value格式为["/xxx/xx.log"],表示当启动命令是00001时,日志路径为/xxx/xx.log。

日志路径配置规则。详见表8

表4 discoveryRule参数

参数

是否必选

参数类型

取值范围

描述

checkType

String

cmdLine、env、scope

匹配类型。

checkMode

String

contain、equals

匹配条件。

checkContent

Array

-

匹配值。

表5 nameRule参数

参数

是否必选

参数类型

取值范围

描述

appNameRule

Array

  • nameType取值cmdLine时args格式为["start","end"],表示抽取命令行中start、end之间的字符。
  • nameType取值cmdLine时args格式为 ["aa"],表示抽取环境变量名为aa对应的环境变量值。
  • nameType取值str时,args格式为["fix"],表示应用名称最后拼接固定文字fix。
  • nameType取值cmdLineHash时,args格式为["0001"],value格式为["ser"],表示当启动命令是0001时,应用名称为ser。

应用命名部分,数组中有多个对象时表示将每个对象抽取到的字符串拼接作为应用的名称。详见表6

applicationNameRule

Array

  • nameType取值cmdLine时args格式为["start","end"],表示抽取命令行中start、end之间的字符。
  • nameType取值cmdLine时args格式为 ["aa"],表示抽取环境变量名为aa对应的环境变量值。
  • nameType取值str时,args格式为["fix"],表示应用名称最后拼接固定文字fix。
  • nameType取值cmdLineHash时,args格式为["0001"],value格式为["ser"],表示当启动命令是0001时,应用名称为ser。

应用命名部分。详见表7

表6 appNameRule参数

参数

是否必选

参数类型

取值范围

描述

nameType

String

cmdLineHash、cmdLine、env、str

取值类型。

args

Array

-

输入值。

value

Array

-

应用名(仅nameType为cmdLineHash时填写)。

表7 applicationNameRule参数

参数

是否必选

参数类型

取值范围

描述

nameType

String

cmdLineHash、cmdLine、env、str

取值类型。

args

Array

-

输入值。

value

Array

-

应用名(仅nameType为cmdLineHash时填写)。

表8 logPathRule参数

参数

是否必选

参数类型

取值范围

描述

nameType

String

cmdLineHash

取值类型。

args

Array

-

命令行。

value

Array

-

日志路径。

Header说明

请求消息头(Header)如表9所示。

表9 Header说明

名称

是否必选

说明

X-Auth-Token

从IAM服务获取的用户Token。

Content-Type

指定类型为application/json。

请求示例

{
    "appRules": [
        {
            "id": "",
            "name": "bytest",
            "createTime": "",
            "projectid": "5a6036f48e954fcd84d198cb28db311a",
            "enable": true,
            "hostid": [],
            "eventName": "aom_inventory_rules_event",
            "spec": {
                "detectLog": "true",
                "logFileFix": ["log","trace"],
                "discoveryRule": [
                    {
                        "checkType": "cmdLine",
                        "checkMode": "contain",
                        "checkContent": ["default"]
                    },{
                        "checkType": "scope",
                        "checkMode": "equals",
                        "checkContent": [
                            "44d6c4bb-f673-4bf4-8d33-313832f37b28"
                        ]
                    }
                ],
                "attrList": ["cmdLine"],
                "isDetect": "false",
                "priority": "1",
                "nameRule": {
                    "appNameRule": [
                        {
                            "nameType":"cmdLineHash",
                            "args":["00000000001"],
                            "value":["serviceName1"]
                        },
                        {
                            "nameType": "cmdLine",
                            "args": [
                                "/var/paas/kubernetes/","/kubeconfig"
                            ]
                        },
                        {
                            "nameType": "env",
                            "args": ["APP_NAME"]
                        },
                        {
                            "nameType": "str",
                            "args": ["kube"]
                        }
                    ],
                    "applicationNameRule": [
                        {
                            "nameType":"cmdLineHash",
                            "agrs":["00000000001"],
                            "value":["applicationName1"]
                        },

                        {
                            "nameType": "str",
                            "args": ["kubeproxy"]
                        }
                    ]
                },
                "appType": "",
                "isDefaultRule":"false",
                "logPathRule": [
                    {
                        "nameType":"cmdLineHash",
                        "agrs":["00000000001"],
                        "value":["/xx/xxx/xx.log","/xx/xxx/xx"]
                    }
                ]
            }
        }
    ]
}
support.huaweicloud.com/api-aom/aom_04_1120.html