云服务器内容精选

  • 步骤四:开启应用监控 在E CS 或CCE上,配置Deployment应用的启动脚本:在yaml描述文件中增加如下示例中加粗配置。 执行如下命令编辑yaml文件: vi xxx.yaml 其中xxx为文件名称,是您在创建Deployment应用时自定义的应用描述文件。如下为示例,Deployment的详细说明请参见kubernetes官方文档。 kind: Deployment apiVersion: apps/v1 metadata: name: user-service namespace: default selfLink: /apis/apps/v1/namespaces/default/deployments/user-service uid: b231788d-9abd-11e8-80a5-fa163e3a2cc7 resourceVersion: '50972062' generation: 13 creationTimestamp: '2018-08-08T03:46:56Z' labels: app: user-service stack-name: auto-test annotations: deployment.kubernetes.io/revision: '5' description: '' enable: true spec: replicas: 1 selector: matchLabels: app: user-service template: metadata: creationTimestamp: null labels: app: user-service enable: true spec: #容器外主机上的挂载目录,包括数据输出路径、Java探针包路径 volumes: - name: paas-apm hostPath: path: /opt/apm-container - name: pinpoint-pkg hostPath: path: /opt/oss/servicemgr/ICAgent/pinpoint containers: - name: user-service image: '100.125.0.198:20202/zhyyy/user-service:v1' ports: - containerPort: 8080 protocol: TCP env: - name: PAAS_APP_NAME #工作负载名称(服务名称) value: user-service - name: PAAS_NAMESPACE #CCE集群namespace,如果非CCE集群则不填该环境变量 value: default - name: PAAS_PROJECT_ID #租户项目projectId value: d698369a975645bfb35f8437d11c5a12 - name: PAAS_CLUSTER_ID #CCE集群ID,可以在CCE界面通过f12查看,如果非CCE集群则不填该环境变量 value: 89b49857-5433-11e8-941c-0255ac101f3e - name: PAAS_POD_ID valueFrom: fieldRef: fieldPath: metadata.uid - name: PAAS_MONITORING_GROUP #应用名称(监控组),建议完成一个功能的多个服务填写相同应用名称 value: shoppingmall - name: JAVA_TOOL_OPTIONS value: -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_container=true resources: {} #挂载进容器内数据输出路径、Java探针包路径 volumeMounts: - name: paas-apm mountPath: /paas-apm/collectors/pinpoint - name: pinpoint-pkg mountPath: /opt/oss/servicemgr/ICAgent/pinpoint terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: Always restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst securityContext: {} schedulerName: default-scheduler strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 0 maxSurge: 1 revisionHistoryLimit: 10 progressDeadlineSeconds: 600 status: observedGeneration: 13 replicas: 1 updatedReplicas: 1 readyReplicas: 1 availableReplicas: 1 conditions: - type: Progressing status: 'True' lastUpdateTime: '2018-09-02T13:25:46Z' lastTransitionTime: '2018-08-08T03:46:56Z' reason: NewReplicaSetAvailable message: ReplicaSet "user-service-f584f46b7" has successfully progressed. - type: Available status: 'True' lastUpdateTime: '2018-12-21T11:01:33Z' lastTransitionTime: '2018-12-21T11:01:33Z' reason: MinimumReplicasAvailable message: Deployment has minimum availability. 使用修改后的Deployment重启应用,开启应用性能监控。
  • 步骤四:启动镜像 原生docker启动命令中添加java探针所需参数,其中应用名称与服务名称根据实际调整。以vmall应用、服务名称vmall-dao-service为例。 修改docker启动脚本。 示例 原始启动命令如下: docker run -p 8080:8080 demo:latest 配置后启动命令如下: docker run -e JAVA_TOOL_OPTIONS="-javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_application=vmall -Dapm_tier=vmall-dao-service -Dapm_container=true" -v /opt/apm-container:/paas-apm/collectors/pinpoint -v /opt/oss/servicemgr/ICAgent/pinpoint:/opt/oss/servicemgr/ICAgent/pinpoint -p 8080:8080 demo:latest 运行docker run命令来启动镜像,可以将镜像的应用接入 APM
  • 切换版本 如果您在使用APM的过程中,由于业务发生变化,当前使用的APM版本的功能不能满足您的需求,您可以切换至其他更高级的版本。同时也支持从高版本切换至低版本,每月限一次。 在APM“总览”页面单击“切换版本”。 在切换版本页面选择产品类型和产品规格。 了解各版本支持的功能明细后,单击“立即切换”即可。 若您之前已购买了套餐包,切换版本后探针个数会自动换算为新版本的探针个数。 若您之前未购买套餐包,切换版本后则会按照您实际使用的探针数按需计费。
  • 购买套餐包 若您有长期使用APM的需求,您可以购买对应版本的套餐包。使用丰富功能的同时,还能为您节约更多的成本。 在APM“总览”界面上单击“购买套餐”。 在购买页面选择区域、产品类型、套餐包类型、套餐规格及购买时长。 产品类型:网格型适用于在Istio网格的集群上部署的应用。探针型适用于一般部署类型(虚机部署等)的应用。 套餐包类型:各套餐包支持的功能不同,请参见套餐包详情。 套餐规格:指套餐包中包含的探针实例数。一个应用进程需要安装一个探针,您可以根据自己业务的进程总数进行合理选择。套餐包到期后若您没有购买新的套餐包,将自动转为按需收费。若已欠费,探针将不再上报数据,影响您对APM的使用,详见续费说明。 单击“立即购买”并完成支付,套餐包购买完成。 APM购买完成后可参考监控Java应用等章节将您的应用接入APM,即可开启您的应用性能监控之旅。
  • 步骤三:开启应用监控 ICAgent安装完成后,需通过修改应用启动参数开启应用性能监控功能来加载ICAgent,否则无法正常使用APM对应用进行监控。针对示例应用,APM已经提供了修改后的脚本,所以您无需再进行修改,只需要在应用所在的ECS上执行如下命令启动修改后的脚本即可。 cd /root/testdemo chmod +x start_apminside.sh bash start_apminside.sh
  • 步骤四:在APM上管理应用 应用启动后,等待3分钟应用数据就会呈现在APM界面中,此时登录APM,您可以在APM上通过拓扑、调用链等进行应用性能优化,详细操作请参考用户指南。 (可选)如果您想访问示例应用,可以进行如下操作: 修改ECS安全组规则,配置安全组入方向80端口访问许可,以确保可以通过浏览器访问示例应用。 在浏览器中打开“http://ECS的弹性IP”,访问示例应用并进行查询商品、查看购物车等操作。
  • 背景信息 在外部请求激增、负载突变等场景下,极易出现应用性能问题,比如外部请求响应变慢、部分请求异常等。快速识别发现、定位处理应用性能问题成为越来越常见的日常运维场景。 APM作为云应用性能问题诊断服务,拥有强大的分析工具,通过拓扑图、调用链、事务分析可视化地展现应用状态、调用过程、用户对应用的各种操作,快速定位问题和改善性能瓶颈。 例如,通过APM拓扑功能可视化服务间的调用关系,迅速找到有问题的实例;通过APM调用链功能下钻到服务内部,抓取到有问题的方法调用链路,确认问题根因。
  • 产品规格差异 APM产品规格包括免费版和企业版,当前支持Java应用接入APM。各版本支持的功能详见下表。 版本 免费版 企业版 版本说明 完全免费,最多可接入10个Agent在线。 所有功能完全开放。 数据存储时长 7天 30天 应用拓扑 √ √ 调用链 链路追踪调用链公测期间仅支持2天存储,其它场景支持7天存储。 √ 指标监控 √ √ URL跟踪分析 √ √ 告警 √ √ CMDB √ √ 说明(是否支持,√表示支持,x表示不支持) 不支持企业版降级回免费版(基础版)。
  • 前提条件 部署APM Agent时,必须确保接入APM的机器与APM服务网络连通,Agent才能正常工作。 可使用Telnet命令测试目标机器与APM服务器网络是否连通。例如,以检查华北-北京四区域,且接入方式选择“增强型探针”的连通性为例,请登录应用所部署的机器,并输入命令telnet 100.125.12.108:41333,其他区域地址请参考接入地址。 Java语言支持增强型探针、OpenTelemetry和Skywalking。
  • 动态配置master.address以及AK/SK APM支持动态配置master.address以及AK/SK。 用户可以通过配置环境变量的方式,给APM_MASTER_ADDRESS、APM_AC CES S_KEY(apm-ak)以及APM_SECRET_KEY(apm-sk)赋值。获取AK/SK的具体操作,请参见为JAVA应用手工安装Agent,获取master.address,请参见接入地址。 如果javaagent配置文件和环境变量同时配置了AK、SK、master.address,那么环境变量配置的值优先生效。 Agent 2.3.19之后版本支持动态配置master.address以及AK/SK。
  • 前提条件 部署APM Agent时,必须确保接入APM的机器与APM服务网络连通,Agent才能正常工作。 可使用Telnet命令测试目标机器与APM服务器网络是否连通。例如,以检查华北-北京四区域,且接入方式选择“增强型探针”的连通性为例,请登录应用所部署的机器,并输入命令telnet 100.125.12.108:41333,其他区域地址请参考接入地址。 Node.js语言,支持增强型探针、Skywalking和OpenTelemetry。
  • 前提条件 部署APM Agent时,必须确保接入APM的机器与APM服务网络连通,Agent才能正常工作。 可使用Telnet命令测试目标机器与APM服务器网络是否连通。例如,以检查华北-北京四区域,且接入方式选择“增强型探针”的连通性为例,请登录应用所部署的机器,并输入命令telnet 100.125.12.108:41333,其他区域地址请参考接入地址。 Node.js语言,支持增强型探针、Skywalking和OpenTelemetry。
  • 使用说明 目前只支持部署CCE的JAVA应用。相关参数说明参见表1。 表1 性能管理配置参数列表 参数名称 参数说明 安装探针 选择安装探针。目前支持“不启动”“APM 2.0探针”。 探针类型 选择探针的版本类型。 探针升级策略 探针升级的方式、策略。默认为“重启自动升级”。 重启自动升级:每次都尝试重新下载镜像。 重启手动升级:如果本地有该镜像,则使用本地镜像,本地不存在时下载镜像。 APM环境 输入APM环境名称,该参数为选填。 APM应用 选择一个已有的APM应用。 子应用 输入APM子应用,该参数为选填。 接入密钥 将会自动获取APM服务的密钥信息,详情参见前提条件。 CCE新版UI为部署在CCE容器中的JAVA应用安装Agent的详细操作,请参考《用户指南》。
  • 操作步骤 编辑deployment.yaml。 在volumes中增加一个emptyDir。 volumes: - name: paas-apm2 emptyDir: {} 在containers.volumeMounts中增加moutPath。 volumeMounts: - name: paas-apm2 mountPath: /paas-apm2/javaagent/ 在env中增加JAVA_TOOL_OPTIONS环境变量。 env: - name: JAVA_TOOL_OPTIONS value: '-javaagent:/paas-apm2/javaagent/apm-javaagent/apm-javaagent.jar' 新增initContainers。 initContainers: - name: init-javaagent image: {swrAddress}/op_svc_apm/javaagent:{agentVersion} command: - /bin/sh - '-c' - cd /paas-apm2/javaagent/apm-javaagent; /bin/sh init-config.sh -master_address {masterAddress} -app_name {appName} -access_key {accessKey} -access_value {secretKey} -business {business} -env {env} resources: limits: cpu: 250m memory: 250Mi requests: cpu: 250m memory: 250Mi volumeMounts: - name: paas-apm2 mountPath: /var/init/javaagent terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: Always monitorGroup: default
  • CCE APM SK加密实践 生成一个含有解密方法的jar包,假设jar包名为demo.jar , 内置解密类为com.demo.DecryptDemo,解密方法为decrypt(注意decrypt得是静态方法)。然后将该jar打包一个镜像,上传到镜像仓,获取密钥方法参见访问密钥。 在CCE deployment yaml中添加一个initContainer属性,如下所示。 示例: 步骤1中上传的镜像地址为swr.cn-north-5.myhuaweicloud.com/hwstaff_pub_apmpaasw3/decrypt:v2 解密的类名为com.demo.DecryptDemo,解密方法为decrypt。 按如下方式添加一个initContainer,注意替换加粗部分。 initContainers: - name: init-secret image: swr.cn-north-5.myhuaweicloud.com/hwstaff_pub_apmpaasw3/decrypt:v2 command: - /bin/sh - '-c' - cp /root/com.demo.DecryptDemo.jar /var/init/secret/apm-javaagent/ext; sed -i 's%#decrypt.className=.*%decrypt.className=com.demo.DecryptDemo%g' /var/init/secret/apm-javaagent/apm.config; sed -i 's%#decrypt.methodName=.*%decrypt.methodName=decrypt%g' /var/init/secret/apm-javaagent/apm.config; resources: limits: cpu: 100m memory: 100Mi requests: cpu: 100m memory: 100Mi volumeMounts: - name: paas-apm2 mountPath: /var/init/secret 添加该initContainer可以实现将jar包复制到apm-javaagent/ext目录下,以及修改配置文件的目的。 在apm页面获取AK 和SK,然后对sk进行加密处理,将AK和加密后的SK替换yaml文件中的如下值。 保存配置对CCE实例进行升级即可。