diff --git a/home/docs/advanced/extend-telnet.md b/home/docs/advanced/extend-telnet.md new file mode 100644 index 00000000000..9aa8eac92f1 --- /dev/null +++ b/home/docs/advanced/extend-telnet.md @@ -0,0 +1,298 @@ +--- +id: extend-telnet +title: Telnet Protocol Custom Monitoring +sidebar_label: Telnet Protocol Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use Telnet to customize Metric monitoring. +> Telnet protocol custom monitoring allows us to easily monitor and collect the Linux Metrics we want by writing sh command script. + +### Telnet protocol collection process +【**System directly connected to Linux**】->【**Run shell command script statement**】->【**parse response data: oneRow, multiRow**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of Telnet protocol. We need to configure Telnet request parameters, configure which Metrics to obtain, and configure query script statements. + +### Data parsing method +By configuring the metrics `field`, `aliasFields` the `Telnet` protocol of the monitoring template YML to capture the data specified by the peer and parse the mapping. + + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +![](/img/docs/advanced/extend-point-1.png) + +------- +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `zookeeper` which use the telnet protocol to collect data. + + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: mid +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: zookeeper +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: Zookeeper服务 + en-US: Zookeeper Server +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +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 + # 是否是必输项 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 + # 是否是必输项 true-必填 false-可选 + required: true + # default + # 默认值 + defaultValue: 2181 + # param field input placeholder + # 参数输入框提示信息 + placeholder: '请输入端口' + # field-param field key + # field-字段名称标识符 + - field: timeout + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 查询超时时间(ms) + en-US: Query Timeout(ms) + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: false + # hide-is hide this field and put it in advanced layout + # 隐藏是隐藏这个字段,并把它放在高级布局 + hide: true + # default + # 默认值 + defaultValue: 6000 +# collect metrics config list +# 采集指标配置列表 +metrics: + # metrics - conf + # 第一个监控指标 conf + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: conf + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics 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'), label-if is metrics label + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: clientPort + type: 0 + i18n: + zh-CN: 客户端端口 + en-US: Client Port + - field: dataDir + type: 1 + i18n: + zh-CN: 数据目录 + en-US: Data Directory + - field: dataDirSize + type: 0 + unit: kb + i18n: + zh-CN: 数据目录大小 + en-US: Data Directory Size + - field: dataLogDir + type: 1 + i18n: + zh-CN: 日志目录 + en-US: Data Log Directory + - field: dataLogSize + type: 0 + unit: kb + i18n: + zh-CN: 日志目录大小 + en-US: Data Log Size + - field: tickTime + type: 0 + unit: ms + i18n: + zh-CN: 心跳间隔时间 + en-US: Tick Time + - field: maxClientCnxns + type: 1 + i18n: + zh-CN: 最大客户端连接数 + en-US: Max Client Connections + - field: minSessionTimeout + type: 0 + unit: ms + i18n: + zh-CN: 最小会话超时 + en-US: Min Session Timeout + - field: maxSessionTimeout + type: 0 + unit: ms + i18n: + zh-CN: 最大会话超时 + en-US: Max Session Timeout + - field: serverId + type: 0 + i18n: + zh-CN: 服务器ID + en-US: Server ID + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: telnet + # the config content when protocol is telnet + # 当protocol为telnet协议时具体的采集配置 + telnet: + # host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # port + # 端口 + port: ^_^port^_^ + # timeout + # 超时时间 + timeout: ^_^timeout^_^ + # telnet instruction + # telnet指令 + cmd: conf + + - name: stats + priority: 1 + fields: + - field: zk_version + type: 1 + i18n: + zh-CN: ZooKeeper版本 + en-US: ZooKeeper Version + - field: zk_server_state + type: 1 + i18n: + zh-CN: 服务器状态 + en-US: Server State + - field: zk_num_alive_connections + type: 0 + unit: 个 + i18n: + zh-CN: 存活连接数 + en-US: Number of Alive Connections + - field: zk_avg_latency + type: 0 + unit: ms + i18n: + zh-CN: 平均延迟 + en-US: Average Latency + - field: zk_outstanding_requests + type: 0 + unit: 个 + i18n: + zh-CN: 未完成请求数 + en-US: Outstanding Requests + - field: zk_znode_count + type: 0 + unit: 个 + i18n: + zh-CN: ZNode数量 + en-US: ZNode Count + - field: zk_packets_sent + type: 0 + unit: 个 + i18n: + zh-CN: 发送数据包数 + en-US: Packets Sent + - field: zk_packets_received + type: 0 + unit: 个 + i18n: + zh-CN: 接收数据包数 + en-US: Packets Received + - field: zk_watch_count + type: 0 + unit: 个 + i18n: + zh-CN: Watch数量 + en-US: Watch Count + - field: zk_max_file_descriptor_count + type: 0 + unit: 个 + i18n: + zh-CN: 最大文件描述符数量 + en-US: Max File Descriptor Count + - field: zk_approximate_data_size + type: 0 + unit: kb + i18n: + zh-CN: 大致数据大小 + en-US: Approximate Data Size + - field: zk_open_file_descriptor_count + type: 0 + unit: 个 + i18n: + zh-CN: 打开的文件描述符数量 + en-US: Open File Descriptor Count + - field: zk_max_latency + type: 0 + unit: ms + i18n: + zh-CN: 最大延迟 + en-US: Max Latency + - field: zk_ephemerals_count + type: 0 + unit: 个 + i18n: + zh-CN: 临时节点数量 + en-US: Ephemerals Count + - field: zk_min_latency + type: 0 + unit: ms + i18n: + zh-CN: 最小延迟 + en-US: Min Latency + protocol: telnet + telnet: + host: ^_^host^_^ + port: ^_^port^_^ + timeout: ^_^timeout^_^ + cmd: mntr + + +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-telnet.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-telnet.md new file mode 100644 index 00000000000..14643c29c4e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-telnet.md @@ -0,0 +1,296 @@ +--- +id: extend-telnet +title: Telnet协议自定义监控 +sidebar_label: Telnet协议自定义监控 +--- +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用Telnet协议自定义指标监控。 +> 使用 Telnet 协议自定义监控可以让我们通过编写 Telnet 命令脚本来监控和采集我们想要监控的 Linux 指标 + +### Telnet协议采集流程 +【**系统直连Linux**】->【**运行TELNET命令脚本语句**】->【**响应数据解析**】->【**指标数据提取**】 + +由流程可见,我们自定义一个Telnet协议的监控类型,需要配置Telnet请求参数,配置获取哪些指标,配置查询脚本语句。 + +### 数据解析方式 +通过配置监控模版YML的指标field, aliasFields, telnet 协议下的获取数据映射。 + + +### 自定义步骤 + +**HertzBeat页面** -> **监控模版菜单** -> **新增监控类型** -> **配置自定义监控模版YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![](/img/docs/advanced/extend-point-1.png) + +------- +下面详细介绍下文件的配置用法,请注意看使用注释。 + +### 监控模版YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为zookeeper的自定义监控类型,其使用telnet协议采集指标数据。 + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: mid +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: zookeeper +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: Zookeeper服务 + en-US: Zookeeper Server +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +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 + # 是否是必输项 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 + # 是否是必输项 true-必填 false-可选 + required: true + # default + # 默认值 + defaultValue: 2181 + # param field input placeholder + # 参数输入框提示信息 + placeholder: '请输入端口' + # field-param field key + # field-字段名称标识符 + - field: timeout + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 查询超时时间(ms) + en-US: Query Timeout(ms) + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: false + # hide-is hide this field and put it in advanced layout + # 隐藏是隐藏这个字段,并把它放在高级布局 + hide: true + # default + # 默认值 + defaultValue: 6000 +# collect metrics config list +# 采集指标配置列表 +metrics: + # metrics - conf + # 第一个监控指标 conf + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: conf + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics 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'), label-if is metrics label + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: clientPort + type: 0 + i18n: + zh-CN: 客户端端口 + en-US: Client Port + - field: dataDir + type: 1 + i18n: + zh-CN: 数据目录 + en-US: Data Directory + - field: dataDirSize + type: 0 + unit: kb + i18n: + zh-CN: 数据目录大小 + en-US: Data Directory Size + - field: dataLogDir + type: 1 + i18n: + zh-CN: 日志目录 + en-US: Data Log Directory + - field: dataLogSize + type: 0 + unit: kb + i18n: + zh-CN: 日志目录大小 + en-US: Data Log Size + - field: tickTime + type: 0 + unit: ms + i18n: + zh-CN: 心跳间隔时间 + en-US: Tick Time + - field: maxClientCnxns + type: 1 + i18n: + zh-CN: 最大客户端连接数 + en-US: Max Client Connections + - field: minSessionTimeout + type: 0 + unit: ms + i18n: + zh-CN: 最小会话超时 + en-US: Min Session Timeout + - field: maxSessionTimeout + type: 0 + unit: ms + i18n: + zh-CN: 最大会话超时 + en-US: Max Session Timeout + - field: serverId + type: 0 + i18n: + zh-CN: 服务器ID + en-US: Server ID + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: telnet + # the config content when protocol is telnet + # 当protocol为telnet协议时具体的采集配置 + telnet: + # host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # port + # 端口 + port: ^_^port^_^ + # timeout + # 超时时间 + timeout: ^_^timeout^_^ + # telnet instruction + # telnet指令 + cmd: conf + + - name: stats + priority: 1 + fields: + - field: zk_version + type: 1 + i18n: + zh-CN: ZooKeeper版本 + en-US: ZooKeeper Version + - field: zk_server_state + type: 1 + i18n: + zh-CN: 服务器状态 + en-US: Server State + - field: zk_num_alive_connections + type: 0 + unit: 个 + i18n: + zh-CN: 存活连接数 + en-US: Number of Alive Connections + - field: zk_avg_latency + type: 0 + unit: ms + i18n: + zh-CN: 平均延迟 + en-US: Average Latency + - field: zk_outstanding_requests + type: 0 + unit: 个 + i18n: + zh-CN: 未完成请求数 + en-US: Outstanding Requests + - field: zk_znode_count + type: 0 + unit: 个 + i18n: + zh-CN: ZNode数量 + en-US: ZNode Count + - field: zk_packets_sent + type: 0 + unit: 个 + i18n: + zh-CN: 发送数据包数 + en-US: Packets Sent + - field: zk_packets_received + type: 0 + unit: 个 + i18n: + zh-CN: 接收数据包数 + en-US: Packets Received + - field: zk_watch_count + type: 0 + unit: 个 + i18n: + zh-CN: Watch数量 + en-US: Watch Count + - field: zk_max_file_descriptor_count + type: 0 + unit: 个 + i18n: + zh-CN: 最大文件描述符数量 + en-US: Max File Descriptor Count + - field: zk_approximate_data_size + type: 0 + unit: kb + i18n: + zh-CN: 大致数据大小 + en-US: Approximate Data Size + - field: zk_open_file_descriptor_count + type: 0 + unit: 个 + i18n: + zh-CN: 打开的文件描述符数量 + en-US: Open File Descriptor Count + - field: zk_max_latency + type: 0 + unit: ms + i18n: + zh-CN: 最大延迟 + en-US: Max Latency + - field: zk_ephemerals_count + type: 0 + unit: 个 + i18n: + zh-CN: 临时节点数量 + en-US: Ephemerals Count + - field: zk_min_latency + type: 0 + unit: ms + i18n: + zh-CN: 最小延迟 + en-US: Min Latency + protocol: telnet + telnet: + host: ^_^host^_^ + port: ^_^port^_^ + timeout: ^_^timeout^_^ + cmd: mntr + + +``` diff --git a/home/sidebars.json b/home/sidebars.json index cdb3386c0b4..f79a6d5c439 100755 --- a/home/sidebars.json +++ b/home/sidebars.json @@ -58,6 +58,13 @@ "advanced/extend-ssh" ] }, + { + "type": "category", + "label": "telnet", + "items": [ + "advanced/extend-telnet" + ] + }, { "type": "category", "label": "jmx",