# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring
# 监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控 cn-云原生cloud native network-网络监控
category: os
# The monitoring type eg: linux windows tomcat mysql aws...
# 监控类型 eg: linux windows tomcat mysql aws...
app: opensuse
# The monitoring i18n name
# 监控类型国际化名称
name:
zh-CN: OpenSUSE
en-US: OpenSUSE
# The description and help of this monitoring type
# 监控类型的帮助描述信息
help:
zh-CN: Hertzbeat 对 OpenSUSE 的通用指标进行测量监控。
您可以点击 “新建 OpenSUSE” 并进行配置,或者选择“更多操作”,导入已有配置。
en-US: Hertzbeat monitors OpenSUSE through general performance metric. You could click the "New OpenSUSE" button and proceed with the configuration or import an existing setup through the "More Actions" menu.
zh-TW: Hertzbeat對OpenSUSE的通用名額進行量測監控。
您可以點擊“新建OpenSUSE”並進行配寘,或者選擇“更多操作”,導入已有配寘。
helpLink:
zh-CN: https://hertzbeat.com/zh-cn/docs/help/opensuse
en-US: https://hertzbeat.com/docs/help/opensuse
# 监控所需输入参数定义(根据定义渲染页面UI)
# Input params define for monitoring(render web ui by the definition)
params:
# field-param field key
# field-变量字段标识符
- field: host
# name-param field display i18n name
# name-参数字段显示名称
name:
zh-CN: 主机Host
en-US: Host
# type-param field type(most mapping the html input type)
# type-字段类型,样式(大部分映射input标签type属性)
type: host
# required-true or false
# required-是否是必输项 true-必填 false-可选
required: true
# field-param field key
# field-变量字段标识符
- field: port
# name-param field display i18n name
# name-参数字段显示名称
name:
zh-CN: 端口
en-US: Port
# type-param field type(most mapping the html input type)
# type-字段类型,样式(大部分映射input标签type属性)
type: number
# when type is number, range is required
# 当type为number时,用range表示范围
range: '[0,65535]'
# required-true or false
# required-是否是必输项 true-必填 false-可选
required: true
# default value
# 默认值
defaultValue: 22
# field-param field key
# field-变量字段标识符
- field: timeout
# name-param field display i18n name
# name-参数字段显示名称
name:
zh-CN: 超时时间(ms)
en-US: Timeout(ms)
# type-param field type(most mapping the html input type)
# type-字段类型,样式(大部分映射input标签type属性)
type: number
# when type is number, range is required
# 当type为number时,用range表示范围
range: '[400,200000]'
# required-true or false
# required-是否是必输项 true-必填 false-可选
required: false
# default value
# 默认值
defaultValue: 6000
# field-param field key
# field-变量字段标识符
- field: reuseConnection
# name-param field display i18n name
# name-参数字段显示名称
name:
zh-CN: 复用连接
en-US: Reuse Connection
# type-param field type(most mapping the html input type)
# type-字段类型,样式(大部分映射input标签type属性)
type: boolean
# required-true or false
# required-是否是必输项 true-必填 false-可选
required: true
defaultValue: true
# field-param field key
# field-变量字段标识符
- field: username
# name-param field display i18n name
# name-参数字段显示名称
name:
zh-CN: 用户名
en-US: Username
# type-param field type(most mapping the html input type)
# type-字段类型,样式(大部分映射input标签type属性)
type: text
# when type is text, use limit to limit string length
# 当type为text时,用limit表示字符串限制大小
limit: 20
# required-true or false
# required-是否是必输项 true-必填 false-可选
required: true
# field-param field key
# field-变量字段标识符
- field: password
# name-param field display i18n name
# name-参数字段显示名称
name:
zh-CN: 密码
en-US: Password
# type-param field type(most mapping the html input tag)
# type-字段类型,样式(大部分映射input标签type属性)
type: password
# required-true or false
# required-是否是必输项 true-必填 false-可选
required: false
# field-param field key
# field-变量字段标识符
- field: privateKey
# name-param field display i18n name
# name-参数字段显示名称
name:
zh-CN: 私钥
en-US: PrivateKey
# type-param field type(most mapping the html input type)
# type-字段类型,样式(大部分映射input标签type属性)
type: textarea
placeholder: -----BEGIN RSA PRIVATE KEY-----
# required-true or false
# required-是否是必输项 true-必填 false-可选
required: false
# hide param-true or false
# 是否隐藏字段 true or false
hide: true
# collect metrics config list
# 采集指标组配置列表
metrics:
# metrics - basic, inner monitoring metrics (responseTime - response time)
# 监控指标组 - basic, 内置监控指标有 (responseTime - 响应时间)
- name: basic
i18n:
zh-CN: 系统基本信息
en-US: Basic Info
# 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集
# metrics group scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics group is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
# 指标组调度优先级(0->127)->(优先级高->低) 优先级低的指标组会等优先级高的指标组采集完成后才会被调度, 相同优先级的指标组会并行调度采集
# 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度
priority: 0
# collect metrics content
# 具体监控指标列表
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), instance-if is metrics group unique identifier
# field-指标名称, type-指标类型(0-number数字,1-string字符串), unit-指标单位('%','ms','MB'), instance-是否是指标集合唯一标识符字段
- field: hostname
type: 1
instance: true
i18n:
zh-CN: 主机名称
en-US: Host Name
- field: version
type: 1
i18n:
zh-CN: 操作系统版本
en-US: System Version
- field: uptime
type: 1
i18n:
zh-CN: 启动时间
en-US: Uptime
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: ssh
# the config content when protocol is ssh
ssh:
# ssh host: ipv4 ipv6 domain
host: ^_^host^_^
# ssh port
port: ^_^port^_^
# ssh username
username: ^_^username^_^
# ssh password
password: ^_^password^_^
# ssh private key
privateKey: ^_^privateKey^_^
timeout: ^_^timeout^_^
reuseConnection: ^_^reuseConnection^_^
# ssh run collect script
script: (uname -r ; hostname ; uptime | awk -F "," '{print $1}' | sed "s/ //g") | sed ":a;N;s/\n/^/g;ta" | awk -F '^' 'BEGIN{print "version hostname uptime"} {print $1, $2, $3}'
# ssh response data parse type: oneRow, multiRow
parseType: multiRow
- name: cpu
i18n:
zh-CN: CPU 信息
en-US: CPU Info
priority: 1
fields:
- field: info
type: 1
i18n:
zh-CN: 型号
en-US: Info
- field: cores
type: 0
i18n:
zh-CN: 核数
en-US: Cores
- field: interrupt
type: 0
i18n:
zh-CN: 中断数
en-US: Interrupt
- field: load
type: 1
i18n:
zh-CN: 负载
en-US: Load
- field: context_switch
type: 0
i18n:
zh-CN: 上下文切换
en-US: Context Switch
- field: usage
type: 0
unit: '%'
i18n:
zh-CN: 使用率
en-US: Usage
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
# (可选)监控指标别名, 做为中间字段与采集数据字段和指标字段映射转换
aliasFields:
- info
- cores
- load
- interrupt
- context_switch
- idle
# mapping and conversion expressions, use these and aliasField above to calculate metrics value
# (可选)指标映射转换计算表达式,与上面的别名一起作用,计算出最终需要的指标值
# eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime
calculates:
- info=info
- cores=cores
- load=load
- interrupt=interrupt
- context_switch=context_switch
- usage=100-idle
protocol: ssh
ssh:
host: ^_^host^_^
port: ^_^port^_^
username: ^_^username^_^
password: ^_^password^_^
privateKey: ^_^privateKey^_^
timeout: ^_^timeout^_^
reuseConnection: ^_^reuseConnection^_^
script: "LANG=C lscpu | awk -F: '$1==\"Model name\" {print $2}';awk '/processor/{core++} END{print core}' /proc/cpuinfo;uptime | sed 's/,/ /g' | awk '{for(i=NF-2;i<=NF;i++)print $i }' | xargs;vmstat 1 1 | awk 'NR==3{print $11}';vmstat 1 1 | awk 'NR==3{print $12}';vmstat 1 2 | awk 'NR==4{print $15}'"
parseType: oneRow
- name: memory
i18n:
zh-CN: 内存信息
en-US: Memory Info
priority: 2
fields:
- field: total
type: 0
unit: Mb
i18n:
zh-CN: 总内存容量
en-US: Total Memory
- field: used
type: 0
unit: Mb
i18n:
zh-CN: 用户程序内存量
en-US: User Program Memory
- field: free
type: 0
unit: Mb
i18n:
zh-CN: 空闲内存容量
en-US: Free Memory
- field: buff_cache
type: 0
unit: Mb
i18n:
zh-CN: 缓存占用内存
en-US: Buff Cache Memory
- field: available
type: 0
unit: Mb
i18n:
zh-CN: 剩余可用内存
en-US: Available Memory
- field: usage
type: 0
unit: '%'
i18n:
zh-CN: 内存使用率
en-US: Memory Usage
aliasFields:
- total
- used
- free
- buff_cache
- available
calculates:
- total=total
- used=used
- free=free
- buff_cache=buff_cache
- available=available
- usage=(used / total) * 100
protocol: ssh
ssh:
host: ^_^host^_^
port: ^_^port^_^
username: ^_^username^_^
password: ^_^password^_^
privateKey: ^_^privateKey^_^
timeout: ^_^timeout^_^
reuseConnection: ^_^reuseConnection^_^
script: free -m | awk 'BEGIN{print "total used free buff_cache available"} NR==2{print $2,$3,$4,$6,$7}'
parseType: multiRow
- name: disk
i18n:
zh-CN: 磁盘信息
en-US: Disk Info
priority: 3
fields:
- field: disk_num
type: 0
i18n:
zh-CN: 磁盘总数
en-US: Disk Num
- field: partition_num
type: 0
i18n:
zh-CN: 分区总数
en-US: Partition Num
- field: block_write
type: 0
i18n:
zh-CN: 写磁盘块数
en-US: Block Write
- field: block_read
type: 0
i18n:
zh-CN: 读磁盘块数
en-US: Block Read
- field: write_rate
type: 0
unit: iops
i18n:
zh-CN: 磁盘写速率
en-US: Write Rate
protocol: ssh
ssh:
host: ^_^host^_^
port: ^_^port^_^
username: ^_^username^_^
password: ^_^password^_^
privateKey: ^_^privateKey^_^
timeout: ^_^timeout^_^
reuseConnection: ^_^reuseConnection^_^
script: vmstat -D | awk 'NR==1{print $1}';vmstat -D | awk 'NR==2{print $1}';vmstat 1 1 | awk 'NR==3{print $10}';vmstat 1 1 | awk 'NR==3{print $9}';vmstat 1 1 | awk 'NR==3{print $16}'
parseType: oneRow
- name: interface
i18n:
zh-CN: 网卡信息
en-US: Interface Info
priority: 4
fields:
- field: interface_name
type: 1
instance: true
i18n:
zh-CN: 网卡名称
en-US: Interface Name
- field: receive_bytes
type: 0
unit: byte
i18n:
zh-CN: 入站数据流量
en-US: Receive Bytes
- field: transmit_bytes
type: 0
unit: byte
i18n:
zh-CN: 出站数据流量
en-US: Transmit Bytes
protocol: ssh
ssh:
host: ^_^host^_^
port: ^_^port^_^
username: ^_^username^_^
password: ^_^password^_^
privateKey: ^_^privateKey^_^
timeout: ^_^timeout^_^
reuseConnection: ^_^reuseConnection^_^
script: cat /proc/net/dev | tail -n +3 | awk 'BEGIN{ print "interface_name receive_bytes transmit_bytes"} {print $1,$2,$10}'
parseType: multiRow
- name: disk_free
i18n:
zh-CN: 文件系统
en-US: Disk Free
priority: 5
fields:
- field: filesystem
type: 1
i18n:
zh-CN: 文件系统
en-US: Filesystem
- field: used
type: 0
unit: Mb
i18n:
zh-CN: 已使用量
en-US: Used
- field: available
type: 0
unit: Mb
i18n:
zh-CN: 可用量
en-US: Available
- field: usage
type: 0
unit: '%'
i18n:
zh-CN: 使用率
en-US: Usage
- field: mounted
type: 1
instance: true
i18n:
zh-CN: 挂载点
en-US: Mounted
protocol: ssh
ssh:
host: ^_^host^_^
port: ^_^port^_^
username: ^_^username^_^
password: ^_^password^_^
privateKey: ^_^privateKey^_^
timeout: ^_^timeout^_^
reuseConnection: ^_^reuseConnection^_^
script: df -m | tail -n +2 | awk 'BEGIN{ print "filesystem used available usage mounted"} {print $1,$3,$4,$5,$6}'
parseType: multiRow
- name: top_cpu_process
i18n:
zh-CN: Top10 CPU 进程
en-US: Top10 CPU Process
priority: 6
fields:
- field: pid
type: 1
instance: true
i18n:
zh-CN: 进程ID
en-US: PID
- field: cpu_usage
type: 0
unit: '%'
i18n:
zh-CN: CPU占用率
en-US: CPU Usage
- field: mem_usage
type: 0
unit: '%'
i18n:
zh-CN: 内存占用率
en-US: Memory Usage
- field: command
type: 1
i18n:
zh-CN: 执行命令
en-US: Command
protocol: ssh
ssh:
host: ^_^host^_^
port: ^_^port^_^
username: ^_^username^_^
password: ^_^password^_^
privateKey: ^_^privateKey^_^
timeout: ^_^timeout^_^
reuseConnection: ^_^reuseConnection^_^
script: ps -aux | sort -k3nr | awk 'BEGIN{ print "pid cpu_usage mem_usage command" } {print $2, $3, $4, $11}'| head -n 10
parseType: multiRow
- name: top_mem_process
i18n:
zh-CN: Top10 内存进程
en-US: Top10 Memory Process
priority: 7
fields:
- field: pid
type: 1
instance: true
i18n:
zh-CN: 进程ID
en-US: PID
- field: mem_usage
type: 0
unit: '%'
i18n:
zh-CN: 内存占用率
en-US: Memory Usage
- field: cpu_usage
type: 0
unit: '%'
i18n:
zh-CN: CPU占用率
en-US: CPU Usage
- field: command
type: 1
i18n:
zh-CN: 执行命令
en-US: Command
protocol: ssh
ssh:
host: ^_^host^_^
port: ^_^port^_^
username: ^_^username^_^
password: ^_^password^_^
privateKey: ^_^privateKey^_^
timeout: ^_^timeout^_^
reuseConnection: ^_^reuseConnection^_^
script: ps -aux | sort -k4nr | awk 'BEGIN{ print "pid cpu_usage mem_usage command" } {print $2, $3, $4, $11}'| head -n 10
parseType: multiRow