更新时间:2024-04-25 GMT+08:00
分享

OS类型插件说明

cpu

功能说明

统计cpu信息,每次采集都为每个vcpu,以及总cpu维度分别生成消息。

原始数据来源:/proc/loadavg、/proc/stat等。

参数配置

插件默认为CPU0、CPU1、...、CPU-ALL分别生成消息。用户可根据需要配置_filter_cpu_id项,进行消息筛选。如果用户只需要总维度的CPU统计信息,则可配置参数_filter_cpu_id为CPU-ALL。

消息样例及含义说明

{
    "plugin_id": "cpu",
    "metric": {
        "node": "host-10-33-0-188",               #单位:  | 类型:string   | 说明:主机名,消息来源标识
        "timestamp": 1482161028000,               #单位:  | 类型:long long | 说明:UTC时间戳
        "cpu_id": "CPU1",                         #单位:  | 类型:string   | 说明:cpu编号(CPU-ALL:系统整体维度)
        "guest": "0.0",                           #单位:% | 类型:double  | 说明:访客控制cpu时间占有率
        "guest_nice": "0.0",                      #单位:% | 类型:double  | 说明:低优先级访客控制cpu时间占有率
        "idle": "100.0",                          #单位:% | 类型:double  | 说明:空闲(不包含IO等待)时间占有率
        "iowait": "0.0",                          #单位:% | 类型:double  | 说明:等待IO响应的时间占有率
        "irq": "0.0",                             #单位:% | 类型:double  | 说明:处理硬件中断的时间占有率
        "ldavg15m": "0.05",                       #单位:  | 类型:double  | 说明:近15分钟内平均负载
        "ldavg1m": "0.01",                        #单位:  | 类型:double  | 说明:近1分钟内平均负载
        "ldavg5m": "0.03",                        #单位:  | 类型:double  | 说明:近5分钟内平均负载
        "nice": "0.0",                            #单位:% | 类型:double  | 说明:低优先级用户态时间占有率
        "softirq": "0.0",                         #单位:% | 类型:double  | 说明:处理软件中断的时间占有率
        "steal": "0.0",                           #单位:% | 类型:double  | 说明:花在虚拟系统上的时间占有率
        "system": "0.0",                          #单位:% | 类型:double  | 说明:系统态时间占有率
        "user": "0.0",                            #单位:% | 类型:double  | 说明:用户态时间占有率
        "util": "0.0",                            #单位:% | 类型:double  | 说明:cpu占有率(1-idle)
        "vcpu_num": "48"                          #单位:  | 类型:double  | 说明:vcpu数量
    }
}

diskio

功能说明

统计磁盘IO信息,每次采集将针对每个磁盘分别生成一条消息。

插件先从/proc/partitions获取全部物理磁盘及逻辑分区的名字、主次设备号。然后根据得到的磁盘名单,从/proc/diskstats提取每个物理磁盘或逻辑分区的读写数据,并进一步进行计算得到IO数据。

参数配置

配置样例:

_filter_disk_id:xvda,^1,^2 #筛选关键字

show_extra:true #是否按照磁盘分区生成多条消息

其中带“^”前缀的为反向筛选关键字(1、2),其余为正向筛选关键字(xvda),每条消息在最终生成之前,插件会先执行一次正向筛选(若disk_id的值包含xvda,则保留这条消息;反之则删掉。若没有配置正向筛选关键字,则跳过这步筛选,保留消息。)若该条消息得以保留,插件会继续执行一次反向筛选(若disk_id的值包含1或2当中的任一字段,则删掉这条消息;反之则保留。若没有配置反向筛选关键字,则跳过这步筛选,保留消息。)

show_extra为true时表示按照磁盘分区生成多条消息。

假设某台服务器执行cat /proc/partitions命令结果如图1所示,共7行数据,按照“_filter_disk_id:xvda,^1,^2”配置正反向过滤后,仅生成第1行xvda对应的消息。

图1 示例1

消息样例及含义说明

{
    "plugin_id": "diskio",
    "metric": {
        "node": "host-10-33-0-188",                       #单位:  | 类型:string   | 说明:主机名,消息来源标识
        "timestamp": 1482161028000,                       #单位:    | 类型:long long | 说明:UTC时间戳
        "avgqu_sz": "0.0000",                             #单位:    | 类型:double  | 说明:平均I/O队列长度
        "avgrq_sz": "0.0000",                             #单位:扇区| 类型:double  | 说明:平均每次设备I/O操作的数据大小
        "await": "0.0000",                                #单位:ms  | 类型:double  | 说明:平均每次设备I/O操作的等待时间
        "disk_id": "xvda",                                #单位:    | 类型:string   | 说明:物理磁盘号/逻辑分区号
        "r_await": "0.0000",                              #单位:ms  | 类型:double  | 说明:平均每次读请求等待时间
        "rkbps": "0.0000",                                #单位:kB/s | 类型:double  | 说明:读操作的kbps数, 单位为KByte/s
        "rps": "0.0000",                                  #单位:次/s | 类型:double  | 说明:每秒完成的读I/O设备次数
        "rrqmps": "0.0000",                               #单位:次/s | 类型:double  | 说明:每秒进行merge的读操作数目
        "svctm": "0.0000",                                #单位:ms  | 类型:double  | 说明:平均每次设备I/O操作的服务时间
        "tps": "0.0000",                                  #单位:次/s | 类型:double  | 说明:每秒完成的读写I/O设备总次数
        "util": "0.0",                                    #单位:%   | 类型:double  | 说明:磁盘IO利用率
        "w_await": "0.0000",                              #单位:ms  | 类型:double  | 说明:平均每次写请求等待时间
        "wkbps": "0.0000",                                #单位:kB/s | 类型:double  | 说明:写操作的kbps数, 单位为KByte/s
        "wps": "0.0000",                                  #单位:次/s | 类型:double  | 说明:每秒完成的写I/O设备次数
        "wrqmps": "0.0000"                                #单位:次/s | 类型:double  | 说明:每秒进行merge的写操作数目
    }
}

fs

功能说明

统计文件系统使用情况,采集数据内容和df -lh命令一致。

参数配置

配置样例:“_filter_mounted_name:^/shm,/dev,/opt”,其中带"^"前缀的为反向筛选关键字(/shm),其余为正向筛选关键字(/dev、/opt),每条消息在最终生成之前,插件会先执行一次正向筛选(若mounted_name的值包含/dev或/opt任一字段,则保留这条消息;反之则删掉。若没有配置正向筛选关键字,则跳过这步筛选,保留消息。)若该条消息得以保留,插件会继续执行一次反向筛选(若mounted_name的值包含/shm字段,则删掉这条消息;反之则保留。若没有配置反向筛选关键字,则跳过这步筛选,保留消息。)

假设某台服务器执行df -lh命令结果如图2所示,共4行数据,按照_filter_mounted_name:^/shm,/dev,/opt”配置正反向过滤后,仅生成第2、4行对应的消息。/dev/shm由于包含/shm,对应的消息将被剔除。

图2 示例2

消息样例及含义说明

{
         "plugin_id": "fs",
         "metric": {
                "node": "host-10-33-0-188",                 #单位:  | 类型:string   | 说明:主机名,消息来源标识
                "timestamp": 1482161028000,                 #单位:   | 类型:long long | 说明:UTC时间戳
                "fs_name": "/dev/mapper/vg1-lv1",           #单位:   | 类型:string   | 说明:文件系统(= df命令的Filesystem列)
                "free": " 8707.9",                          #单位:mb | 类型:double  | 说明:分区可用空间大小(= df命令的Avail列)
                "total": " 90710.0",                        #单位:mb | 类型:double  | 说明:分区总大小(= df命令的Size列)
                "usage": "90.0",                            #单位:%  | 类型:double  | 说明:分区使用率(= df命令的Use%列)
                "used": " 80988.4",                         #单位:mb | 类型:double  | 说明:分区已使用大小(= df命令的Used列)
                "mounted_name":"/opt",                      #单位:   | 类型:string   | 说明:分区挂载点(= df命令的Mounted on列)
                "index_node_use_util": " 3.00000 "          #单位:%  | 类型:double  | 说明:inode使用率(= df -i命令的IUse%列)
         }

mem

功能说明

采集全系统有关的内存信息。

原始数据来源:/proc/meminfo、/proc/vmstat

参数配置

不需配置。

消息样例及含义说明

{
    "plugin_id": "mem",
    "metric": {
        "node": "host-10-33-0-188",                     #单位:  | 类型:string | 说明:主机名,消息来源标识
        "timestamp": 1482161028000,                     #单位:  | 类型:long  | 说明:UTC时间戳
        "active": "6476724",                            #单位:kB | 类型:int   | 说明:活跃内存
        "buffers": "1776864",                           #单位:kB | 类型:int   | 说明:buffers缓存
        "cached": "8662036",                            #单位:kB | 类型:int   | 说明:cached缓存
        "dirty": "152",                                 #单位:kB | 类型:int   | 说明:等待写回磁盘的内存
        "inactive": "4966164",                          #单位:kB | 类型:int   | 说明:不活跃内存
        "mem_free": "3964160",                          #单位:kB | 类型:int   | 说明:可用内存
        "mem_free_in_buf_cache": "14403060",            #单位:kB | 类型:int   | 说明:实际可用内存(+buffers+cached)
        "mem_free_size": "15072556",                    #单位:kB | 类型:int   | 说明:"MemFree + Cached + Buffers + SReclaimable + Swapcached + Nfs_unstable - Shmem" 
        "mem_total": "16311792",                        #单位:kB | 类型:int   | 说明:全部内存
        "mem_used": "12347632",                         #单位:kB | 类型:int   | 说明:已用内存
        "mem_used_ex_buf_cache": "1908732",             #单位:kB | 类型:int   | 说明:实际内存占用(-buffers-cached)
        "mem_used_size": "1239236",                     #单位:kB | 类型:int   | 说明:mem_total - mem_free_size
        "mem_util": "7.6",                              #单位:% | 类型:double | 说明:mem_used_size / mem_total
        "swap_cached": "2632",                          #单位:kB | 类型:int   | 说明:交换内存被缓存的大小
        "swap_free": "4151180",                         #单位:kB | 类型:int   | 说明:当前未使用的交换空间数
        "swap_total": "4192252",                        #单位:kB | 类型:int   | 说明:可用的交换空间总数
        "swap_util": "3",                               #单位:% | 类型:double  | 说明:交换空间占用率
        "writeback": "0",                               #单位:kB | 类型:int   | 说明:正在写回磁盘的内存
        "pgfault": "4123",                              #单位: | 类型:int    | 说明:本周期page fault数
        "pgin": "0",                                    #单位: | 类型:int    | 说明:本周期page in数
        "pgmajfault": "0",                              #单位: | 类型:int    | 说明:本周期major page fault数
        "pgout": "0"                                    #单位: | 类型:int    | 说明:本周期page out数
    }}

net

功能说明

采集网络IO信息,默认采集的目标网卡与本机ifconfig命令显示的网卡列表一致,仅采集ifconfig显示UP状态的网卡。

原始数据来源:/proc/net/dev

参数配置

通过_filter_nic_name配置,根据nic_name指标,对消息进行筛选,决定最终生成的哪些网卡的消息。

_filter_nic_name的配置比较特殊,只有当nic_name值以配置关键字串开头时,才会保留这条消息,而其他插件的消息筛选机制为包含即保留。如某台机器ifconfig列出的网卡名有eth0、eth1、veth1、lo。如果配置“_filter_nic_name:eth”,则剔除veth1和lo的消息,保留eth0、eth1的消息。

消息样例及含义说明
{
"plugin_id": "net",
"metric": {
       "node": "host-10-33-0-188",              #单位:    | 类型:string   | 说明:主机名,消息来源标识
       "timestamp": 1482161028000,              #单位:    | 类型:long long | 说明:UTC时间戳
       "collps": "0.0000",	                #单位:次/s | 类型:double  | 说明:检测到发送冲突频率
       "nic_name": "enp2s0f0",	                #单位:    | 类型:string   | 说明:网卡名,与ifconfig列表一致
       "rxcmpps": "0.0000",                     #单位:包/s | 类型:double  | 说明:接收压缩报速率
       "rxdropps": "0.0000",	                #单位:包/s | 类型:double  | 说明:接收丢报速率
       "rxdroprate": "0.0",	                #单位:%   | 类型:double  | 说明:接收丢报率
       "rxerrps": "0.0000",	                #单位:次/s | 类型:double  | 说明:接收错误频率
       "rxfifops": "0.0000",	                #单位:次/s | 类型:double  | 说明:接收FIFO缓存错误频率
       "rxframps": "0.0000",	                #单位:次/s | 类型:double  | 说明:接收帧错误频率
       "rxkbps": "0.0000",	                #单位:kB/s | 类型:double  | 说明:接收的kbps数,单位为KByte/s, 转换为kbps需乘以8
       "rxmcstps": "0.0000",	                #单位:次/s | 类型:double  | 说明:接收多播频率
       "rxpckps": "0.0000",			#单位:包/s | 类型:double  | 说明:接收报文速率
       "rxutil": "0.0",				#单位:%   | 类型:double  | 说明:接收带宽利用率
       "txcarrps": "0.0000",			#单位:次/s | 类型:double  | 说明:传输介质故障频率
       "txcmpps": "0.0000",			#单位:包/s | 类型:double  | 说明:发送压缩报速率
       "txdropps": "0.0000",			#单位:包/s | 类型:double  | 说明:发送丢报数速率
       "txdroprate": "0.0",			#单位:%   | 类型:double  | 说明:发送丢报率
       "txerrps": "0.0000",			#单位:次/s | 类型:double  | 说明:发送错频率
       "txfifops": "0.0000",			#单位:次/s | 类型:double  | 说明:发送FIFO缓存错误频率
       "txkbps": "0.0000",			#单位:kB/s | 类型:double  | 说明:发送的kbps数,单位为KByte/s, 转换为kbps需乘以8
       "txpckps": "0.0000",			#单位:包/s | 类型:double  | 说明:发送报文速率
       "txutil": "0.0",				#单位:%   | 类型:double  | 说明:发送带宽利用率
       "running": "1"				#单位:%   | 类型:double  | 说明:网卡运行状态监测,如果为1表示ifconfig该网卡状态RUNNING,如果为-1表示ifconfig该网卡状态非RUNNING
}

osinfo

功能说明

osinfo插件采集操作系统相关信息。

使用该插件要求/etc/nsswitch.conf文件有读权限,且其中hosts的解释项不能使用dns,即cat /etc/nsswitch.conf | grep "^hosts:" | grep dns命令返回应为空。"running"/"sleeping"/"stopped"/"zombie",全部进程数 total与top命令输出的结果一致;最大文件打开数max_opens、最大进程数max_procs与ulimit -u、ulimit -n命令输出一致;本机当前打开的句柄数open_files与lsof|wc –l命令输出一致。open_files的获取每180秒只采集并上报一次,对于那些没有采集open_files的周期,该指标不出现在消息中。

原始数据来源:/proc/stat

参数配置

不需配置。

消息样例及含义说明

{
"plugin_id": "osinfo",
"metric": {
       "node": " host-10-33-0-188",             #单位: | 类型:string  | 说明:主机名,消息来源标识
       "timestamp": 1482161028000, 	        #单位: | 类型:long    | 说明:UTC时间戳
       "ctx": "245480",			        #单位: | 类型:int     | 说明:本周期上下文切换次数
       "procs": "1032",			        #单位: | 类型:int     | 说明:采集周期内新增的任务总数
       "blocked": "0",			        #单位: | 类型:int     | 说明:当前被阻塞的任务数
       "running": "0",	                        #单位: | 类型:int	| 说明:当前R状态的进程数(top: running)
       "sleeping": "882",			#单位: | 类型:int 	| 说明:当前D状态的进程数(top: sleeping)
       "stopped": "1",				#单位: | 类型:int 	| 说明:当前T状态的进程数(top: stopped)
       "zombie": "1"				#单位: | 类型:int 	| 说明:当前Z状态的进程数(top: zombie)
       "procs_total": "884",			#单位: | 类型:int 	| 说明:当前总进程数(top: Tasks)
       "max_opens": "1024",			#单位: | 类型:int 	| 说明:执行ulimit -n结果
       "max_procs": "2059087",		        #单位: | 类型:int 	| 说明:执行ulimit -u结果
       "open_files": "2059087",		        #单位: | 类型:int 	| 说明:本机当前打开的句柄数
}
}

snmp

功能说明

周期采集机器上TCP及UDP连接相关数据,每次采集发送一条消息。

原始数据来自:/proc/net/snmp

参数配置

不需配置。

消息样例及含义说明

{
"plugin_id": "snmp",
"metric": {
       "node": "host-10-33-0-188",              #单位:   | 类型:string   | 说明:主机名,消息来源标识
       "timestamp": 1482161028000, 		#单位:   | 类型:long long | 说明:UTC时间戳
       "tcp_curr_estab": "19",			#单位:   | 类型: double | 说明:当前处于ESTABLISHED/CLOSE_WAIT状态的TCP连接数	
       "tcp_in_segs_ps": "327.6371",		#单位:包/s| 类型:double  | 说明:tcp收包速率
       "tcp_out_segs_ps": "672.2037",		#单位:包/s| 类型:double  | 说明:tcp发包速率
       "tcp_retrans_rate_ps": "15.0",		#单位:%  | 类型: double | 说明:tcp重传率
       "udp_in_datagrams_ps": "0.0000",	        #单位:包/s| 类型:double  | 说明:udp收包速率
       "udp_out_datagrams_ps": "0.0000",	#单位:包/s| 类型:double  | 说明:udp发包速率
       "active_conn": "0.0000",			#单位:次/s| 类型:double  | 说明:单位时间tcp连接主动连接发起次数
       "passive_conn": "0.0000"			#单位:次/s| 类型:double  | 说明:单位时间tcp被动建立连接次数
}
}

gpu

功能说明

采集GPU信息,每次采集都为每个GPU,以及总GPU维度分别生成消息,并上报给HCW。

执行nvidia-smi命令,分别获取每个GPU的GPU-Util、Bus-Id、mem_used、mem_total、mem_util信息,并整合总GPU信息上报给HCW。

参数配置

不需要配置。

消息样例及含义说明

{
   "plugin_id":"gpu",                          #单位:  | 类型:string  | 说明:插件名
   "metric":{
              "node": "bj-xen-pdc-241-202",       #单位:  | 类型:string  | 说明:主机名,消息来源标识
              "timestamp": "1518078026000",       #单位:  | 类型:string  | 说明:字符类型时间戳
              "_id":"GPU-0",                      #单位:  | 类型:string  | 说明:GPU编号,总GPU编号为GPU-ALL
              "_name":"Tesla P100-PCIE",          #单位:  | 类型:string  | 说明:GPU型号
              "bus_id":"0000:04:00.0",           #单位:  | 类型:string  | 说明:GPU的Bus-Id
              "util":"61",	                  #单位:  | 类型:string  | 说明:GPU使用率
              "mem_used":"1385",                  #单位:  | 类型:string  | 说明:GPU已使用显存
              "mem_total":"16276",                #单位:  | 类型:string  | 说明:GPU显存总量
              "mem_util":"8.50"			  #单位:  | 类型:string  | 说明:GPU显存使用率
    }
}

verify_os

功能说明

检测主机名是否有变更,并将检测结果返回HCW。

插件在HCW_Agent启动时,会将主机名存入HCW_Agent/temp/hostname.cache中,插件每个采集周期,会获取当前的主机名并与HCW_Agent/temp/hostname.cache中的主机名对比,若一致,返回0;不一致,返回1。

参数配置

不需要配置。

消息样例及含义说明

{
   "plugin_id":"verify_os",                 #单位:  | 类型:string  | 说明:插件名
   "metric":{
             "node": " host-10-33-0-188",      #单位:  | 类型:string  | 说明:主机名,消息来源标识
             "timestamp": "1518078026000",     #单位:  | 类型:string  | 说明:字符类型时间戳
             "hostname":"1",	               #单位:  | 类型:string  | 说明:主机名对比结果,相同为0,不同为1
}
}
分享:

    相关文档

    相关产品