配置AOM应用发现规则
应用发现是指AOM通过配置的规则发现和收集您主机上部署的应用、组件和关联的指标。从是否需要您来操作的角度区分应用发现方式,则有两种,自动发现和手动配置。本章节介绍手动配置操作。
- 自动发现
您的主机安装ICAgent后,ICAgent会根据内置发现规则说明发现主机上的应用或组件,并呈现在“应用监控”或“组件监控”界面。
- 手动配置
您可在“应用发现”界面添加一条自定义的应用发现规则,并应用至已安装ICAgent的主机上,ICAgent会根据您配置的应用发现规则发现主机上的应用,并呈现在“应用监控”界面。
过滤规则说明
ICAgent会在目标主机上进行周期性探测,类似ps -e -o pid,comm,lstart,cmd | grep -v defunct命令的效果,查出目标主机的所有进程。然后将每一个进程分别与过滤规则(过滤规则详见表1)进行匹配。如果进程满足过滤规则,则进程会被过滤掉,不会被AOM发现;如果进程不满足过滤规则,则进程不会被过滤,会被AOM发现。
探测结果类似如下回显信息:
PID COMMAND STARTED CMD 1 systemd Tue Oct 2 21:12:06 2018 /usr/lib/systemd/systemd --switched-root --system --deserialize 20 2 kthreadd Tue Oct 2 21:12:06 2018 [kthreadd] 3 ksoftirqd/0 Tue Oct 2 21:12:06 2018 (ksoftirqd/0) 1140 tuned Tue Oct 2 21:12:27 2018 /usr/bin/python -Es /usr/sbin/tuned -l -P 1144 sshd Tue Oct 2 21:12:27 2018 /usr/sbin/sshd -D 1148 agetty Tue Oct 2 21:12:27 2018 /sbin/agetty --keep-baud 115200 38400 9600 hvc0 vt220 1154 docker-containe Tue Oct 2 21:12:29 2018 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc --metrics-interval=0
过滤规则 |
举例 |
---|---|
如果进程的“COMMAND”列的值为“docker-containe”、“vi”、“vim”、“pause”、“sshd”、“ps”、“sleep”、“grep”、“tailf”、“tail”或“systemd-udevd”,且为非容器内的进程,则该类进程会被过滤掉,不会被AOM发现。 |
例如,上面信息中“PID”为“1154”的进程,因为其“COMMAND”列的值为“docker-containe”,所以该进程不会被AOM发现。 |
如果进程的“CMD”列的值以“[”开头,且以“]”结尾,则该类进程会被过滤掉,不会被AOM发现。 |
例如,上面信息中“PID”为“2”的进程,因为其“CMD”列的值为“[kthreadd]”,所以该进程不会被AOM发现。 |
如果进程的“CMD”列的值以“(”开头,且以“)”结尾,则该类进程会被过滤掉,不会被AOM发现。 |
例如,上面信息中“PID”为“3”的进程,因为其“CMD”列的值为“(ksoftirqd/0)”,所以该进程不会被AOM发现。 |
如果进程的“CMD”列的值以“/sbin/”开头,则该类进程会被过滤掉,不会被AOM发现。 |
例如,上面信息中“PID”为“1148”的进程,因为其“CMD”列的值以“/sbin/”开头,所以该进程不会被AOM发现。 |
内置发现规则说明
AOM提供了Sys_Rule和Default_Rule两个内置的发现规则,内置的发现规则会在所有主机上执行,包括后续新增的主机。其中Sys_Rule优先级大于Default_Rule,即优先在主机上执行Sys_Rule,如果满足Sys_Rule,则不执行Default_Rule,如果不满足Sys_Rule,则执行Default_Rule。规则内容如下:
Sys_Rule(不能停用)
使用Sys_Rule规则的场景下,组件名和应用名配对使用,必须同时设置组件名和应用名信息,取值优先级如下:
- 应用名称取值优先级:
- 组件名称取值优先级:
PAAS_MONITORING_GROUP=atpd-test PAAS_APP_NAME=atps-demo JAVA_TOOL_OPTIONS=-javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_application=atpd-test -Dapm_tier=atps-demo
- 如果进程的“COMMAND”列的值为“java”,则组件名依次按照优先级从命令行中的jar包名、命令行中主类名、命令行中第一个非-开头的关键字获取,应用名使用默认值unknownapplicationname。
- 如果进程的“COMMAND”列的值为“python”,则组件名取命令行中第一个py/pyc脚本名,应用名使用默认值unknownapplicationname。
- 如果进程的“COMMAND”列的值为“node”,则组件名取命令行中第一个js脚本名,应用名使用默认值unknownapplicationname。
配置自定义发现规则
- 登录AOM 2.0控制台。
- 在左侧导航栏中选择“基础设施监控 > 进程监控”,在右侧区域选择“应用发现”页签,进入“应用发现”页面。
- 单击“添加自定义应用发现规则”,配置应用发现规则。
- 选择预探测主机。
- 自定义一个规则名称(例如,rule-test)。长度范围4到63个字符,支持小写字母、数字、中划线,并以小字母开头,小写英文字母或数字结尾。
- 选择一个典型的主机(例如,host-test),用于在应用发现规则配置过程中预验证规则的有效性,最终在哪些主机上执行本规则,将会在7进行配置。完成后单击“下一步”。
- 设置应用发现规则。
- 设置应用名称及组件名称。
- 设置优先级和探测范围。
- 设置优先级:优先级即当有多个规则时,优先使用哪个规则发现组件。您可输入1-9999,数字越小优先级越高,例如,1优先级最高,9999优先级最小。
- 配置探测范围:选择可探测的主机,即已配置规则将会在哪个主机上执行。如果不选任何主机,规则将会在所有主机上执行,包含后续新增的主机。
- 单击“添加”,完成配置。
AOM会基于配置的应用发现规则采集指标数据。等待大约两分钟后,您可以做如下操作:
- 在“应用监控”页签,找到已被监控的应用,详情请参见:通过AOM监控应用进程。
- 在“组件监控”页签,找到已被监控的组件,详情请参见:通过AOM监控组件进程。
更多应用发现规则操作
应用发现规则添加完成后,您还可以执行表2中的操作。