夜莺-Nightingale
夜莺V7
项目介绍 功能概览
部署升级 部署升级
数据接入 数据接入
告警管理 告警管理
数据查看 数据查看
功能介绍 功能介绍
API FAQ
夜莺V6
项目介绍 架构介绍
快速开始 快速开始
黄埔营
安装部署 安装部署
升级
采集器 采集器
使用手册 使用手册
API API
数据库表结构 数据库表结构
FAQ FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵 第1章:天降奇兵
第2章:探索PromQL 第2章:探索PromQL
第3章:Prometheus告警处理 第3章:Prometheus告警处理
第4章:Exporter详解 第4章:Exporter详解
第5章:数据与可视化 第5章:数据与可视化
第6章:集群与高可用 第6章:集群与高可用
第7章:Prometheus服务发现 第7章:Prometheus服务发现
第8章:监控Kubernetes 第8章:监控Kubernetes
第9章:Prometheus Operator 第9章:Prometheus Operator
参考资料

netstat_filter采集插件

netstat filter采集插件

该插件两个核心作用,监控物理机上指定连接状态,监控K8s环境下Pod内指定连接(或所有连接)的状态和sendq/recvq).

采集原理

  1. 物理机环境下, 通过遍历/proc/net/tcp (类似netstat方式)过滤和筛选指定连接。
  2. 在K8s环境下,(推荐)用Daemonset方式部署,插件会通过nsenter 进入当前Node上的Pod的netns内执行ss命令,获取连接的(recvq/sendq)信息。

物理机连接监控

机器上连接很多,我们要做连接状态监控,就要想办法告诉 Categraf 要监控哪些连接,通过xxx_ipxxx_port配置,可以做连接过滤筛选:

# # collect interval
# interval = 15
[[instances]]
# 以下四选一,分别表示按照本地监听的IP 本地监听的端口,远端的IP 远端的端口过滤
# laddr_ip = ""
# laddr_port = 80
# raddr_ip = ""
# raddr_port = 0

# 企业版的categraf v0.4.9支持
# 如果kube_api_enabled=true 则只过滤Pod内的状态,且只支持laddr_port过滤,laddr_port设置为0 表示查看所有连接状态。
# K8s环境下需要请求apiserver ,这里须设置为true
# 不设置或设置为false则只获取物理机的连接状态
# kube_api_enabled=true
# 只探测监听端口的recvq和sendq, queue_ratio=recvq/sendq
# 大于等于threshold数据会上报
# queue_ratio_threshold=0.8
# 请求apiserver的client-side限制
# kube_api_request_qps=20
# kube_api_request_burst=50

K8s环境下的指标

# 表示监听地址上当前有多少个连接(按照监听IP+端口聚合的) 该指标一直有。
netstat_filter_pod_tcp_connections 

# 超过 queue_ratio_threshold时,会产生以下指标 
# 表示当前连接queue的最大值, 即监听状态连接的sendq
# 按照localfd sourceIP sourcePort remoteIP  remotePort聚合, 本地端口可能对应多个进程,比如nginx,所以用fd区分)
netstat_filter_pod_tcp_queue_max 即监听状态连接的recvq
表示连接queue的当前值(按照localfd sourceIP sourcePort remoteIP  remotePort聚合, 本地端口可能对应多个进程,比如nginx,所以用fd区分)
netstat_filter_pod_tcp_queue_current
快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat