云服务器内容精选

  • 采集CCE集群的业务数据 通过新增PodMonitor方式为应用配置可观测监控Prometheus版的采集规则,监控部署在CCE集群内的应用的业务数据。 如下指标采集的周期是30秒,所以等待大概30秒后才能在 AOM 的界面上查看到上报的指标。 配置信息如下: apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: kafka-exporter namespace: default spec: namespaceSelector: matchNames: - default # exporter 所在的命名空间 podMetricsEndpoints: - interval: 30s path: /metrics port: metric-port selector: matchLabels: k8s-app: kafka-exporter
  • 步骤一:建设四层指标体系 接入业务层指标。 登录AOM 2.0控制台。 在左侧导航栏中选择“接入中心”。 在右侧“业务层”面板单击需要接入的指标卡片。 接入ELB 日志指标 系统可自动接入,无需用户手动操作。 在左侧导航栏,选择已创建的仪表盘,单击页面右上角的,输入对应SQL语句,即可在仪表盘中查看该日志指标。以查看流量指标为例,输入对应SQL语句,单击“查询”,如图2所示。 图2 查看流量指标 接入 APM 事务指标 为工作负载安装APM探针,具体操作请参见安装APM探针。 安装完成后,请登录安装探针的服务对应的控制台界面,执行操作触发APM事务指标的采集。以本实践场景中的商城服务为例,可以在商城操作界面将对应商品添加到购物车。 登录AOM 2.0控制台。 在左侧导航栏选择“指标浏览”。在右侧区域通过选择指标的方式查看接入的APM指标。 接入应用层指标。 为工作负载安装APM探针,具体操作如下: 登录CCE控制台,单击集群名称进入集群。 在左侧导航栏中选择“工作负载 ”,选择需要上报到AOM的工作负载类型。 单击工作负载名称,选择“性能管理配置”,单击右下角“编辑”,修改“性能管理配置”相关信息。 选择“APM 2.0探针”,设置“探针版本”为“latest-x86”,“APM环境”为“phoenixenv1”,从“APM应用”的下拉列表中选择创建的“phoenixapp1”应用。 设置完成后,单击“保存”。 安装完成后,请登录安装探针的服务对应的控制台界面,执行操作触发应用层指标的采集。以本实践场景中的商城服务为例,可以在商城操作界面将对应商品添加到购物车。 登录AOM 2.0控制台。 在左侧导航栏选择“指标浏览”。在右侧区域通过选择指标的方式查看接入的应用层指标。 接入中间件指标。 将数据上传到E CS 服务器。 下载mysqld_exporter-0.14.0.linux-amd64.tar.gz软件包,下载地址:https://prometheus.io/download/。 以root用户登录ECS服务器,将下载的Exporter软件包上传到ECS服务器并解压。 登录RDS 控制台,在“实例管理”界面实例列表中单击一个RDS实例名。在“基本信息”界面查看RDS安全组。 图3 查看RDS安全组 检查RDS的安全组是否已开放3306端口。 图4 检查RDS端口是否开放 执行以下命令,进入解压文件夹,并在ECS服务器上配置mysql.cnf文件。 cd mysqld_exporter-0.14.0.linux-amd64 vi mysql.cnf 例如,在mysql.cnf文件中添加如下内容: [client] user=root(rds用户名) password=****(rds密码) host=192.168.0.198(rds公网IP) port=3306(端口) 执行以下命令,启动mysqld_exporter工具。 nohup ./mysqld_exporter --config.my-cnf="mysql.cnf" --collect.global_status --collect.global_variables & 执行以下命令,确认工具是否正常启动。 curl http://127.0.0.1:9104/metrics 如果回显信息如图5所示,能够查看到指标则说明工具启动正常。 图5 查看指标 通过虚机接入方式接入中间件指标。 登录AOM 2.0控制台。 在左侧导航栏中选择“接入中心”,在右侧“中间件”面板单击需要接入的指标卡片。 在“虚机接入”界面为ECS服务器安装UniAgent采集工具,具体操作请参见手动安装UniAgent。 为创建的“phoenixenv1”环境创建中间件采集任务。在左侧导航栏中,选择“采集任务”,单击“新增采集任务”。 图6 创建采集任务 在创建采集任务页面中,配置相关参数信息。 关键配置项说明如下: Exporter地址/REDIS_Exporter地址/MySQL_Exporter地址:安装Exporter/REDIS_Exporter/MySQL_Exporter的主机IP地址和端口号。格式为IP:Port,例如:127.0.0.1:9104。 中间件地址/REDIS 地址/MySQL 地址:Exporter/REDIS_Exporter/MySQL_Exporter启动实例监控的主机/REDIS/MySQL,通常填写主机/REDIS/MySQL的IP地址。 指标:待采集的指标。默认为:''(单引号)表示输出原本的所有指标。如果需对采集指标进行过滤,则按如下格式进行填写,例如:'metric1, metric2'。 指标维度:新增采集指标维度。单击,输入指标维度名和指标维度值,字符长度不超过20个字符。最多可添加10个标签。例如:指标维度名为label1,指标维度值为label2,则添加成功后为label1:"label2"。 图7 配置采集参数-1 图8 配置采集参数-2 完成后,单击“立即创建”。 接入完成后,在左侧导航栏,选择“指标浏览”。在右侧区域通过选择指标的方式查看接入的中间件指标。 接入基础设施层指标。 登录AOM 2.0控制台。 在左侧导航栏中选择“接入中心”。 在右侧“运行环境”与“云服务”面板单击需要接入的指标卡片。 选择容器指标卡片: 以选择“云容器引擎CCE”卡片为例,具体操作如下: 在“插件市场”界面搜索找到云原生监控插件,单击“安装”。 图9 查找云原生监控插件 设置集群名称、规格信息。 开启对接第三方开关,将普罗数据上报至AOM,填写上报AOM的地址及token,并跳过证书认证。 图10 设置对接第三方参数 参数说明如下: 数据上报地址 :https://aom-internal-access.{region_name}.myhuaweicloud.com:8443/v1/{project_id}/push,其中region_name为指定承载REST服务端点的服务器域名或IP,project_id 为项目的ID,您可以单击右上方的用户名称,在下拉列表中选择“我的凭证”。在“我的凭证”页面中选择“API凭证”页签。从右侧项目列表的“项目”和“项目ID”信息中获取。例如AOM服务在“华北-北京一”区域名称为“cn-north-1”。 Token:登录AOM 2.0控制台,在左侧导航栏选择“设置”,单击“认证管理”,从右侧AccessCode列表的“ID”信息中获取。 设置完成后,单击“安装”。安装完后单击插件查看安装状态,当状态都为“运行中”则表示插件安装成功。 图11 安装kube-prometheus-stack插件 选择云服务监控指标卡片: 在弹出的“云服务接入”对话框中选择需要监控的云服务。例如RDS或DCS服务。 单击“确定”完成接入。 接入完成后,系统自动跳转至“云服务监控”页面,即可查看已选择的云服务运行状态等信息。 接入完成后,在左侧导航栏选择“指标浏览”。在右侧区域通过选择指标的方式查看接入的基础设施层指标。
  • 解决方案 AOM能够实现云上应用的一站式立体化运维管理,在接入中心中可以接入需要监控的业务层、应用层、中间件层、基础设施层指标,在仪表盘中实现个性化监控,以及通过统一告警入口配置告警规则,实现业务的日常巡检,保障业务的正常运行。 AOM提供多场景、多层次、多维度指标数据的监控能力,建立了从基础设施层指标、中间件层指标、应用层指标到业务层指标的四层指标体系,将1000+种指标数据全方位呈现,数据丰富全面。 表1 AOM支持的四层指标体系 类型 来源 指标举例 如何接入 业务层指标 通常来源于端侧日志SDK、提取的ELB日志。 访问UV、访问PV、访问延时、访问失败率、访问流量情况等 接入业务层指标 通常来源于事务监控或上报的自定义指标。 URL的调用次数、URL的最大并发数、URL的最大响应时间等 应用层指标 通常来源于组件性能图表或接口性能数据。 接口调用次数、请求平均时延、错误调用次数、请求吞吐量等 接入应用层指标 中间件指标 通常来源于原生中间件或云中间件数据。 文件系统容量、文件系统使用率等 接入中间件指标 基础设施层指标 通常来源于容器或云服务相关数据,例如计算、存储、网络、数据库等。 CPU使用率、内存使用率、健康状态等 接入基础设施层指标 接入容器指标 接入云服务指标 图1 AOM四层指标体系
  • 操作场景 使用MongoDB过程中需要对MongoDB运行状态进行监控,以便了解MongoDB服务是否运行正常,排查MongoDB故障问题原因。Prometheus监控服务提供了CCE容器场景下基于Exporter的方式来监控MongoDB运行状态。本文介绍如何部署Exporter以及实现MongoDB Exporter告警接入等操作。 为了方便安装管理Exporter,推荐使用CCE进行统一管理。
  • 步骤二:开启AOM可信服务并设置委托管理员(若进行监控的账号为组织管理员,可跳过此步骤) 使用组织中的管理员账号登录组织Organizations控制台。 在左侧导航栏选择“可信服务”。 在可信服务列表中,单击“ 应用运维管理 服务(AOM)”操作列的“启用”,开启AOM可信服务。 单击“应用运维管理服务(AOM)”操作列的“设置委托管理员”,选择需要设置为委托管理员的账号,单击“确定”。如图5所示,将paas_aom设置为委托管理员。 图5 设置委托管理员
  • 前提条件 监控账号与被监控账号均已加入组织。监控账号需为组织管理员,非组织管理员的组织成员需进行步骤二,授权委托管理员身份。 被监控账号当前支持汇聚的包括“Prometheus for 云服务”可接入的18个云服务指标(FunctionGraph,EVS,CBR,OBS,VPC,ELB,DC,NAT,DMS,DCS,RDS,DDS,DRS,LakeFormation, MRS GaussDB DWS, CSS ,WAF)以及ICAgent采集的CCE和ECS指标。
  • 添加采集任务 通过新增PodMonitor方式为应用配置可观测监控Prometheus版的采集规则,监控部署在CCE集群内的应用的业务数据。 如下指标采集的周期是30秒,所以等待大概30秒后才能在AOM的界面上查看到上报的指标。 apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: redis-exporter namespace: default spec: namespaceSelector: #选择要监控 Exporter Pod 所在的namespace matchNames: - default # exporter所在的命名空间 podMetricsEndpoints: - interval: 30s # 设置指标采集周期 path: /metrics # 填写 Prometheus Exporter 对应的 path 的值,默认/metrics port: metric-port# 填写 Prometheus Exporter 对应的 YAML 的 ports 的 name selector: # 填写要监控 Exporter Pod 的 Label 标签,以定位目标 Exporter matchLabels: k8s-app: redis-exporter
  • 添加采集任务 通过新增PodMonitor方式为应用配置可观测监控Prometheus版的采集规则,监控部署在CCE集群内的应用的业务数据。 如下示例中指标采集的周期是30秒,所以等待大概30秒后才能在AOM的界面上查看到上报的指标。 apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: memcached-exporter namespace: default spec: namespaceSelector: matchNames: - default # exporter所在的命名空间 podMetricsEndpoints: - interval: 30s path: /metrics port: metric-port selector: matchLabels: k8s-app: memcached-exporter
  • 添加采集任务 通过新增PodMonitor方式为应用配置可观测监控Prometheus版的采集规则,监控部署在CCE集群内的应用的业务数据。 如下指标采集的周期是30秒,所以等待大概30秒后才能在AOM的界面上查看到上报的指标。 apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: postgres-exporter namespace: default spec: namespaceSelector: matchNames: - default # exporter 所在的命名空间 podMetricsEndpoints: - interval: 30s path: /metrics port: http-metrics selector: matchLabels: app: postgres
  • PostgreSQL Exporter 部署 登录CCE控制台。 单击已接入的集群名称,进入该集群的管理页面。 执行以下操作完成Exporter部署。 使用Secret管理PostgreSQL密码。 在左侧导航栏中选择“工作负载”,在右上角单击“YAML创建”完成YAML配置。YAML配置说明:使用Kubernetes的Secret来管理密码并对密码进行加密处理,在启动PostgreSQL Exporter的时候直接使用Secret Key,需要调整对应的password。 YAML 配置示例如下: apiVersion: v1 kind: Secret metadata: name: postgres-test type: Opaque stringData: username: postgres password: you-guess #对应 PostgreSQL 密码 部署PostgreSQL Exporter。 在左侧导航栏中选择“工作负载”,在右上角单击“YAML创建”,以YAML的方式部署Exporter。 YAML配置示例如下(请直接复制下面的内容,根据实际业务调整相应的参数): apiVersion: apps/v1 kind: Deployment metadata: name: postgres-test # 根据业务需要调整成对应的名称,建议加上 PG 实例的信息 namespace: default #需要和 postgres 的 service 在同一命名空间 labels: app: postgres app.kubernetes.io/name: postgresql spec: replicas: 1 selector: matchLabels: app: postgres app.kubernetes.io/name: postgresql template: metadata: labels: app: postgres app.kubernetes.io/name: postgresql spec: containers: - name: postgres-exporter image: swr.cn-north-4.myhuaweicloud.com/aom-exporter/postgres-exporter:v0.8.0 # 上传至 SWR 的 postgres-exporter 镜像 args: - "--web.listen-address=:9187" # export 开启的端口 - "--log.level=debug" # 日志级别 env: - name: DATA_SOURCE_USER valueFrom: secretKeyRef: name: postgres-test # 对应上一步中的 Secret 的名称 key: username # 对应上一步中的 Secret Key - name: DATA_SOURCE_PASS valueFrom: secretKeyRef: name: postgres-test # 对应上一步中的 Secret 的名称 key: password # 对应上一步中的 Secret Key - name: DATA_SOURCE_URI value: "x.x.x.x:5432/postgres?sslmode=disable" # 对应的连接信息 ports: - name: http-metrics containerPort: 9187 获取指标。 通过“curl http://exporter:9187/metrics”无法获取Postgres实例运行时间,可以通过自定义一个queries.yaml来获取该指标。 创建一个包含queries.yaml的配置。 将配置作为Volume挂载到Exporter某个目录下。 通过extend.query-path来使用配置,将上述的Secret以及Deployment进行汇总,汇总后的YAML如下所示: # 以下 document 创建一个包含自定义指标的 queries.yaml --- apiVersion: v1 kind: ConfigMap metadata: name: postgres-test-configmap namespace: default data: queries.yaml: | pg_postmaster: query: "SELECT pg_postmaster_start_time as start_time_seconds from pg_postmaster_start_time()" master: true metrics: - start_time_seconds: usage: "GAUGE" description: "Time at which postmaster started" # 以下 document 挂载了 Secret 和 ConfigMap ,定义了部署 Exporter 相关的镜像等参数 --- apiVersion: apps/v1 kind: Deployment metadata: name: postgres-test namespace: default labels: app: postgres app.kubernetes.io/name: postgresql spec: replicas: 1 selector: matchLabels: app: postgres app.kubernetes.io/name: postgresql template: metadata: labels: app: postgres app.kubernetes.io/name: postgresql spec: containers: - name: postgres-exporter image: wrouesnel/postgres_exporter:latest args: - "--web.listen-address=:9187" - "--extend.query-path=/etc/config/queries.yaml" - "--log.level=debug" env: - name: DATA_SOURCE_USER valueFrom: secretKeyRef: name: postgres-test-secret key: username - name: DATA_SOURCE_PASS valueFrom: secretKeyRef: name: postgres-test-secret key: password - name: DATA_SOURCE_URI value: "x.x.x.x:5432/postgres?sslmode=disable" ports: - name: http-metrics containerPort: 9187 volumeMounts: - name: config-volume mountPath: /etc/config volumes: - name: config-volume configMap: name: postgres-test-configmap --- apiVersion: v1 kind: Service metadata: name: postgres spec: type: NodePort selector: app: postgres app.kubernetes.io/name: postgresql ports: - protocol: TCP nodePort: 30433 port: 9187 targetPort: 9187 访问地址: http://{集群任意节点的公网IP}:30433/metrics,即可通过自定义的queries.yaml查询到Postgres实例启动时间指标。 图1 访问地址
  • 采集CCE集群的业务数据 通过新增PodMonitor方式为应用配置可观测监控Prometheus版的采集规则,监控部署在CCE集群内的应用的业务数据。 配置信息如下: apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: mysql-exporter namespace: default spec: namespaceSelector: matchNames: - default # exporter 所在的命名空间 podMetricsEndpoints: - interval: 30s path: /metrics port: metric-port selector: matchLabels: k8s-app: mysql-exporter
  • 数据库授权 登录集群执行以下命令: kubectl exec -it ${mysql_podname} bash mysql -u root -p 图1 执行命令 登录数据库,执行以下命令: CREATE USER 'exporter'@'x.x.x.x(hostip)' IDENTIFIED BY 'xxxx(password)' WITH MAX_USER_CONNECTIONS 3; GRANT PRO CES S, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'x.x.x.x(hostip)'; 验证授权是否成功。 输入以下命令查询sql,查看是否有exporter的数据,host为mysql所在节点的IP。 select user,host from mysql.user; 图2 查询sql
  • 操作场景 使用ElasticSearch过程中需要对ElasticSearch运行状态进行监控,例如集群及索引状态等。Prometheus监控服务提供了CCE容器场景下基于Exporter的方式来监控ElasticSearch运行状态。本文介绍如何部署ElasticSearch Exporter以及实现ElasticSearch Exporter告警接入等操作。 为了方便安装管理Exporter,推荐使用CCE进行统一管理。
  • 采集CCE集群的业务数据 通过新增PodMonitor方式为应用配置可观测监控Prometheus版的采集规则,监控部署在CCE集群内的应用的业务数据。 如下示例中指标采集的周期是30秒,所以等待大概30秒后才能在AOM的界面上查看到上报的指标。 apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: elasticSearch-exporter namespace: default spec: namespaceSelector: # 选择监控Exporter部署所在的namespace matchNames: - default # exporter所在的命名空间 podMetricsEndpoints: - interval: 30s # 设置指标采集周期 path: /metrics # 填写Prometheus Exporter对应的Path的值,默认/metrics port: metric-port # 填写Prometheus Exporter对应YAML的ports的name selector: # 填写要监控Exporter Pod的Label标签,以定位目标Exporter matchLabels: k8s-app: elasticSearch-exporter
  • 采集CCE集群的业务数据 通过新增PodMonitor方式为应用配置可观测监控Prometheus版的采集规则,监控部署在CCE集群内的应用的业务数据。 如下指标采集的周期是30秒,所以等待大概30秒后才能在AOM的界面上查看到上报的指标。 配置信息如下: apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: kafka-exporter namespace: default spec: namespaceSelector: matchNames: - default # exporter 所在的命名空间 podMetricsEndpoints: - interval: 30s path: /metrics port: metric-port selector: matchLabels: k8s-app: kafka-exporter