华为云用户手册

  • 原因分析 HDFS未启动或故障。 查看Flume运行日志: 2019-02-26 11:16:33,564 | ERROR | [SinkRunner-PollingRunner-DefaultSinkProcessor] | operation the hdfs file errors. | org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:414) 2019-02-26 11:16:33,747 | WARN | [hdfs-CCCC-call-runner-4] | A failover has occurred since the start of call #32795 ClientNamenodeProtocolTranslatorPB.getFileInfo over 192-168-13-88/192.168.13.88:25000 | org.apache.hadoop.io.retry.RetryInvocationHandler$ProxyDescriptor.failover(RetryInvocationHandler.java:220) 2019-02-26 11:16:33,748 | ERROR | [hdfs-CCCC-call-runner-4] | execute hdfs error. {} | org.apache.flume.sink.hdfs.HDFSEventSink$3.call(HDFSEventSink.java:744) java.net.ConnectException: Call From 192-168-12-221/192.168.12.221 to 192-168-13-88:25000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused HDFS Sink未启动。 查看Flume运行日志,发现“ flume current metrics”中并没有Sink信息: 2019-02-26 11:46:05,501 | INFO | [pool-22-thread-1] | flume current metrics:{"CHANNEL.BBBB":{"ChannelCapacity":"10000","ChannelFillPercentage":"0.0","Type":"CHANNEL","ChannelStoreSize":"0","EventProcessTimedelta":"0","EventTakeSuccessCount":"0","ChannelSize":"0","EventTakeAttemptCount":"0","StartTime":"1551152734999","EventPutAttemptCount":"0","EventPutSuccessCount":"0","StopTime":"0"},"SOURCE.AAAA":{"AppendBatchAcceptedCount":"0","EventAcceptedCount":"0","AppendReceivedCount":"0","MonTime":"0","StartTime":"1551152735503","AppendBatchReceivedCount":"0","EventReceivedCount":"0","Type":"SOURCE","TotalFilesCount":"1001","SizeAcceptedCount":"0","UpdateTime":"605410241202740","AppendAcceptedCount":"0","OpenConnectionCount":"0","MovedFilesCount":"1001","StopTime":"0"}} | org.apache.flume.node.Application.getRestartComps(Application.java:467)
  • 处理步骤 重建索引。 su - omm gsql -p 20051 -U omm -W password -d hivemeta DROP INDEX P CS _STATS_IDX; CREATE INDEX PCS_STATS_IDX ON PART_COL_STATS(DB_NAME, TABLE_NAME, COLUMN_NAME, PARTITION_NAME); CREATE INDEX SDS_N50 ON SDS(CD_ID); 重新查看执行计划,发现语句已经可以索引查询,且5ms执行完成(原来是700ms)。重新执行hive表字段增加,已经可以添加成功。
  • 原因分析 MetaStore客户端连接超时, MRS 默认MetaStore客户端和服务端连接的超时时间是600s,在Manager页面调大“hive.metastore.client.socket.timeout”为“3600s”。 出现另一个报错: Error: org.apache.hive.service.cli.HiveSQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. java.net.SocketTimeoutException: Read timed out Metastore元数据JDBC连接超时,默认60ms。 调大javax.jdo.option.ConnectionURL中socketTimeout=60000,仍然产生最初的报错: Timeout when executing method: alter_table_with_environment_context;3600556 ms exceeds 3600000 ms 尝试调大hive.metastore.batch.retrieve.max、hive.metastore.batch.retrieve.table.partition.max、dbservice.database.max.connections等参数均未能解决。 怀疑是 GaussDB 的问题,因为增加字段会遍历每个分区执行getPartitionColumnStatistics和alterPartition。 使用omm用户执行gsql -p 20051 -U omm -W password -d hivemeta登录Hive元数据库。命令中如果携带认证密码信息可能存在安全风险,在执行命令前建议关闭系统的history命令记录功能,避免信息泄露。 执行select * from pg_locks;没有发现锁等待。 执行select * from pg_stat_activity;发现进程执行时间较长。 SELECT 'org.apache.hadoop.hive.metastore.model.MPartitionColumnStatistics'AS NUCLEUS_TYPE,A0.AVG_COL_LEN,A0."COLUMN_NAME",A0.COLUMN_TYPE,A0.DB_NAME,A0.BIG_DECIMAL_HIGH_VALUE,A0.BIG_DECIMAL_LOW_VALUE,A0.DOUBLE_HIGH_VALUE,A0.DOUBLE_LOW_VALUE,A0.LAST_ANALYZED,A0.LONG_HIGH_VALUE,A0.LONG_LOW_VALUE,A0.MAX_COL_LEN,A0.NUM_DISTIN CTS ,A0.NUM_FALSES,A0.NUM_NULLS,A0.NUM_TRUES,A0.PARTITION_NAME,A0."TABLE_NAME",A0.CS_ID,A0.PARTITION_NAMEAS NUCORDER0 FROM PART_COL_STATS A0 WHERE A0."TABLE_NAME" = '$1' ANDA0.DB_NAME = '$2' AND A0.PARTITION_NAME = '$3' AND((((((A0."COLUMN_NAME" = '$4') OR (A0."COLUMN_NAME" ='$5')) OR (A0."COLUMN_NAME" = '$6')) OR (A0."COLUMN_NAME" ='$7')) OR (A0."COLUMN_NAME" = '$8')) OR (A0."COLUMN_NAME" ='$9')) ORDER BY NUCORDER0; 执行gs_guc reload -c log_min_duration_statement=100 -D /srv/BigData/dbdata_service/data/开启SQL录制,发现8中语句执行时长700ms,而且因为有10000+分区,会触发执行10000+次命令。 在SQL前加explain (analyze,verbose,timing,costs,buffers)分析执行计划,发现执行时需要全表扫描。 查看索引,发现不满足最左匹配原则。
  • 原因分析 查看DBService的备份页面错误信息,有如下错误信息提示: Clear temporary files at backup checkpoint DBService_test_DBService_DBService_20180326155921 that fialed last time. Temporary files at backup checkpoint DBService_test_DBService_DBService20180326155921 that failed last time are cleared successfully. 查看/var/log/Bigdata/dbservice/scriptlog/backup.log文件,发现日志停止打印,并没有备份相关信息。 查看主 OMS 节点 /var/log/Bigdata/controller/backupplugin.log日志发现如下错误信息: result error is ssh:connect to host 172.16.4.200 port 22 : Connection refused (172.16.4.200是DBService的浮动IP) DBService backup failed.
  • 原因分析 查看Kerberos日志“/var/log/Bigdata/kerberos/krb5kdc.log”,发现有集群外的IP使用Kafka用户连接,导致多次认证失败,最终导致Kafka账号被锁定。 Jul 11 02:49:16 192-168-1-91 krb5kdc[1863](info): AS_REQ (2 etypes {18 17}) 192.168.1.93: NEEDED_PREAUTH: kafka/hadoop.hadoop.com@HADOOP.COM for krbtgt/HADOOP.COM@HADOOP.COM, Additional pre-authentication required Jul 11 02:49:16 192-168-1-91 krb5kdc[1863](info): preauth (encrypted_timestamp) verify failure: Decrypt integrity check failed Jul 11 02:49:16 192-168-1-91 krb5kdc[1863](info): AS_REQ (2 etypes {18 17}) 192.168.1.93: PREAUTH_FAILED: kafka/hadoop.hadoop.com@HADOOP.COM for krbtgt/HADOOP.COM@HADOOP.COM, Decrypt integrity check failed
  • 处理步骤 调整上层业务,将动态分区数控制在“hive.exec.max.dynamic.partitions”参数值范围内。 执行set hive.exec.max.dynamic.partitions = XXX;命令调大“hive.exec.max.dynamic.partitions”参数值。 SparkSQL中需要设置“spark.hadoop.hive.exec.max.dynamic.partitions”参数。
  • 调整HDFS Shell客户端日志级别 临时调整,关闭该Shell客户端窗口后,日志会还原为默认值。 执行export HADOOP_ROOT_ LOG GER命令可以调整客户端日志级别。 执行export HADOOP_ROOT_LOGGER=日志级别,console,可以调整shell客户端的日志级别。 export HADOOP_ROOT_LOGGER=DEBUG,console,调整为DEBUG。 export HADOOP_ROOT_LOGGER=ERROR,console,调整为ERROR。 永久调整 在HDFS客户端环境变量配置文件“/opt/client/HDFS/component_env”(其中“/opt/client”需要改为实际客户端路径)增加“export HADOOP_ROOT_LOGGER=日志级别,console”。 执行source /opt/client/bigdata_env。 重新执行客户端命令。 父主题: 使用HDFS
  • 问题背景与现象 用户在开发一个Kafka应用,作为一个生产者调用新接口(org.apache.kafka.clients.producer.*)往Kafka写数据,单条记录大小为1100055,超过了kafka配置文件server.properties中message.max.bytes=1000012。用户修改了Kafka服务配置中message.max.bytes大小为5242880,同时也将replica.fetch.max.bytes大小修改为5242880后,仍然无法成功。 报异常如下:
  • 解决办法 在初始化Kafka生产者实例时,设置此配置项“max.request.size ”的值。 例如,参考本例,可以将此配置项设置为“5252880”: // 协议类型:当前支持配置为SASL_PLAINTEXT或者PLAINTEXT props.put(securityProtocol, kafkaProc.getValues(securityProtocol, "SASL_PLAINTEXT")); // 服务名 props.put(saslKerberosServiceName, "kafka"); props.put("max.request.size", "5252880"); .......
  • 解决办法 Hue配置过期,重启Hue服务即可。 在MRS 2.0.1及之后版本,单Master节点的集群Hue服务需要手动修改配置。 登录Master节点。 执行hostname -i获取本机IP。 执行如下命令获取“HUE_FLOAT_IP”的地址: grep "HUE_FLOAT_IP" ${BIGDATA_HOME}/MRS_Current/1_*/etc*/ENV_VARS, 其中MRS以实际文件名为准。 比较本机IP和“HUE_FLOAT_IP”的值是否相同,若不相同,请修改“HUE_FLOAT_IP”的值为本机IP。 重启Hue服务。
  • 其他限制 基础型: 创建终端节点时,需要确保连接的终端节点服务已经存在,并位于同一区域。 一个终端节点仅支持连接一个终端节点服务。 一个终端节点服务仅支持对应一个后端资源实例。 一个终端节点支持最大并发连接数为3000。 一个终端节点服务可被多个终端节点连接。 单个终端节点可支持的最大带宽暂不承诺。 专业型(推荐使用): 购买终端节点时,需要确保连接的终端节点服务已经存在,并位于同一区域。 一个终端节点仅支持连接一个终端节点服务。 一个终端节点服务可被多个终端节点连接。 一个终端节点服务仅支持对应一个后端资源实例。 一个终端节点支持最大新建连接数:50000 一个终端节点支持最大并发连接数:1000000 单个终端节点可支持的最大带宽:10Gbps
  • 资源配额 VPC终端节点 资源的配额限制如表1所示。 表1 VPCEP资源配额 资源 默认限制 如何提升配额 一个用户在单个区域中创建终端节点服务的数量 20个 可以提交工单申请提升配额 一个用户在单个区域中购买终端节点的数量 50个 可以提交工单申请提升配额 支持的流量类型 基础型:即原终端节点实例类型,支持IPv4流量 专业型:IPv4流量、IPv6流量 不可修改 终端节点服务支持的后端资源类型 弹性负载均衡、弹性云服务器、裸金属服务器 终端节点服务支持的协议 TCP协议、UDP协议
  • 名词解释 基本概念、云服务简介、专有名词解释 弹性云服务器 ECS:是一种可随时自助获取、可弹性伸缩的云服务器,可帮助您打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率。 弹性公网IP EIP:提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟VIP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑。 虚拟私有云 VPC:是用户在云上申请的隔离的、私密的虚拟网络环境。用户可以自由配置VPC内的IP地址段、子网、安全组等子服务,也可以申请弹性带宽和弹性IP搭建业务系统。
    AI
  • 创建rf_admin_trust委托(可选) 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“ 统一身份认证 ”菜单。 图1 控制台管理界面 图2 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图3 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤 如果委托不存在时执行接下来的步骤创建委托 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务”,输入“ RFS ”,单击“完成”。 图4 创建委托 单击“立即授权”。 图5 委托授权 在搜索框中输入”Tenant Administrator”并勾选搜索结果,单击“下一步”。 图6 选择策略 选择“所有资源”,并单击“确定”完成配置。 图7 设置最小授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图8 委托列表
  • 资源和成本规划 该解决方案主要部署如下资源,不同产品的花费仅供参考,具体请参考华为云官网价格,实际以收费账单为准: 表1 资源和成本规划(按需计费) 华为云服务 配置示例 每月预估花费 弹性 云服务器ECS 按需计费:0.78元/小时 区域:华北-北京四 计费模式:按需计费 规格: 通用计算型 S6 | 4核 | 8GB 镜像:Ubuntu 22.04 server 64bit 系统盘:高IO | 100GB 购买量:1 560.88 元 弹性公网IP EIP 按需计费:0.80元/GB 区域:华北-北京四 计费模式:按需计费 线路:动态BGP 公网带宽:按流量计费 购买数量:1 0.80 元/GB 合计 - 560.88 元 + 流量费用 表2 资源和成本规划(包年包月) 华为云服务 配置示例 每月预估花费 弹性云服务器ECS 区域:华北-北京四 计费模式:包月 规格: 通用计算型 S6 | 4核 | 8GB 镜像:Ubuntu 22.04 server 64bit 系统盘:高IO | 100GB 购买量:1 339.30 元 弹性公网IP EIP 按需计费:0.80元/GB 区域:华北-北京四 计费模式:按需计费 线路:动态BGP 公网带宽:按流量计费 购买数量:1 0.80 元/GB 合计 - 339.30 元 + 流量费用
    AI
  • 应用场景 该解决方案基于MoneyPrinterTurbo,帮助您在华为云弹性云服务器 ECS上快速构建短视频生成器WebUI应用。MoneyPrinterTurbo是一个开源的短视频生成项目,只需提供一个视频主题或关键词 ,就可以全自动生成视频文案、视频素材、视频字幕、视频背景音乐,然后合成一个高清的短视频。支持 OpenAI、Moonshot、Azure、gpt4free、one-api、通义千问、Google Gemini、Ollama、 DeepSeek、 文心一言 等多种模型接入。适合内容创作者、营销人员、个人博主等人群使用,节省大量时间和精力,提高内容产出效率。
    AI
  • tomcat 插件类型 APP 功能说明 针对机器上运行的多个Tomcat进程,周期采集其运行数据。 插件运行后,将首先在“agent框架lib/tomcat/”路径下生成TomcatJmx_fat.jar,后续每次执行时,都会通过该jar包使用JMX接口采集tomcat进程相关信息。每次采集结束,每个tomcat进程分别生成一条消息,http_port可作为区分标志。 参数配置 用户在使用该插件进行采集之前,需要先手动修改tomcat安装目录下bin/catalina.sh,在文件中添加以下字段以支持JMX采集功能: CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=58880 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" 用户还需要为插件配置当前本机运行中的Tomcat对应的安装路径,可配置单个或多个,以“,”做分隔符。 tomcat_install_path #可以识别绝对路径以及环境变量。 如果采用环境变量来传递Tomcat安装路径,要求在~/.bashrc中添加export命令进行配置,如下图: 在配置生效后,可通过source ~/.bashrc或重启机器,再启动agent进行数据采集。 消息样例及含义说明 {      "plugin_id":"tomcat",     "metric":{ "node": " host-10-33-0-188", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": 1482161028000, #单位: | 类型:long long | 说明:UTC时间戳 "request_count":"0", #单位: | 类型:double | 说明:采集间隔内新增请求数 "request_errors_count":"0", #单位: | 类型:double | 说明:采集间隔内新增错误请求数 "thread_total":"47", #单位: | 类型:double | 说明:累计线程数 "http_port_id":"8080", #单位: | 类型:double | 说明:tomcat对外提供服务的端口号         } }
  • scriptcollet 插件类型 APP 功能说明 执行脚本命令或者读取指定文件内容,并将结果上报给HCW。 参数配置 配置样例: type:script # 采集方式,可选填script(采集脚本)或者path(采集文件)。 ex_path:/opt/monitor/disk.sh # 脚本执行路径或者采集文件路径。 _filter_key_id:/opt/monitor/disk.sh # 多实例插件的key,此参数是为了支持多实例插件上报使用,只需要保证多个实例中该值均不同,建议与ex_path值保持一致。 scriptcollect为多实例插件,即scriptcollect插件可以配置多组参数,但需要每组参数均不相同。 消息样例及含义说明 { "plugin_id":"scriptcollect", #单位: | 类型:string | 说明:插件名 "metric":[{ "node": " host-10-22-0-170", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "key_id":"/opt/monitor/disk.sh", #单位: | 类型:string | 说明:对应模板配置的key值 "collect_value":"80", #单位: | 类型:string | 说明:执行脚本命令或者读取指定文件内容上报的值 }] }
  • tcp 插件类型 APP 功能说明 检测本机或者指定主机端口是否可连通,并将结果返回HCW。 参数配置 配置样例: _filter_ip_id:xxx.0.0.1 # 检测IP,检测本机指定端口是否可达,配置值为127.0.0.1,检测指定主机端口是否可达,配置值为指定主机IP;当检测本机端口是否可达时,会检测127.0.0.1+端口和本机公网IP+端口是否可达,如果有一项可达则表明本机端口可达。 _filter_port_id:80 # 检测端口。 TCP为多实例插件,即TCP插件可以配置多组参数,但需要每组参数均不相同。 消息样例及含义说明 {    "plugin_id":"tcp", #单位: | 类型:string | 说明:插件名    "metric":[{ "node": " host-10-33-0-188", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "port_status":"1", #单位: | 类型:string | 说明:端口状态,端口可达值为1,不可达值为0 "ip_id":"xxx.0.0.1", #单位: | 类型:string | 说明:检测IP "port_id":"80", #单位: | 类型:string | 说明:检测端口 }] }
  • redis 插件类型 APP 功能说明 检测redis数据库信息,并将检测结果上报至HCW。 参数配置 配置样例: _filter_port_id:6379 # redis端口 password:123456,123457 # redis密码,可配置多个密码。redis插件会先从/opt/zabbix/bin/redis_stats.sh中获取redis密码,如果获取或校验失败,会去读取配置参数中的password中的密码列表。 redis为多实例插件,即redis插件可以配置多组参数,但需要每组参数均不相同。 消息样例及含义说明 { "plugin_id": "redis", #单位: | 类型:string | 说明:插件名 "metric": [ { "node": " host-10-22-0-170", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "port_id": "80", #单位: | 类型:string | 说明:redis端口 "port_status": "1", #单位: | 类型:string | 说明:端口状态,端口可达值为1,不可达值为0 "cpuload": "10", #单位: | 类型:string | 说明:redis进程CPU占用率 "used_memory": "2403776 ", #单位: | 类型:string | 说明:Redis分配器分配的内存总量 "mem_fragmentation_ratio": "5.60", #单位: | 类型:string | 说明:used_memory_rss和used_memory之间的比率 "used_memory_peak": "4352360", #单位: | 类型:string | 说明:Redis内存消耗峰值 "keyspace_hits": "47343", #单位: | 类型:string | 说明:命中key的次数 "keyspace_misses": "1437", #单位: | 类型:string | 说明:未命中key的次数 "connected_clients": "1", #单位: | 类型:string | 说明:连接的客户端数量 "evicted_keys": "0", #单位: | 类型:string | 说明:运行以来删除过的key的数量 "blocked_clients": "0", #单位: | 类型:string | 说明:正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量 "rejected_connections": "0", #单位: | 类型:string | 说明:因为最大客户端数量限制而被拒绝的连接请求数量 "used_memory_rss": "13471744", #单位: | 类型:string | 说明:Redis分配的内存总量(包括内存碎片) "loading": "0", #单位: | 类型:string | 说明:是否正在载入持久化文件,0为否,1为是 "rdb_bgsave_in_progress": "0", #单位: | 类型:string | 说明:后台进行中的 save 操作的数量 "rdb_last_bgsave_status": "1", #单位: | 类型:string | 说明:最后一次创建RDB文件的结果,0为失败,1为成功 "rdb_last_bgsave_time_sec": "1", #单位: | 类型:string | 说明:最后一次创建RDB文件耗费的秒数 "instantaneous_ops_per_sec": "0", #单位: | 类型:string | 说明:服务器每秒钟执行的命令数量 "expired_keys": "1281", #单位: | 类型:string | 说明:过期而被自动删除的数据库键数量 "latest_fork_usec": "0", #单位: | 类型:string | 说明:最近一次fork()操作耗费的时间 "client_biggest_input_buf": "0", #单位: | 类型:string | 说明:当前连接的客户端中,最大的输入缓存 "client_longest_output_list": "0", #单位: | 类型:string | 说明:当前的客户端连接中,最长的输出列表 "keyspace_hits_ratio": "80" #单位: | 类型:string | 说明:keyspace_hits与keyspace_hits + keyspace_misses的比率 } ] }
  • file_regexp 插件类型 APP 功能说明 逐行读取指定路径文件,将内容按分界符分解为指标名称和指标值,并按照过滤条件过滤,将过滤后的指标数据上报给HCW。 参数配置 配置样例: path:/tmp/sds_zabbix.result # 采集文件路径。 delimiter # 分隔符。 _filter_key_word:.*_cassandra # 指标值关键字,支持正则,为空则直接上报所有指标信息,非空则只上报匹配关键字的指标数据。 _filter_value_word:ok* # 指标值匹配关键字,支持正则,为空则不进行二次匹配,直接上报指标数据,非空则匹配成功为1,匹配失败为0。 file_regexp为多实例插件,即file_regexp插件可以配置多组参数,但需要每组参数均不相同。 消息样例及含义说明 { "plugin_id":"file_regexp", #单位: | 类型:string | 说明:插件名 "metric":[{ "node": " host-10-22-0-170", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "name_id":"zj23_cassandra", #单位: | 类型:string | 说明:分割后的指标名称(标签数据) "value_id":"ok", #单位: | 类型:string | 说明:分割后的指标值(标签数据) "value":"1", #单位: | 类型:string | 说明:指标上报值 }] }
  • file_check 插件类型 APP 功能说明 查看文件是否存在以及查看文件的大小,以Byte为单位,将结果上报到HCW。 参数配置 配置样例: path:/tmp/error_*.log #路径为绝对路径,支持通配符。 消息样例及含义说明 { "plugin_id":"file_check", #单位: | 类型:string | 说明:插件名 "metric":[{ "node": " host-10-22-0-170", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "exists":"1", #单位: | 类型:string | 说明:文件是否存在,1表示存在,0表示不存在 "size":"80", #单位:Byte | 类型:string | 说明:表示文件大小 }] }
  • logalarm 插件类型 ALARM 功能说明 监控指定日志文件,配置日志匹配关键字,并按照配置参数的要求,生成告警并上报到HCW。 参数配置 collect_file_path #定义日志采集配置,按照以下字段,使用json格式数据单行填入。 字段ID 字段名 必填 类型 范围 备注 id 告警定义ID 是 String 1~128 告警ID,由数字、字母、下划线组成。 alarm_name 告警名称 是 String 1~128 支持配置变量{{$log_info}},上报告警时会替换成匹配到的最后一条ERROR日志;支持配置变量{{$all_matching_log}},上报告警时会替换成匹配到的所有ERROR日志,当alarm_name配置了变量{{$all_matching_log}}时,如果产生告警且后续周期又匹配到了告警,新匹配到的告警会在原告警ID的基础上,产生一个新的告警,并上报到监控系统,告警清除时会清除当前告警和后续产生的告警;当alarm_name配置为空时,会读取文件中的所有内容,逐行检测并上报告警。 alarm_level 告警级别 是 String 枚举 致命critical、严重major、一般minor、提示notice。 不区分大小写。 key_word 日志匹配关键字 是 String NA 日志匹配关键字,支持正则表达式。 match_file 日志文件绝对路径 是 String NA 支持变量、通配符,配置多个地址时需要使用逗号分隔。 matches 最大匹配次数 是 long NA - number_of_match_period 匹配周期数 是 long NA 与matches和key_word组合使用。 number_of_nodata_period 无数据上报的周期数 否 long NA 单独使用,与matches和key_word无关联。 description 告警详情 是 String NA 进一步丰富告警信息。 参数配置样例 [{"id":"alert20240627","alarm_name":"test20240627","alarm_level":"major","key_word":"usr/bin/sudo","match_file":"/var/log/messages","matches":2,"number_of_match_period":"30","number_of_nodata_period":"10","description":"test20240627"}] # 30个周期内匹配2次以上,则产生告警;30个周期内匹配2次或者2次以下,则清除告警。 # 10个周期内有数据则产生告警,10个周期内无数据上报则清除告警。
  • verify_os 插件类型 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 } }
  • cpu 插件类型 OS 功能说明 统计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数量 } }
  • snmp 插件类型 OS 功能说明 周期采集机器上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被动建立连接次数 } }
  • mem 插件类型 OS 功能说明 采集全系统有关的内存信息。 原始数据来源:/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数 }}
  • osinfo 插件类型 OS 功能说明 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": "2059087", #单位: | 类型:int | 说明:执行ulimit -n结果 "max_procs": "1024", #单位: | 类型:int | 说明:执行ulimit -u结果 "open_files": "2059087", #单位: | 类型:int | 说明:本机当前打开的句柄数 } }
  • diskio 插件类型 OS 功能说明 统计磁盘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的写操作数目 } }
  • gpu 插件类型 OS 功能说明 采集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显存使用率     } }
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全