Calico 网络监控
通过监控面板可查看 IPAM、Felix 及 BGP 路由监控。
监控面板
通过监控面板可以查看各项监控指标。
操作步骤
-
在左侧导航栏中,单击 运维中心 > 监控 > 监控面板。
-
单击页面顶端的 集群,切换至需要监控的集群。
-
单击页面右上角 切换。
-
可通过下述两种方式进入监控面板。
-
方式一:单击 calico 卡片展开监控目录,单击 Calico IPAM and BGP Route 进入 IPAM 和 BGP 路由监控面板;单击 Calico/Felix Dashboard 进入 Felix 监控面板,可按需将监控面板设置为主面板。
-
方式二:在搜索框中输入并搜索关键字(例如:calico、felix 等),单击 Calico IPAM and BGP Route 进入 IPAM 和 BGP 路由监控面板;单击 Calico/Felix Dashboard 进入 Felix 监控面板,可按需将监控面板设置为主面板。
-
-
通过面板查看各项监控指标。
图例参数及说明
-
IPAM 图例参数说明:
- 节点名称 + IP 地址池名称:例如 v6-2004–172-168-200-250 default-ipv6-ippool,其中,v6-2004–172-168-200-250 代表当前节点的名称;default-ipv6-ippool 代表 IP 地址池的名称。
-
BGP Route 图例参数说明:
- 监控的源地址 + 目标地址:例如 [2004::172:168:200:2b3]:9324 Mesh_2004__172_168_200_250,其中,[2004::172:168:200:2b3]:9324 为当前监控的源地址;Mesh_2004__172_168_200_250 为目标地址,即目标地址为 2004::172:168:200:250。
监控指标
Calico 的监控指标一共分为三个部分,分别是 IPAM 监控,Felix 监控 和 BGP 路由监控。
IPAM 监控
Calico 提供了 IP 地址管理(IPAM)功能,帮助管理和分配容器工作负载的 IP 地址,关键概念如下:
-
IP 地址池: Calico 使用 IP 地址池来存储可用于分配给容器的 IP 地址范围,管理员可以配置一个或多个 IP 地址池。
-
IPAM 块(IP 地址块): IP 地址块是一个连续的 IP 地址范围,用于更有效地管理 IP 地址,Calico 将 IP 地址池划分为多个 IP 地址块,每个块包含一部分可用于分配的 IP 地址。当新节点加入 Calico 网络时,Calico 会为该节点分配一个或多个 IP 地址块,以供该节点上的容器使用。
-
动态分配: Calico 支持动态分配 IP 地址,无需手动配置。当节点或容器需要 IP 地址时,Calico 会从 IP 地址池中动态选择一个可用的地址进行分配。
监控指标
| 界面展示名称 | 指标名称 | 标签 | 说明 |
|---|---|---|---|
| ipam blocks on each node | ipam_blocks | ippool, node | 用于监控 IPAM 为当前节点动态分配的 IP 地址块的数量。 |
| IP allocations on each node | ipam_allocations_in_use | ippool, node | 用于监控当前节点分配和使用的 IP 地址数量,用于反映由 IPAM 分配的 IP 地址的实际使用情况。 |
| IP borrowed on each node | ipam_allocations_borrowed | ippool, node | 用于监控当前节点从其他节点的地址块中借用的 IP 地址数量。 |
| ipam allocations leaks on each node | ipam_allocations_gc_candidates | ippool, node | 用于监控当前被 GC(垃圾回收)标记为已分配且存在潜在泄漏风险的 IP 地址数量。泄露风险可能源于错误的网络配置或操作等,从而导致未正常释放 IP 地址,在正常的 GC 操作下,此指标会返回零。 |
标签说明
| 标签名称 | 说明 |
|---|---|
| ippool | IP 地址块所在的 IP 地址池。如果没有与该块匹配的地址池,则值为 no_ippool。 |
Felix 监控指标
| 界面展示名称 | 指标名称 | 描述 |
|---|---|---|
| Active hosts on each node | felix_cluster_num_hosts | 用于监控集群节点的数量。 |
| ipset errors | felix_ipset_errors | 用于监控 ipset 命令失败的次数。当 Felix 尝试通过 ipset 命令创建、更新或删除 IP 集合(一种数据结构,用于存储一组 IP 地址,以便于管理和匹配)时,如果发生错误,这些错误次数会被记录在该指标中,这个指标帮助管理员追踪 IP 集合的管理操作是否成功执行,以及在操作过程中是否发生了错误。 |
| iptables restore errors | felix_iptables_restore_errors | 用于监控 iptables-restore 错误的次数。Felix 组件负责管理节点上的 iptables 规则,这些规则用于实现容器网络的连接和流量控制等。当 iptables 规则需要还原(例如:由于配置更改、重新启动、竞争失败等情况),Felix 将尝试重新加载这些规则,该指标记录了尝试恢复 iptables 规则过程中发生的错误次数。 |
| iptables save errors | felix_iptables_save_errors | 用于监控 iptables-save 错误的次数,即在尝试保存 iptables 规则时,Calico 的 Felix 组件遇到的错误次数。 |
| Felix ipsets total | felix_ipsets_total | 用于监控活动的 IP 集合的总数量。 |
| Felix cluster policies | felix_active_local_policies | 用于监控主机上活动的策略的数量。在容器网络中,策略通常用于定义网络通信的规则,例如允许或拒绝特定来源和目标之间的流量。 |
| Active calico nodes | felix_active_local_endpoints | 用于监控主机上活动的终端节点的数量。在容器网络中,终端节点通常是指运行在主机上的容器或虚拟机实例。 |
| Felix resync started | felix_resyncs_started | 用于监控同步 ETCD 数据的次数。 |
| calico active ipsets num | felix_ipsets_calico | 用于监控活动 Calico IP 集合的数量。 |
| Errors plot |
|
用于监控 Calico 遇到的所有错误,偶现的错误是可以接受的。然而,错误或恒定错误计数器数量的增加意味着 Calico 可能无法正常工作。 |
| Felix iptables chains | felix_iptables_chains | 用于监控 iptables 中创建的链(chains)的数量。在容器网络中,iptables 链用于实现网络策略、安全组规则等功能,通过监控该指标,管理员可以了解节点上 iptables 链的规模,评估和调整网络策略、流量控制规则等,较大的链数量可能会影响性能,因此可以基于这个指标进行优化和调整。 |
| Felix iptables rules | felix_iptables_rules | 用于监控 iptables 规则的数量。在容器网络中,iptables 规则用于定义网络策略、安全组规则和流量控制规则。通过监控该指标,管理员可以了解节点上 iptables 规则的规模,有助于评估和调整网络策略、流量控制规则等,优化和调整网络性能以及确保网络安全性。 |
| Dataplane | felix_int_dataplane_apply_time_seconds | 用于统计 ipset、iptables、routes 等数据面资源更新一次的耗时,以秒为单位进行计算,提供了 0.5、0.9 及 0.99 分位数的数据,展示了耗时的分布统计结果。其中,0.5、0.9、0.99 分位数表示:将收集到的数据按照由小到大排序,取 50%、90%、99% 位置的数据值,所有收集的数据中有 50%、90%、99% 的数据小于该值,分位数有助于统计数据的分布情况,并排查出各种极端情况。 |
| Route table | felix_route_table_list_seconds | 用于统计在 Felix 的一次同步操作中,同步所有接口的耗时时间,以秒为单位进行计算,提供 0.5、0.9 及 0.99 分位数的数据,展示了耗时的分布统计结果。 |
BGP 路由监控指标
| 界面展示名称 | 指标名称 | 描述 |
|---|---|---|
| bird protocol up | bird_protocol_up | 用于监控当前节点与 Calico 网络中的其他节点之间 BGP 协议是否处于运行状态。指标默认为 1,表示 BGP 协议正常工作,可以正常地交换路由信息,也可以反馈当前 BGP 路由邻居建立的情况,作用等同于 bgp_peer。 |
| preferred route count | bird_protocol_prefix_preferred_count | 用于监控 BGP 路由中的首选路由数量。其中,首选路由是指存在多个可达路由时,BGP 路由器选择的用于转发流量的最佳路径。 |
| bgp route updates received | bird_protocol_changes_update_import_receive_count | 用于监控当前节点收到的 BGP 路由更新次数。 |
| import route count | bird_protocol_prefix_import_count | 用于监控节点上导入的路由数量。其中,导入路由表示把通过路由协议学习到的路由导入到路由表中。 |
| export route count | bird_protocol_prefix_export_count | 用于监控节点上从路由表导出的路由数量。其中,导出路由表示将路由表中的路由通告给邻居。 |