前提条件
您已通过容器服务Kubernetes版接入一个注册的Kubernetes集群。具体操作,请参见创建注册集群并接入本地数据中心集群。
步骤一 为arms-prometheus组件配置RAM权限
注意:如果您是使用内网接入接入注册集群,则此步骤可以略过。如果您是使用公网接入注册集群,那么在注册集群中安装组件前,您需要在接入集群中设置AccessKey用来访问云服务的权限。
查看集群是否使用内网接入的命令行为:
kubectl -n kube-system get deploy ack-cluster-agent -o=jsonpath='{.spec.template.spec.containers[0].env[?(@.name=="INTERNAL_ENDPOINT")].value}'
若输出为 true 则表示是内网接入。
若输出为 false 则表示是公网接入,请按以下方式配置AccessKey。
方式一(推荐)使用onectl CLI配置
参见 https://developer.aliyun.com/article/1059820
在配置完毕onectl后,执行以下命令即可自动配置和安装arms-prometheus组件:
onectl addon install ack-arms-prometheus
方式二 自定义配置
arms-prometheus组件需要的权限策略信息如下:
{ "Version": "1", "Statement": [ { "Action": [ "arms:Describe*", "arms:List*", "arms:Get*", "arms:Search*", "arms:Check*", "arms:Query*" ], "Resource": "*", "Effect": "Allow" } ] }
- 为RAM用户添加权限。具体操作,请参见为RAM用户授权。
- 为RAM用户创建AccessKey。具体操作,请参见获取AccessKey。
- 使用AccessKey在注册集群中创建名为
alibaba-addon-secret
的Secret资源。执行以下命令创建Logtail组件使用的Secret。
kubectl -n arms-prom create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'
步骤二:安装arms-prometheus组件
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面,选择目标集群,并在目标集群右侧操作列下,选择更多 > 系统组件管理。
- 单击日志与监控页签,在ack-arms-prometheus组件区域单击安装。
- 在提示对话框单击确定。
步骤三:验证组件是否正常工作
安装完成后,您可登录Prometheus控制台。进入对应集群实例,查看监控数据和定义告警规则。更多信息,请参见ARMS Prometheus监控和创建Prometheus监控报警。
如何切换ARMS-Prometheus采集cadvisor 10250端口数据
arms-promethues组件默认采集cadvisor 10255端口数据,如果您的集群只打开了kubelet 10250端口,则可以按照以下步骤切换。
- 请在集群中部署配置ServiceMonitor
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: annotations: arms.prometheus.io/discovery: 'true' name: arms-prom-cadvisor-10250 namespace: arms-prom spec: endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token honorLabels: true port: https-metrics relabelings: - sourceLabels: - __metrics_path__ targetLabel: metrics_path scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt insecureSkipVerify: true - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token honorLabels: true path: /metrics/cadvisor port: https-metrics relabelings: - sourceLabels: - __metrics_path__ targetLabel: metrics_path scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt insecureSkipVerify: true - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token honorLabels: true path: /metrics/probes port: https-metrics relabelings: - sourceLabels: - __metrics_path__ targetLabel: metrics_path scheme: https tlsConfig: caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt insecureSkipVerify: true jobLabel: k8s-app namespaceSelector: matchNames: - kube-system selector: matchLabels: k8s-app: kubelet
- 验证数据
等待大约15s~1min,进入ARMS-Prometheus控制台,对应Prometheus实例页面
左侧服务发现 -》 Target页面,查看是否已存在 _cadvisor_10250 采集任务。
以及采集任务状态是否已经正常。
会出现3组cadvisor数据采集任务: