夜莺-Nightingale
夜莺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