IBM® Cloud Private 监视服务

您可以部署 IBM Cloud Private 随附的监视服务的更多实例,以监视应用程序的状态。

从Catalog部署监视服务

您可以使用Catalog中的定制配置在 IBM Cloud Private management console 中部署更多的监视堆栈。

  1. 在Catalog页面中,单击 ibm-icpmonitoring Helm Chart 以配置和部署 Chart。
  2. 请提供必需参数的值。
    • Helm 发行版名称:“monitoring”
    • 目标名称空间:“kube-system”
    • 部署方式:“Managed”
    • 集群访问地址:指定用于访问 IBM Cloud Private console 的域名服务 (DNS) 或 IP 地址。
    • 集群访问端口:指定用于访问 IBM Cloud Private console 的端口。缺省端口为 8443
    • 持久卷:如果针对 Prometheus、Grafana 或 Alertmanager 使用持久卷,请选中所需复选框。
    • 针对 persistentVolume 的 storageClass 的名称:指定用于供应卷的存储器类的名称。

从 CLI 部署监视服务

  1. 安装 Kubernetes 命令行 (kubectl)。 请参阅使用 kubectl CLI 访问 IBM Cloud Private 集群
  2. 安装 Helm 命令行界面 (CLI)。 请参阅设置 Helm CLI
  3. 安装 ibm-icpmonitoring Helm Chart。 运行以下命令:

    helm install -n monitoring --namespace kube-system --set mode=managed --set clusterAddress=<IP_address> --set clusterPort=<port> ibm-charts/ibm-icpmonitoring
    

    其中,<IP_address> 是用于访问 IBM Cloud Private console 的 DNS 或 IP 地址。<port> 是用于访问 IBM Cloud Private console 的端口。

访问监视仪表板

首先,登录 IBM Cloud Private management console。

然后,使用以下 URL 访问监视仪表板:

更改 Grafana 的用户名和密码

要更改缺省设置为 admin/admin 的 Grafana 用户名和密码,请创建名为 update.yaml 的文件:在“用户名”和“密码”字段值使用 base64 编码的文件中包含以下内容:

apiVersion: v1
    kind: Secret
    metadata:
    labels:
    app: monitoring-grafana
    chart: ibm-icpmonitoring-1.1.1
    component: grafana
    release: monitoring
    heritage: Tiller
    name: monitoring-grafana-secret
    type: Opaque
    data:
    username: ${BASE64 encoded username}
    password: ${BASE64 encoded password}

对于 kube-system 名称空间,请完成以下步骤:

  1. 输入以下命令:

    kubectl replace -f update.yaml -n $NAMESPACE
    
  2. 使用以下命令获取 Grafana 的 pod 名称:

    kubectl get pods -n $NAMESPACE | grep grafana
    
  3. 使用以下命令删除该 pod,其中 $POD 是 pod 的名称:

    kubectl delete pod $POD -n $NAMESPACE
    
  4. 等待 pod 完全备份。 您可以通过运行以下命令并等待其读取 2/2 来对此进行检查:

    kubectl get pods -n $NAMESPACE --no-headers | grep grafana | grep -v Terminating
    

此时,通过在控制台中检查以下 URL,可以查看是否需要挂起数据源备份:

  https://{CLUSTER_IP}:8443/grafana/api/datasourceshttps://{CLUSTER_IP}:8443/grafana/api/datasources

后端系统自动使用已更新的用户名和密码。 如果返回值是 [],那么需要挂起数据源备份。

对于 non kube-system 名称空间,请完成以下步骤:

  1. 输入以下命令:

    kubectl replace -f update.yaml -n default
    
  2. 使用以下命令获取 Grafana 的 pod 名称:

    kubectl get pods -n default | grep grafana
    
  3. 使用以下命令删除该 pod,其中 $POD 是 pod 的名称

    kubectl delete pod $POD -n default
    
  4. 等待 pod 完全备份。 您可以通过运行以下命令并等待其读取 1/1 来对此进行检查:

    kubectl get pods -n default --no-headers | grep grafana | grep -v Terminating
    

此时,您可以查看是否需要挂起数据源备份。

通过输入以下命令,获取用于部署的节点端口:

  kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services monitoring-grafana

然后,在 UI 中检查以下 URL,如果返回值是 [],那么将需要挂起数据源备份:

  curl -k http://$USERNAME:$PASSWORD@$CLUSTER_IP:$NODEPORT/api/datasources

配置应用程序以使用监视服务

部署监视服务的实例之后,必须配置应用程序以使用监视服务。 在应用程序的 Helm Chart 中完成此配置。

  1. 修改应用程序以显示指标。

    • 对于具有指标端点的应用程序,必须使用注释 prometheus.io/scrape: 'true' 将指标端点定义为 Kubernetes 服务。 服务定义类似于以下代码:

       apiVersion: v1
       kind: Service
       metadata:
         annotations:
           prometheus.io/scrape: 'true'
         labels:
           app: liberty
         name: liberty
       spec:
         ports:
         - name: metrics
           targetPort: 5556
           port: 5556
           protocol: TCP
         selector:
           app: liberty
         type: ClusterIP
      

      :有关为 Prometheus 配置指标端点的更多信息,请参阅 Prometheus 文档中的客户机库 在新选项卡中打开

    • 对于使用 collectd 并依赖于 collectd-exporter 显示指标的应用程序,可以更新应用程序容器内的 collectd 配置文件。 在此配置文件中,必须将网络插件和点添加到 collectd 导出器。 将以下文本添加到配置文件:

      LoadPlugin network
      <Plugin network>
         Server "monitoring-prometheus-collectdexporter" "25826"
      </Plugin>
      

Prometheus 的日志和指标管理

您可以通过更新 config.yaml 文件中的 storage.tsdb.retention 参数,修改指标保留时间的时间段。 缺省情况下,此值设置为 24h,这表示指标将保持 24 小时,然后才会清除。 请参阅配置监视服务

但是,如果需要手动从系统中移除此数据,那么可以使用 Prometheus 组件所提供的 REST API。

注意:目标 URL 的格式必须为 https://<IP_address>:8443/prometheus,其中,<IP_address> 是用于访问 management console 的 IP 地址。