集群监控是 APM 产品中相对功能比较重要而且功能点相对比较多的一个模块,提供了对各个集群上服务、组件以及主机的详细监控和可视化功能。

集群状态列表

集群状态列表是进入各个集群监控详情的入口,列出了该账号该地域下所有的集群以及各自的类型和当日告警数量等基本信息。通过集群状态列表您可以进入到集群的 监控详情集群管理页面。
集群状态列表

监控详情

  • 集群监控概览页
    集群监控概览页展示了选定集群监控相关数据的概览情况,与仪表盘页面类似,区别是仪表盘页面展示的概览数据是该账号该地域下所有集群的概览信息,集群监控概览页面是选定集群的概览信息。其中包括了:
    • 集群基础的四个统计图(当日告警数据统计、当日作业情况统计、当日 YARN 计算资源使用量统计和当日 HDFS 存储容量使用情况统计)
    • 告警与详情(该集群最新的严重异常事件列表)
    • 集群服务状态列表(通过集群服务状态列表可以直接跳转到服务组件状态详情页。)
  • 主机监控
    • 主机监控概览
      主机监控概览
      • 指标统计概览图
        主机监控概览页面展示了对集群所有主机相关指标的概览图表:
        • 告警数据统计

          统计该集群上主机相关的告警的数量(主机相关告警是指与集群上服务没有任何关系的告警,即 CPU、内存、网络、磁盘、负载以及其它跟主机相关的异常和错误)。

        • CPU 使用率

          该集群所有主机当日 CPU 使用率情况统计,统计的指标包括 cpu_system 和 cpu_user,默认是一个小时一个数据点,图表支持放大和自定义时间区间和粒度。

        • 内存使用率

          该集群所有主机当日内存使用情况统计,默认是一个小时一个数据点,图表支持放大和自定义时间区间和粒度。

        • 磁盘容量使用率

          该集群所有主机当日磁盘容量(所有主机加和)使用情况统计,默认是一个小时一个数据点,图表支持放大和自定义时间区间和粒度。

        • 5分钟负载

          该集群所有主机当日的 5 分钟负载(load_five 指标)统计数据,默认是 5 分钟一个数据点,图表支持放大和自定义时间区间和粒度。

        • 网络流量

          该集群所有主机当日的网络流量数据统计(所有主机流量平均,不是加和),默认是 1 分钟一个数据点,展示最近 2 小时数据,图表支持放大和自定义时间区间和粒度。

      • 告警与详情

        展示主机相关的告警列表(与主机相关与具体服务无关的错误和异常)

      • 主机状态
        展示该集群所有的主机列表以及主机当前时刻的性能指标快照数据,包括 CPU、内存、负载(默认展示 5 分钟负载)和网络流量情况。该列表支持分页,通过该列表可以进入具体主机的 主机监控详情页面。
        主机状态
    • 单个主机监控详情页面
      在主机监控概览页面,单击主机状态列表中对应主机的 查看详情,可以进入到单个主机的 主机监控详情页面。
      主机详情
      • 指标统计概览图

        参考主机监控概览章节

      • 告警与详情

        参考主机监控概览章节

      • 基本信息
        展示了主机的一些基础信息,包括主机名、内网 IP、ECS 状态、ECS 规格、硬件配置、到期时间和磁盘信息。
        基本信息
      • 主机快照信息
        主机快照信息
        主机快照信息是根据一定时间间隔对主机核心指标信息做快照保存展示的功能,主要包括:
        • Uptime:查看主机启动时间,对应命令为 uptime
        • Last Logged in Users: 查看最后登陆用户列表信息,对应命令为 last -w -n 25
        • Top CPU Processes: 查看主机上最占用CPU的进程列表,对应命令为 top -b -w 20480 -c -o %CPU -n 1 | head -20
        • Top Memory Processes:查看主机上最占用内存的进程列表,对应命令为 top -b -w 20480 -c -o %MEM -n 1 | head -20
        • Memory Usage: 查看主机当前内存使用情况,对应命令为 free -m
        • Disk Usage:查看主机当前磁盘容量使用情况,对应命令为 df -h
        • Network Statistics: 查看主机网络统计信息,对应命令为 netstat -s -e
        • Dmesg:查看主机最近的 dmesg 输出信息,对应命令为 dmesg -dT | tail -n 25
        • Iostat: 查看主机 I/O 统计数据,对应命令为 iostat -x 1 5
        • Vmstat: 查看主机 vmstat 输出,对应命令为 vmstat 1 5
        • Network Connections:查看主机当前网络链接信息,对应命令为 netstat -ap
        • Process List: 查看当前主机的进程列表信息(全量),对应命令为 ps auxwwwf
        • /etc/hosts: 查看当前主机的/etc/hosts文件配置信息,对应命令为 cat /etc/hosts

        其中 Network Connections、Process List 和 /etc/hosts 这三类快照信息,是每 1 小时做一次快照保存,其它数据为每 5 分钟做一次快照保存。

        主机快照功能同时支持回放功能,即可以选择历史的一个时间点看当时的快照信息,在排查主机问题的时候可以恢复部分现场数据。

        • 主机快照的典型使用场景

          排查OOM killer 到底杀掉的是什么进程

          APM 的日志分析检测功能分析了 /var/log/message 日志,经常会有 java 进程被 OOM killer 杀掉,我们在 APM 事件列表里面和钉钉告警里面进程会收到编码为 **EMR-350100001** 的告警信息,说明内容为:

          但是日志里面记录的都是进程的简单命令,没有记录完整参数,显示的进程命令为 java PID 为 887,不知道具体是什么进程被杀掉,这个时候可以通过对应主机快照找到问题发生时间点的进程列表,进程列表信息会记录进程的详细信息,可以快速定位到是什么进程被杀了。

          • 排查主机 CPU 持续飙高的问题
            之前经常有客户因为自己安全设置的问题导致主机中了挖矿病毒,主机 CPU 会持续飙高,对于这类问题可以直接快速找到持续占用 CPU 的进程。

          • 排查主机内存持续飙高的问题

            如果主机内存使用率持续飙高,可以通过主机快照的 Top Memory Processes 查看对应时间点占用内存最高的进程列表。

          • 查看端口占用情况

            Network Collections 可以看到主机上端口占用的情况。

          • 查看磁盘损坏和其它内核问题

            查看主机最近的 Dmesg 信息可以快速发现主机磁盘损坏和其它内核问题。

          • 查看主机磁盘使用率

            当收到主机磁盘告警情况通过 Disk Space Usage 可以查看主机当前磁盘容量使用的情况。

      • 主机基础指标数据
        主机基础指标数据
        • CPU
        • cpu_system: cpu_system
        • cpu_user: cpu_user
        • cpu_idle: cpu_ilde
        • cpu_wio: cpu_wio
        • MEM
        • mem_free: memory free
        • mem_used_percent: memory used percent
        • mem_total: memory total
        • Traffic
        • pkts_in: packets in
        • pats_out: packets out
        • bytes_in: bytes in
        • bytes_out: bytes out
        • Disk
        • disk_total: disk total
        • disk_free: disk free
        • disk_free_percent_rootfs: disk percent for rootfs
        • Other
        • proc_run: number of running proccesses
        • proc_total: number of total processes
        主机基础指标数据的图表均支持放大、自定义时间范围和粒度。