为部署在容器服务Kubernetes版中的PHP应用安装ARMS PHP Agent后,ARMS即可开始监控PHP应用,您可以查看应用拓扑、调用链路、异常事务、慢事务和SQL分析等一系列监控数据。本文介绍如何为容器服务Kubernetes版PHP应用安装Agent。
获取应用监控License Key
- 登录ARMS控制台。
- 在左侧导航栏选择,并在顶部菜单栏选择目标地域。
- 在应用列表页面右上角单击接入应用。
- 在接入应用页面顶部复制License Key。
安装ARMS应用监控组件
安装ARMS应用监控组件ack-arms-pilot。
- 登录容器服务Kubernetes版控制台。
- 在左侧导航栏选择,在右侧页面单击ack-arms-pilot。
- 在应用目录 - ack-arms-pilot页面上,在右侧的创建面板中选择前提条件中创建的集群,并单击创建。
为容器服务Kubernetes版授权
接下来要为容器服务Kubernetes版授予ARMS资源的访问权限。
- 登录容器服务管理控制台。
- 在左侧导航栏选择集群,在集群列表页面上的目标集群右侧操作列单击详情。
- 在目标集群的集群信息页面上单击集群资源页签,然后单击Worker RAM角色右侧的链接。
- 在访问控制RAM控制台的RAM角色管理页面上,单击权限管理页签上的权限策略名称。
- 在策略内容页签上单击修改策略内容,并将以下内容添加到策略内容中,最后单击确定。
{
"Action": "arms:*",
"Resource": "*",
"Effect": "Allow"
}

安装Hercules Deploy组件上报PHP应用数据
- 在本地新建一个YAML文件并命名为hercules.yaml,然后将以下内容拷贝至该YAML文件中。
其中,您需要根据所在地域将YAML文件中的image的值替换为以下地址。
地域 |
下载地址 |
华东1(杭州) |
registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-hercules:v1.1
|
华东2(上海) |
registry.cn-shanghai.aliyuncs.com/arms-docker-repo/arms-hercules:v1.1
|
华北1(青岛) |
registry.cn-qingdao.aliyuncs.com/arms-docker-repo/arms-hercules:v1.1
|
华北2(北京) |
registry.cn-beijing.aliyuncs.com/arms-docker-repo/arms-hercules:v1.1
|
华北3(张家口) |
registry.cn-zhangjiakou.aliyuncs.com/arms-docker-repo/arms-hercules:v1.1
|
华南1(深圳) |
registry.cn-shenzhen.aliyuncs.com/arms-docker-repo/arms-hercules:v1.1
|
中国(香港) |
registry.cn-hongkong.aliyuncs.com/arms-docker-repo/arms-hercules:v1.1
|
亚太东南(新加坡) |
registry.ap-southeast-1.aliyuncs.com/arms-docker-repo/arms-hercules:v1.1
|
- 执行以下命令,安装Hercules Deploy组件。
kubectl create -f hercules.yaml
说明 如果执行命令后提示Namespace已存在,请忽略。
为PHP应用开启ARMS应用监控
- 在容器服务Kubernetes版控制台左侧导航栏选择集群,在集群列表页面上的目标集群右侧操作列单击应用管理。
- 在无状态页面右上角单击使用模板创建。
- 在使用模板创建页面上选择示例模板,并在模板(YAML格式)中将以下
annotations
添加到spec > template > metadata层级下。annotations:
armsPilotAutoEnable: "on"
armsPilotCreateAppName: "<your-deployment-name>"
armsAppType: PHP
说明 请将<your-deployment-name>替换为您的应用名称。
- (本步骤仅限首次安装时)在和您的应用相同的命名空间下,创建arms-<yourAppName>.ini的ConfigMap文件,并将以下内容复制至该文件中。
apiVersion: v1
kind: ConfigMap
metadata:
name: arms-<yourAppName>.ini
namespace: <yourAppNamespace>
data:
arms.ini: |
extension=/usr/local/arms/arms-php-agent/arms-[x.y].so
[ARMS]
arms.enable=1
arms.app_name=<yourAppName>
arms.license_key=<yourLicenseKey>
arms.agent_env=PHPK8S
arms.network_type=tcp
arms.tcp_host=arms-hercules-service.arms-pilot
arms.tcp_port=11234
说明
- 请将<yourAppName>替换为您的应用名称。
- 请将<yourAppNamespace>替换为您应用所在的命名空间。
- 请将<yourLicenseKey>替换为您在ARMS控制台的接入应用页面获取的LicenseKey。
- 在
extension=/usr/local/arms/arms-php-agent/arms-[x.y].so
配置中,arms-[x.y].so
的[x.y]
为PHP应用的版本,支持的版本值为5.4、5.5、5.6、7.0、7.1、7.2和7.3。
- 如果您的容器镜像是Alpine Linux系统,请将
arms-[x.y].so
改为arms-[x.y]-alpine.so
,其中[x.y]
支持的版本值为5.5、5.6、7.0、7.1、7.2和7.3。
- 该ConfigMap文件与应用属于一一对应关系,如果需要接入其他应用,请重新创建一份单独的配置,并在不需要使用时删除该文件。
- 将arms-<yourAppName>.ini的ConfigMap配置项添加到应用Deployment的spec > template > spec > containers配置下,将mountPath设置为PHP配置文件扫描目录路径。
volumeMounts:
- mountPath: /etc/php/7.2/fpm/conf.d/arms.ini
name: arms-ini
subPath: arms.ini
其中/etc/php/7.2/fpm/conf.d/
为PHP应用的配置加载目录地址,接着在spec > template > spec > volumes下添加以下内容。
volumes:
- name: arms-ini
configMap:
name: arms-<yourAppName>.ini
说明 如果PHP没有配置文件扫描路径,请将arms-<yourAppName>.ini配置项内容合并到应用的php.ini中。
在
容器服务Kubernetes版控制台的
无状态或
有状态(StatefulSet)页面上,如果目标应用的
操作列出现
ARMS控制台按钮,则表示Agent安装成功。

说明 若操作列没有出现ARMS控制台按钮,请检查您是否已授权容器服务访问ARMS资源。
卸载Agent
- 可选:如果需要临时暂停Agent,则将步骤添加的ConfigMap文件删除,然后再重新部署应用即可。
- 如果需要卸载Agent,则删除步骤添加的Hercules Deploy组件和步骤添加的ConfigMap文件。
更多信息
若您还有其他问题,可加入我们的钉钉答疑群:23328286。
在文档使用中是否遇到以下问题
更多建议
匿名提交