• 监控安装

    提供全方位的监控服务,包括基础组件监控,各微服务运行情况监控,资源监控和智能预警。


    监控架构图

    架构图如下

    监控架构图

    监控以Google Prometheus为核心展开,Prometheus作为一个开源的监控和预警系统自2012年开始就被许多公司和机构使用,越来越多的项目也开始原生支持Prometheus收集性能指标。Prometheus主动收集性能指标压力集中在监控服务器上,而不会占用应用服务器过多的资源。在监控主机上,node-exporter为prometheus提供了主机的内存、CPU、网络和磁盘等相关信息,在容器监控上,kubernetes内置的cAdvisor提供了容器的各项指标,同样的内存、CPU、网络和磁盘的信息也一应俱全,kube-stat-metrics提供了集群中部署信息,如容器名称,容器标签等。在JAVA微服务的监控上,微服务使用micrometer为prometheus提供JAVA微服务的指标如线程数,消耗内存,请求数等。当微服务部署到集群后Prometheus能够自动发现并收集其提供的信息。其他各种服务也可以通过编写exporter为Prometheus提供指标。当配置报警规则之后Prometheus会将报警信息发送给alertmanager,alertmanager根据预先配置好的邮件地址或者短信接口发送报警信息。


    安装

    下载安装脚本

      $ wget https://rdc.choerodon.com/gitlab/rdc_hip/devops-install-docs/raw/master/devops/monitoring/install_monitoring.sh 
    

    编辑参数

      $ vim install_monitoring.sh
    

    参数说明

    参数 说明 默认值
    NAMESPACE 监控服务所在的命名空间 monitoring
    REQUEST_MEMORY prometheus请求的内存大小 4Gi
    LIMIT_MEMORY prometheus限制的内存大小 8Gi
    SCRAPE_INTERVAL prometheus收集指标间隔 10s
    SCRAPE_TIMEOUT prometheus收集指标超时 10s
    BASE_URL 服务的基础地址,如想要prometheus的地址为prometheus.example.com则BASE_URL的值应该设置为example.com
    NFS_SERVER 如果需要nfs存储监控数据则需要制定nfs服务器地址

    运行前注意事项

    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      labels:
        pv: ${name}
      name: ${name}
    spec:
      accessModes:
      - ReadWriteMany
      capacity:
        storage: ${storage_size}Gi
      nfs:
        path: ${dataPath}
        server: ${NFS-SERVER}
    

    运行脚本

      $ sh install_monitoring.sh
    
    根据提示输入相关参数:
    
    - Do you want use pvc to storage prometheus/grafana data (default is no) yes/no:   
      是否使用pvc存储prometheus/grafana数据
    
    - which node you run with prometheus/grafana 
    
      选择prometheus/grafana可以运行的节点,根据提示的节点选择如`node1 node3`
    
    - what nfs size do you want assign to prometheus (unit Gi)
    
      如果使用pvc,输入分配给prometheus的空间大小单位是Gi
    

    查看服务

    服务 地址
    grafana grafana.example.com
    prometheus prometheus.example.com
    alertmanager alertmanager.example.com