主机监控的监控项包括操作系统监控项和基础监控项。操作系统监控项数据采集频率为每15秒一次,基础监控项数据采集频率为每1分钟一次。

说明 当您查看ECS基础监控和操作系统监控数据(来源于插件采集数据)时,可能会存在数据不一致的情况,主要原因如下:
  • 统计频率不同。监控图表中提供的数据均为统计周期内的平均值,基础监控统计频率是1分钟,操作系统统计频率是15秒。当监控数据波动比较大时,会出现基础监控数据比操作系统监控数据小的情况。
  • 数据统计视角不同。基础监控的网络流量统计计费维度数据,已除去ECS和SLB之间不计费的网络流量。操作系统监控的网络流量,记录每张网卡实际的网络流量。会出现操作系统监控的网络数据大于基础监控网络数据的情况,即出现插件采集的数据比实际购买的带宽或流量大的情况。

操作系统监控项

  • CPU相关监控项
    • Linux

      您可以参考top命令理解下表中监控项的含义。

    • Windows

      调用ntdll中的NtQuerySystemInformation函数,获取CPU各个部分所花费时间。间隔两次调用该函数即可获得该时间间隔内CPU各个部分所占比率。

    监控项名称 监控项含义 单位 MetricName Dimensions Statistics 说明(仅用于Linux)
    (Agent)cpu.idle 当前空闲CPU百分比。 % cpu_idle userId、instanceId Maximum、Minimum、Average 当前CPU处于空闲状态的百分比。
    (Agent)cpu.system 当前内核空间占用CPU百分比。 % cpu_system userId、instanceId Maximum、Minimum、Average 系统上下文切换的消耗。如果该监控项数值比较高,则说明服务器开了太多的进程或线程。
    (Agent)cpu.user 当前用户空间占用CPU百分比。 % cpu_user userId、instanceId Maximum、Minimum、Average 用户进程对CPU的消耗。
    (Agent)cpu.wait 当前等待IO操作的CPU百分比。 % cpu_wait userId、instanceId Maximum、Minimum、Average 如果该监控项数值比较高,则说明IO操作频繁。
    (Agent)cpu.other 其他占用CPU百分比。 % cpu_other userId、instanceId Maximum、Minimum、Average 其他消耗=Nice+SoftIrq+Irq+Stolen。
    (Agent)cpu.total 当前消耗的总CPU百分比。 % cpu_total userId、instanceId Maximum、Minimum、Average 当前消耗=1-Host.cpu.idle
  • 内存相关监控项
    • Linux

      您可以参考free命令理解下表中监控项的含义,数据源:/proc/meminfo

    • Windows

      调用kernel32.dll中的GlobalMemoryStatusEx函数获取Windows 32位操作系统当前物理和虚拟内存的使用情况。

    监控项名称 监控项含义 单位 MetricName Dimensions Statistics 说明(仅用于Linux)
    (Agent)memory.total.space 内存总量。 Byte memory_totalspace userId、instanceId Maximum、Minimum、Average

    服务器的内存总量。

    /proc/meminfo的MemTotal。

    (Agent)memory.free.space 剩余内存量。 Byte memory_freespace userId、instanceId Maximum、Minimum、Average

    系统可用内存。

    /proc/meminfo的MemFree。

    (Agent)memory.used.space 已用内存量。 Byte memory_usedspace userId、instanceId Maximum、Minimum、Average

    系统已用内存。

    计算方法:total–free。

    (Agent)memory.actualused.space 用户实际使用的内存。 Byte memory_actualusedspace userId、instanceId Maximum、Minimum、Average 计算方法:
    • /proc/meminfo中有MemAvailable时:total-MemAvailable
    • /proc/meminfo中无MemAvailable时:used–buffers-cached
    说明 当Centos 7.2与Ubuntu 16.04以上(包含)的系统使用新的Linux内核时,内存估算更准确,MemAvailable的具体含义,请参见commit
    (Agent)memory.free.utilization 剩余内存百分比。 % memory_freeutilization userId、instanceId Maximum、Minimum、Average 计算方法:
    • /proc/meminfo中有MemAvailable时:MemAvailable/total×100%。
    • /proc/meminfo中无MemAvailable时:(total–actualused)/total ×100%。
    (Agent)memory.used.utilization 内存使用率。 % memory_usedutilization userId、instanceId Maximum、Minimum、Average 计算方法:
    • /proc/meminfo中有MemAvailable时:(total-MemAvailable)/total×100%。
    • /proc/meminfo中无MemAvailable时:(total–free-buffers-cached)/total×100%。
  • 系统平均负载监控项
    • Linux

      您可以参考top命令理解下表中监控项的含义。监控项数值越大表示系统越繁忙。

    • Windows

      无此监控项。

    监控项名称 监控项含义 单位 MetricName Dimensions Statistics
    (Agent)load.1m 过去1分钟的系统平均负载。 load_1m userId、instanceId Maximum、Minimum、Average
    (Agent)load.5m 过去5分钟的系统平均负载。 load_5m userId、instanceId Maximum、Minimum、Average
    (Agent)load.15m 过去15分钟的系统平均负载。 load_15m userId、instanceId Maximum、Minimum、Average
    (Agent)load.1m.percore CPU平均每核过去1分钟的系统平均负载。 load_per_core_1m userId、instanceId Maximum、Minimum、Average
    (Agent)load.5m.percore CPU平均每核过去5分钟的系统平均负载。 load_per_core_5m userId、instanceId Maximum、Minimum、Average
    (Agent)load.15m.percore CPU平均每核过去15分钟的系统平均负载。 load_per_core_15m userId、instanceId Maximum、Minimum、Average
  • 磁盘相关监控项
    • Linux

      磁盘使用率与inode使用率可以参考df命令,磁盘读写可以参考iostat命令,便于您理解下表中监控项的含义。

    • Windows

      先调用Kernel32.dll中的GetDiskFreeSpaceExA检索磁盘可用空间,获取磁盘的已用存储空间、磁盘使用率、磁盘的剩余存储空间和磁盘存储总量;再调用RegConnectRegistryA函数建立与HKEY_PERFORMANCE_DATA注册表的连接;最后调用RegQueryValueExA函数查询HKEY_PERFORMANCE_DATA注册表中磁盘相关属性(读取次数、写入次数、写入字节数、读取字节数、读取花费时间、写入花费时间和磁盘使用时间)。

    监控项名称 监控项含义 单位 MetricName Dimensions Statistics
    (Agent)disk.usage.used_device 磁盘的已用存储空间。 Byte diskusage_used userId、instanceId、device Maximum、Minimum、Average
    (Agent)disk.usage.utilization_device 磁盘使用率。 % diskusage_utilization userId、instanceId、device Maximum、Minimum、Average
    (Agent)disk.usage.free_device 普通用户和超级用户的磁盘剩余存储空间。 Byte diskusage_free userId、instanceId、device Maximum、Minimum、Average
    (Agent)disk.usage.avail_device 普通用户的磁盘剩余存储空间。 Byte diskusage_avail userId、instanceId、device Maximum、Minimum、Average
    (Agent)disk.usage.total_device 磁盘存储总量。 Byte diskusage_total userId、instanceId、device Maximum、Minimum、Average
    (Agent)disk.read.bps_device 磁盘每秒读取的字节数。 Byte/s disk_readbytes userId、instanceId、device Maximum、Minimum、Average
    (Agent)disk.write.bps_device 磁盘每秒写入的字节数。 Byte/s disk_writebytes userId、instanceId、device Maximum、Minimum、Average
    (Agent)disk.read.iops_device 磁盘每秒的读请求数量。 次/秒 disk_readiops userId、instanceId、device Maximum、Minimum、Average
    (Agent)disk.write.iops_device 磁盘每秒的写请求数量。 次/秒 disk_writeiops userId、instanceId、device Maximum、Minimum、Average
  • 文件系统监控项
    • Linux

      您可以参考df命令理解下表中监控项的含义。

    • Windows

      无此监控项。

    监控项名称 监控项含义 单位 MetricName Dimensions Statistics 说明(仅用于Linux)
    (Agent)fs.inode.utilization_device inode使用率。 % fs_inodeutilization userId、instanceId、device Maximum、Minimum、Average Linux系统内部不使用文件名,而使用inode号码来识别文件。当磁盘未存满,但inode已经分配完时,会出现无法在磁盘新建文件的情况,因此需要监控inode使用率。inode数量代表文件系统的文件数量,大量小文件会导致inode使用率过高。
  • 网络相关监控项
    • Linux
      • 您可以参考ss命令理解TCP连接数采集。
        说明 TCP连接数是指ECS主机中所有占用TCP协议的连接。

        TCP连接数默认采集TCP_TOTAL(总连接数)、ESTABLISHED(正常连接状态)和NON_ESTABLISHED(非连接的状态连接数,ESTABLISHED以外的所有状态)。

      • 您可以参考iftop命令理解下表中网络相关监控项的含义。
    • Windows

      先调用Iphlpapi.dll中的GetAdaptersAddresses来获取本机上的适配器地址;再通过调用GetIfTable来获取各个Interface网络指标,包括每秒接受比特数、每秒发送比特数、每秒接受的数据包数、每秒发送的数据包数、接受错误包数和发送错误包数等。

    监控项名称 监控项含义 单位 MetricName Dimensions Statistics
    (Agent)network.in.rate_IP 网卡每秒接收的比特数,即网卡的上行带宽。 bit/s networkin_rate userId、instanceId、device Maximum、Minimum、Average
    (Agent)network.out.rate_IP 网卡每秒发送的比特数,即网卡的下行带宽。 bit/s networkout_rate userId、instanceId、device Maximum、Minimum、Average
    (Agent)network.in.packages_IP 网卡每秒接收的数据包数。 个/秒 networkin_packages userId、instanceId、device Maximum、Minimum、Average
    (Agent)network.out.packages_IP 网卡每秒发送的数据包数。 个/秒 networkout_packages userId、instanceId、device Maximum、Minimum、Average
    (Agent)network.in.errorpackages_IP 设备驱动器检测到的接收错误包的数量。 个/秒 networkin_errorpackages userId、instanceId、device Maximum、Minimum、Average
    (Agent)network.out.errorpackages_IP 设备驱动器检测到的发送错误包的数量。 个/秒 networkout_errorpackages userId、instanceId、device Maximum、Minimum、Average
    (Agent)network.tcp.connection_state 各种状态下的TCP连接数包括:LISTEN、SYN_SENT、ESTABLISHED、SYN_RECV、FIN_WAIT1、CLOSE_WAIT、FIN_WAIT2、LAST_ACK、TIME_WAIT、CLOSING和CLOSED。 Count net_tcpconnection userId、instanceId、state Maximum、Minimum、Average
  • 进程相关监控项
    • Linux
      • 进程的CPU使用率和内存使用率可参考top命令,CPU使用率为多核使用情况。
      • Host.process.openfile可参考lsof命令。
      • Host.process.number可参考ps aux | grep '<关键字>'命令。
    • Windows
      • 查询

        先通过调用Kernel32.dll中的OpenProcess函数进入进程,间隔两次调用GetProcessTimes获取CPU各部分消耗的时间来获得在时间间隔内process中CPU各部分所花费的时间比率;再调用RegConnectRegistryA函数建立与HKEY_PERFORMANCE_DATA注册表的连接,调用RegQueryValueExA函数查询HKEY_PERFORMANCE_DATA注册表中进程相关属性(进程ID、进程的父进程号、优先级、虚拟内存、常驻内存、共享内存、进程名、打开文件数、包含线程数、页错误、读取字节和写入字节)。

      • 计数(Host.process.number)
        • 先调用OpenProcess打开需要查询的进程,再调用NTDLL中的NtQueryInformationProcess函数获得进程RTL_USER_PROCESS_PARAMETERS的参数信息,最后通过ReadProcessMemory函数获得进程cmdline,从而获得进程args和运行root路径,即进程当前文件夹路径。
        • 先调用OpenProcessToken获取访问Token的句柄,再调用GetTokenInformation获取Token信息,最后通过LookupAccountSid获得进程的用户名和用户组。
        • 对于每条进程的进程args和运行root路径,与进程当前文件夹路径、用户名和用户组进行匹配,与关键字match的计数+1。
    监控项名称 监控项含义 单位 MetricName Dimensions Statistics 备注
    (Agent)process.cpu_pid 某个进程消耗的CPU百分比。 % process.cpu userId、instanceId、name、pid Average 不支持设置报警。
    (Agent)process.memory_pid 某个进程消耗的内存百分比。 % process.memory userId、instanceId、name、pid Average 不支持设置报警。
    (Agent)process.openfile_pid 当前进程打开文件数。 process.openfile userId、instanceId、name、pid Average 不支持设置报警。
    (Agent)process.count_processname 指定关键字的进程数。 process.number userId、instanceId、processName Average 不支持设置报警。

基础监控项

如果您的主机是ECS服务器,则以下监控项无需安装插件。指标采集粒度为1分钟。
监控项名称 监控项含义 单位 MetricName Dimensions Statistics
(ECS)CPU使用率 CPU使用率 % CPUUtilization userId、instanceId Maximum、Minimum、Average
(ECS)公网流入流量平均速率 公网入流量平均速率 bit/s InternetInRate userId、instanceId Maximum、Minimum、Average
(ECS)内网流入流量平均速率 私网入流量平均速率 bit/s IntranetInRate userId、instanceId Maximum、Minimum、Average
(ECS)公网流出流量平均速率 公网出流量平均速率 bit/s InternetOutRate userId、instanceId Maximum、Minimum、Average
(ECS)内网流出带宽平均使用率 私网出流量平均速率 bit/s IntranetOutRate userId、instanceId Maximum、Minimum、Average
(ECS)所有磁盘读取BPS 系统磁盘每秒读取字节总数 Byte/s DiskReadBPS userId、instanceId Maximum、Minimum、Average
(ECS)所有磁盘写入BPS 系统磁盘每秒写入字节总数 Byte/s DiskWriteBPS userId、instanceId Maximum、Minimum、Average
(ECS)所有磁盘每秒读取次数 所有磁盘读IOPS 个/秒 DiskReadIOPS userId、instanceId Maximum、Minimum、Average
(ECS)所有磁盘每秒写入次数 所有磁盘写IOPS 个/秒 DiskWriteIOPS userId、instanceId Average、Minimum、Maximum
(ECS)IP维度公网流入平均速率 公网流入带宽 bit/s VPC_PublicIP_InternetInRate userId、instanceId、ip Maximum、Minimum、Average
(ECS)IP维度公网流出平均速率 公网流出带宽 bit/s VPC_PublicIP_InternetOutRate userId、instanceId、ip Maximum、Minimum、Average
(ECS)IP维度公网流出带宽使用率 公网流出带宽使用率 bit/s VPC_PublicIP_InternetOutRate_Percent userId、instanceId、ip Maximum、Minimum、Average
(ECS)公网流入流量 公网流入流量 Byte InternetIn userId、instanceId Average、Minimum、Maximum、Sum
(ECS)公网流出流量 公网流出流量 Byte InternetOut userId、instanceId Maximum、Minimum、Average
(ECS)内网流入流量平均速率 内网流入流量 Byte IntranetInRate userId、instanceId Maximum、Minimum、Average