监控最佳实践

以下监控流程是审查 Cumulus Linux 环境潜在问题的最佳实践。

本文档介绍

  • 您可以从 Cumulus Linux 轮询并在趋势分析中使用的指标
  • 您可以监控以触发警报的关键日志消息

使用指标进行趋势分析

指标是可量化的度量,用于跟踪和评估特定基础设施组件的状态。指标示例包括接口上的字节数、CPU 利用率和路由总数。

当您将指标用于趋势分析时,指标更有价值。

使用触发的日志记录生成警报

Cumulus Linux 通常将触发的问题发送到 syslog,但可以根据功能将问题发送到另一个日志文件。rsyslog 处理所有日志记录,包括本地和远程日志记录。当系统从稳定状态转换时,日志是用于生成警报的最佳方法。

将日志发送到集中式收集器,然后创建基于关键日志的警报是最佳解决方案。

日志格式

Cumulus Linux 中的大多数日志文件都使用标准呈现格式。例如

2017-03-08T06:26:43.569681+00:00 leaf01 sysmonitor: Critically high CPU use: 99%
  • 2017-03-08T06:26:43.569681+00:00 是时间戳。
  • leaf01 是主机名。
  • sysmonitor 是消息的来源进程。
  • CPU 使用率严重偏高:99% 是消息。

为了简洁明了,本节中的示例省略了时间戳和主机名。

硬件

NVUE 提供了用于监控各种交换机硬件元素的命令。

命令描述
nv show platform environment fan显示有关交换机上风扇的信息,例如最小、最大和当前速度、风扇状态以及风扇方向。
nv show platform environment led显示有关交换机上 LED 的信息,例如 LED 名称和颜色。
nv show platform environment psu显示有关交换机上 PSU 的信息,例如 PSU 名称和状态。
nv show platform environment temperature显示有关交换机上传感器(例如临界温度、最高温度、最低温度和当前温度)以及传感器的当前状态的信息。
nv show platform environment voltage显示交换机上的电压传感器列表。
nv show platform inventory显示交换机清单,其中包括风扇和 PSU 硬件版本、型号、序列号、状态和类型。有关特定风扇或 PSU 的信息,请运行 nv show platform inventory <inventory-name> 命令。

以下示例显示了 nv show platform environment fan 命令输出。所有风扇的气流方向必须相同。如果 Cumulus Linux 检测到风扇气流方向不一致,则会在 var/log/syslog 文件中记录一条消息。

cumulus@switch:~$ nv show platform environment fan
Name      Fan State  Current Speed (RPM)  Max Speed  Min Speed  Fan Direction
--------  ---------  -------------------  ---------  ---------  -------------
FAN1/1    ok         6000                 29000      2500       F2B         
FAN1/2    ok         6000                 29000      2500       F2B         
FAN2/1    ok         6000                 29000      2500       F2B         
FAN2/2    ok         6000                 29000      2500       F2B         
FAN3/1    ok         6000                 29000      2500       F2B         
FAN3/2    ok         6000                 29000      2500       F2B         
PSU1/FAN  ok         6000                 29000      2500       F2B         
PSU2/FAN  ok         6000                 29000      2500       F2B   

如果所有风扇的气流方向不一致(前到后或后到前),则交换机、机架甚至整个数据中心的散热效果都会欠佳。

smond 进程为各种交换机硬件元件提供监控。最小值或最大值取决于您应用于基本命令的标志。下表列出了硬件元件以及适用的命令和标志。

硬件元件监控命令间隔轮询
温度smonctl -j
smonctl -j -s TEMP[X]
10 秒
风扇smonctl -j
smonctl -j -s FAN[X]
10 秒
PSUsmonctl -j
smonctl -j -s PSU[X]
10 秒
PSU 风扇smonctl -j
smonctl -j -s PSU[X]Fan[X]
10 秒
PSU 温度smonctl -j
smonctl -j -s PSU[X]Temp[X]
10 秒
电压smonctl -j
smonctl -j -s Volt[X]
10 秒
前面板 LEDledmgrd -d
ledmgrd -j
5 秒

并非所有交换机型号都包含用于监控功耗和电压的传感器。有关详细信息,请参阅此注释

硬件日志日志位置日志条目
高温
/var/log/syslog
/usr/sbin/smond : : Temp1(Board Sensor near CPU): state changed from UNKNOWN to OK
/usr/sbin/smond : : Temp2(Board Sensor Near Virtual Switch): state changed from UNKNOWN to OK
/usr/sbin/smond : : Temp3(Board Sensor at Front Left Corner): state changed from UNKNOWN to OK
/usr/sbin/smond : : Temp4(Board Sensor at Front Right Corner): state changed from UNKNOWN to OK
/usr/sbin/smond : : Temp5(Board Sensor near Fan): state changed from UNKNOWN to OK
风扇速度问题
/var/log/syslog
/usr/sbin/smond : : Fan1(Fan Tray 1, Fan 1): state changed from UNKNOWN to OK
/usr/sbin/smond : : Fan2(Fan Tray 1, Fan 2): state changed from UNKNOWN to OK
/usr/sbin/smond : : Fan3(Fan Tray 2, Fan 1): state changed from UNKNOWN to OK
/usr/sbin/smond : : Fan4(Fan Tray 2, Fan 2): state changed from UNKNOWN to OK
/usr/sbin/smond : : Fan5(Fan Tray 3, Fan 1): state changed from UNKNOWN to OK
/usr/sbin/smond : : Fan6(Fan Tray 3, Fan 2): state changed from UNKNOWN to OK
风扇方向问题
/var/log/syslog
/usr/sbin/smond : : Fan direction mismatch: 12 fans B2F; 1 fans F2B!
PSU 故障
/var/log/syslog
/usr/sbin/smond : : PSU1Fan1(PSU1 Fan): state changed from UNKNOWN to OK
/usr/sbin/smond : : PSU2Fan1(PSU2 Fan): state changed from UNKNOWN to BAD

系统数据

Cumulus Linux 包括多种监控系统数据的方法。此外,您还可以在高风险情况下接收警报。

CPU 空闲时间

当 CPU 在五分钟内报告五次高 CPU 警报时,交换机将记录警报。

switchd 激增或路由协议启动期间可能会出现短暂的高 CPU 峰值。请勿为这些短暂的峰值设置警报。

系统元件监控命令间隔轮询
CPU 利用率NVUE:nv show system cpu
Linux:sudo cat /proc/stat
top -b -n 1
30 秒
CPU 日志日志位置日志条目
高 CPU
/var/log/syslog
sysmonitor: Critically high CPU use: 99%
systemd[1]: Starting Monitor system resources (cpu, memory, disk)…
systemd[1]: Started Monitor system resources (cpu, memory, disk).
sysmonitor: High CPU use: 89%
systemd[1]: Starting Monitor system resources (cpu, memory, disk)…
systemd[1]: Started Monitor system resources (cpu, memory, disk).
sysmonitor: CPU use no longer high: 77%

Cumulus Linux 使用 sysmonitor 监控 CPU、内存和磁盘空间。阈值的配置位于 /etc/cumulus/sysmonitor.conf 中。有关更多信息,请参阅 man sysmonitor

CPU 指标 阈值
使用 警报:90% 严重:95%
进程负载 警告:95% 严重:125%

Spectrum 1 CPU 在中等到高网络规模下可能会过载。如果您的 Spectrum 1 交换机无法处理发往 CPU 的流量,或者持续在高 CPU 状态下运行,请降低部署 Spectrum 1 交换机的网络规模,或者用提供更强计算资源的新一代交换机替换该交换机。

磁盘使用情况

要监控磁盘利用率,例如文件系统的总存储容量、当前正在使用的空间量、可用空间量、文件系统总容量的当前使用百分比以及文件系统附加到系统的目录或挂载点,请运行 NVUE nv show system disk usage 命令或 Linux sudo df 命令。

cumulus@switch:~$ nv show system disk usage 
Mount Point  Filesystem  Size  Used  Avail  Use%
-----------  ----------  ----  ----  -----  ----
/            /dev/vda5   5.4G  2.5G  2.7G   49% 
/dev         udev        847M  0     847M   0%  
/dev/shm     tmpfs       856M  31M   825M   4%  
/run         tmpfs       172M  1.4M  170M   1%  
/run/lock    tmpfs       5.0M  0     5.0M   0%  
/tmp         tmpfs       856M  8.0K  856M   1%

要以 json 格式显示磁盘使用情况,请运行 nv show system disk usage -o json 命令。

cumulus@switch:~$ nv show system disk usage -o json
{
  "/": {
    "available": "2.7G",
    "file-system": "/dev/vda5",
    "size": "5.4G",
    "used": "2.5G",
    "used-percent": "49%"
  },
  "/dev": {
    "available": "847M",
    "file-system": "udev",
    "size": "847M",
    "used": "0",
    "used-percent": "0%"
  },
  "/dev/shm": {
    "available": "825M",
    "file-system": "tmpfs",
    "size": "856M",
    "used": "31M",
    "used-percent": "4%"
  },
  "/run": {
    "available": "170M",
    "file-system": "tmpfs",
    "size": "172M",
    "used": "1.4M",
    "used-percent": "1%"
  },
  "/run/lock": {
    "available": "5.0M",
    "file-system": "tmpfs",
    "size": "5.0M",
    "used": "0",
    "used-percent": "0%"
  },
  "/tmp": {
    "available": "856M",
    "file-system": "tmpfs",
    "size": "856M",
    "used": "8.0K",
    "used-percent": "1%"
  }
}

要以 json yaml 格式显示磁盘使用情况,请运行 nv show system disk usage -o yaml 命令

cumulus@switch:~$ nv show system disk usage -o yaml
/:
  available: 2.7G
  file-system: /dev/vda5
  size: 5.4G
  used: 2.5G
  used-percent: 49%
/dev:
  available: 847M
  file-system: udev
  size: 847M
  used: '0'
  used-percent: 0%
/dev/shm:
  available: 825M
  file-system: tmpfs
  size: 856M
  used: 31M
  used-percent: 4%
/run:
  available: 170M
  file-system: tmpfs
  size: 172M
  used: 1.4M
  used-percent: 1%
/run/lock:
  available: 5.0M
  file-system: tmpfs
  size: 5.0M
  used: '0'
  used-percent: 0%
/tmp:
  available: 856M
  file-system: tmpfs
  size: 856M
  used: 8.0K
  used-percent: 1%

使用 Linux 命令监控磁盘利用率时,可以使用 sudo df -x tmpfs 排除 tmpfs 文件系统。

cumulus@switch:~$ sudo df -x tmpfs
Filesystem     1K-blocks     Used  Available  Use%  Mounted on
udev              867272        0     867272    0%  /dev
/dev/vda5        5646348  2417272    2921624   46%  /
/dev/vdb             354      354          0  100%  /mnt/air

进程重启

在 Cumulus Linux 中,systemd 监控和重启进程。

要查看 systemd 监控的进程,请运行 systemctl status 命令。

cumulus@switch:~$ systemctl status
● leaf01
    State: running
    Units: 521 loaded (incl. loaded aliases)
     Jobs: 0 queued
   Failed: 0 units
    Since: Wed 2024-11-13 19:16:28 UTC; 4 weeks 0 days ago
  systemd: 252.30-1~deb12u2
   CGroup: /
           ├─1001 bpfilter_umh
           ├─init.scope
           │ └─1 /sbin/init
           └─system.slice
             ├─acpid.service
             │ └─850 /usr/sbin/acpid
             ├─auditd.service
             │ └─373 /sbin/auditd
             ├─cl-system-services.service
             │ └─1182 /usr/sbin/cl_system_services -l INFO
             ├─clagd.service
             │ └─2550 /usr/bin/python3 -u /usr/sbin/clagd --daemon linklocal pe>
             ├─cron.service
             │ └─869 /usr/sbin/cron -f -L 38
             ├─csmgrd.service

第 1 层协议和接口

链路和端口状态接口转换记录到 /var/log/syslog/var/log/switchd.log

接口元件监控命令
链路状态NVUE:nv show interface <interface>

Linux:sudo cat /sys/class/net/<interface>/operstate
链路速度NVUE:nv show interface <inteface>

Linux:sudo cat /sys/class/net/<interface>/speed
端口状态NVUE:nv show interface

Linux:ip link show
Bond 状态NVUE:nv show interface <bond>

Linux:sudo cat /proc/net/bonding/<bond>

您可以从查询硬件或 Linux 内核获取接口计数器。Linux 内核聚合来自硬件的输出。

接口计数器元件监控命令间隔轮询
接口计数器NVUE:nv show interface <interface> counters

Linux:cat /sys/class/net/<interface>/statistics/<statistic-name>
cl-netstat -j
ethtool -S <interface>
10 秒
第 1 层日志日志位置日志条目
链路故障/链路抖动
/var/log/switchd.log
switchd[5692]: nic.c:213 nic_set_carrier: swp17: setting kernel carrier: down
switchd[5692]: netlink.c:291 libnl: swp1, family 0, ifi 20, oper down
switchd[5692]: nic.c:213 nic_set_carrier: swp1: setting kernel carrier: up
switchd[5692]: netlink.c:291 libnl: swp17, family 0, ifi 20, oper up
单向链路
/var/log/switchd.log
/var/log/ptm.log
ptmd[7146]: ptm_bfd.c:2471 Created new session 0x1 with peer 10.255.255.11 port swp1
ptmd[7146]: ptm_bfd.c:2471 Created new session 0x2 with peer fe80::4638:39ff:fe00:5b port swp1
ptmd[7146]: ptm_bfd.c:2471 Session 0x1 down to peer 10.255.255.11, Reason 8
ptmd[7146]: ptm_bfd.c:2471 Detect timeout on session 0x1 with peer 10.255.255.11, in state 1
Bond 协商正常
/var/log/syslog
kernel: [85412.763193] bonding: bond0 is being created…
kernel: [85412.770014] bond0: Enslaving swp2 as a backup interface with an up link
kernel: [85412.775216] bond0: Enslaving swp1 as a backup interface with an up link
kernel: [85412.797393] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready
kernel: [85412.799425] IPv6: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready
Bond 协商失败
/var/log/syslog
kernel: [85412.763193] bonding: bond0 is being created…
kernel: [85412.770014] bond0: Enslaving swp2 as a backup interface with an up link
kernel: [85412.775216] bond0: Enslaving swp1 as a backup interface with an up link
kernel: [85412.797393] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready
MLAG 对等链路协商正常
/var/log/syslog
lldpd[998]: error while receiving frame on swp50: Network is down
lldpd[998]: error while receiving frame on swp49: Network is down
kernel: [76174.262893] peerlink: Setting ad_actor_system to 44:38:39:00:00:11
kernel: [76174.264205] 8021q: adding VLAN 0 to HW filter on device peerlink
mstpd: one_clag_cmd: setting (1) peer link: peerlink
mstpd: one_clag_cmd: setting (1) clag state: up
mstpd: one_clag_cmd: setting system-mac 44:38:39:ff:40:94
mstpd: one_clag_cmd: setting clag-role secondary
/var/log/clagd.log
clagd[14003]: Cleanup is executing.
clagd[14003]: Cannot open file “/tmp/pre-clagd.q7XiO
clagd[14003]: Cleanup is finished
clagd[14003]: Beginning execution of clagd version 1
clagd[14003]: Invoked with: /usr/sbin/clagd –daemon
clagd[14003]: Role is now secondary
clagd[14003]: HealthCheck: role via backup is second
clagd[14003]: HealthCheck: backup active
clagd[14003]: Initial config loaded
clagd[14003]: The peer switch is active.
clagd[14003]: Initial data sync from peer done.
clagd[14003]: Initial handshake done.
clagd[14003]: Initial data sync to peer done.
MLAG 对等链路协商失败
/var/log/syslog
lldpd[998]: error while receiving frame on swp50: Network is down
lldpd[998]: error while receiving frame on swp49: Network is down
kernel: [76174.262893] peerlink: Setting ad_actor_system to 44:38:39:00:00:11
kernel: [76174.264205] 8021q: adding VLAN 0 to HW filter on device peerlink
mstpd: one_clag_cmd: setting (1) peer link: peerlink
mstpd: one_clag_cmd: setting (1) clag state: down
mstpd: one_clag_cmd: setting system-mac 44:38:39:ff:40:94
mstpd: one_clag_cmd: setting clag-role secondary
/var/log/clagd.log
clagd[26916]: Cleanup is executing.
clagd[26916]: Cannot open file “/tmp/pre-clagd.6M527vvGX0/brbatch” for reading: No such file or directory
clagd[26916]: Cleanup is finished
clagd[26916]: Beginning execution of clagd version 1.3.0
clagd[26916]: Invoked with: /usr/sbin/clagd –daemon 169.254.1.2 peerlink.4094 44:38:39:FF:01:01 –priority 1000 –backupIp 10.0.0.2
clagd[26916]: Role is now secondary
clagd[26916]: Initial config loaded
MLAG 端口协商正常
/var/log/syslog
kernel: [77419.112195] bonding: server01 is being created…
lldpd[998]: error while receiving frame on swp1: Network is down
kernel: [77419.122707] 8021q: adding VLAN 0 to HW filter on device swp1
kernel: [77419.126408] server01: Enslaving swp1 as a backup interface with a down link
kernel: [77419.177175] server01: Setting ad_actor_system to 44:38:39:ff:40:94
kernel: [77419.190874] server01: Warning: No 802.3ad response from the link partner for any adapters in the bond
kernel: [77419.191448] IPv6: ADDRCONF(NETDEV_UP): server01: link is not ready
kernel: [77419.191452] 8021q: adding VLAN 0 to HW filter on device server01
kernel: [77419.192060] server01: link status definitely up for interface swp1, 1000 Mbps full duplex
kernel: [77419.192065] server01: now running without any active interface!
kernel: [77421.491811] IPv6: ADDRCONF(NETDEV_CHANGE): server01: link becomes ready
mstpd: one_clag_cmd: setting (1) mac 44:38:39:00:00:17 <server01, None>
/var/log/clagd.log
clagd[14003]: server01 is now dual connected.
MLAG 端口协商失败
/var/log/syslog
kernel: [79290.290999] bonding: server01 is being created…
kernel: [79290.299645] 8021q: adding VLAN 0 to HW filter on device swp1
kernel: [79290.301790] server01: Enslaving swp1 as a backup interface with a down link
kernel: [79290.358294] server01: Setting ad_actor_system to 44:38:39:ff:40:94
kernel: [79290.373590] server01: Warning: No 802.3ad response from the link partner for any adapters in the bond
kernel: [79290.374024] IPv6: ADDRCONF(NETDEV_UP): server01: link is not ready
kernel: [79290.374028] 8021q: adding VLAN 0 to HW filter on device server01
kernel: [79290.375033] server01: link status definitely up for interface swp1, 1000 Mbps full duplex
kernel: [79290.375037] server01: now running without any active interface!
/var/log/clagd.log
clagd[14291]: Conflict (server01): matching clag-id (1) not configured on peer…
clagd[14291]: Conflict cleared (server01): matching clag-id (1) detected on peer
MLAG 端口协商抖动
/var/log/syslog
mstpd: one_clag_cmd: setting (0) mac 00:00:00:00:00:00 <server01, None>
mstpd: one_clag_cmd: setting (1) mac 44:38:39:00:00:03 <server01, None>
/var/log/clagd.log
clagd[14291]: server01 is no longer dual connected
clagd[14291]: server01 is now dual connected.

PTM 使用 LLDP 信息与描述网络的 topology.dot 文件进行比较。它具有内置的警报功能。在交换机上使用 PTM 而不是定期轮询 LLDP 信息。您可以从 Cumulus Linux GitHub 存储库安装 PTM。

考虑通过 PTM 跟踪对等信息。有关更多信息,请参阅规范拓扑管理器文档

邻居元件监控命令间隔轮询
LLDP 邻居sudo lldpctl -f json300 秒
规范拓扑管理器ptmctl -j已触发

第 2 层协议

生成树是一种防止第 2 层基础设施中出现环路的协议。在稳定状态下,生成树协议会收敛。监控 STP 中的拓扑更改通知 (TCN),以识别何时到达新的 BPDU。

接口计数器元件监控命令间隔轮询
STP TCN 转换NVUE:nv show bridge domain <bridge> stp

Linux:mstpctl showbridge json
mstpctl showport
60 秒
MLAG 对等状态NVUE:nv show mlag

Linux:clagctl status
sudo clagd -j
sudo cat /var/log/clagd.log
60 秒
MLAG 对等 MACNVUE:nv show mlag

Linux:clagctl dumppeermacs
clagctl dumpourmacs
300 秒
第 2 层日志日志位置日志条目
生成树正常
/var/log/syslog
kernel: [1653877.190724] device swp1 entered promiscuous mode
kernel: [1653877.190796] device swp2 entered promiscuous mode
mstpd: create_br: Add bridge bridge
mstpd: clag_set_sys_mac_br: set bridge mac 00:00:00:00:00:00
mstpd: create_if: Add iface swp1 as port#2 to bridge bridge
mstpd: set_if_up: Port swp1 : up
mstpd: create_if: Add iface swp2 as port#1 to bridge bridge
mstpd: set_if_up: Port swp2 : up
mstpd: set_br_up: Set bridge bridge up
mstpd: MSTP_OUT_set_state: bridge:swp1:0 entering blocking state(Disabled)
mstpd: MSTP_OUT_set_state: bridge:swp2:0 entering blocking state(Disabled)
mstpd: MSTP_OUT_flush_all_fids: bridge:swp1:0 Flushing forwarding database
mstpd: MSTP_OUT_flush_all_fids: bridge:swp2:0 Flushing forwarding database
mstpd: MSTP_OUT_set_state: bridge:swp1:0 entering learning state(Designated)
mstpd: MSTP_OUT_set_state: bridge:swp2:0 entering learning state(Designated)
sudo: pam_unix(sudo:session): session closed for user root
mstpd: MSTP_OUT_set_state: bridge:swp1:0 entering forwarding state(Designated)
mstpd: MSTP_OUT_set_state: bridge:swp2:0 entering forwarding state(Designated)
mstpd: MSTP_OUT_flush_all_fids: bridge:swp2:0 Flushing forwarding database
mstpd: MSTP_OUT_flush_all_fids: bridge:swp1:0 Flushing forwarding database
生成树阻止
/var/log/syslog
mstpd: MSTP_OUT_set_state: bridge:swp2:0 entering blocking state(Designated)
mstpd: MSTP_OUT_set_state: bridge:swp2:0 entering learning state(Designated)
mstpd: MSTP_OUT_set_state: bridge:swp2:0 entering forwarding state(Designated)
mstpd: MSTP_OUT_flush_all_fids: bridge:swp2:0 Flushing forwarding database
mstpd: MSTP_OUT_flush_all_fids: bridge:swp2:0 Flushing forwarding database
mstpd: MSTP_OUT_set_state: bridge:swp2:0 entering blocking state(Alternate)
mstpd: MSTP_OUT_flush_all_fids: bridge:swp2:0 Flushing forwarding database

第 3 层协议

当 FRR 首次启动时,每个激活的守护程序都有不同的日志文件。如果您编辑日志文件(例如,通过 vtysh 或 frr.conf),则集成配置会将所有日志发送到同一文件。

要将 FRR 日志发送到 syslog,请在 vtysh 中应用配置 log syslog

BGP

监控 BGP 时,请检查 BGP 对等方是否正在运行。警报对等方的当前运行状态没有太大价值;监控转换更有价值,您可以通过监控 syslog 来完成。

监控路由表提供基础设施规模的趋势。当您与基于主机的解决方案(例如主机上的路由)集成时,这非常有用,此时路由会随可用应用程序的数量进行跟踪。

BGP 元件监控命令间隔轮询
BGP 对等方故障sudo vtysh -c "show ip bgp summary json"60 秒
BGP 路由表sudo vtysh -c "show ip bgp json"600 秒
BGP 日志日志位置日志条目
BGP 对等方关闭
/var/log/syslog
/var/log/frr/*.log
bgpd[3000]: %NOTIFICATION: sent to neighbor swp1 4/0 (Hold Timer Expired) 0 bytes
bgpd[3000]: %ADJCHANGE: neighbor swp1 Down BGP Notification send

OSPF

监控 OSPF 时,请检查 OSPF 对等方是否正在运行。警报对等方的当前运行状态没有太大价值;监控转换更有价值,您可以通过监控 syslog 来完成。

监控路由表提供基础设施规模的趋势。当您与基于主机的解决方案(例如主机上的路由)集成时,这非常有用,此时路由会随可用应用程序的数量进行跟踪。

OSPF 元件监控命令间隔轮询
OSPF 协议对等方故障sudo vtysh -c "show ip ospf neighbor all json"
cl-ospf summary show json
60 秒
OSPF 链路状态数据库sudo vtysh - c "show ip ospf database"600 秒

路由和主机条目

路由元件监控命令间隔轮询
主机条目cl-resource-query
cl-resource-query -k
600 秒
路由条目cl-resource-query
cl-resource-query -k
600 秒

路由日志

第 3 层日志日志位置日志条目
路由协议进程崩溃
/var/log/syslog
frrouting[1824]: Starting FRRouting daemons (prio:10):. zebra. bgpd.
bgpd[1847]: BGPd 1.0.0+cl3u7 starting: vty@2605, bgp@:179
zebra[1840]: client 12 says hello and bids fair to announce only bgp routes
watchfrr[1853]: watchfrr 1.0.0+cl3u7 watching [zebra bgpd], mode [phased zebra restart]
watchfrr[1853]: bgpd state -> up : connect succeeded
watchfrr[1853]: bgpd state -> down : read returned EOF
cumulus-core: Running cl-support for core files bgpd.3030.1470341944.core.core_helper
core_check.sh[4992]: Please send /var/support/cl_support__spine01_20160804_201905.tar.xz to Cumulus support
watchfrr[1853]: Forked background command [pid 6665]: /usr/sbin/service frr restart bgpd
watchfrr[1853]: watchfrr 0.99.24+cl3u2 watching [zebra bgpd ospfd], mode [phased zebra restart]
watchfrr[1853]: zebra state -> up : connect succeeded
watchfrr[1853]: bgpd state -> up : connect succeeded
watchfrr[1853]: watchfrr: Notifying Systemd we are up and running

日志记录

下表描述了各种日志文件。

日志记录元件监控命令日志位置
syslog捕获所有日志文件。识别内存泄漏和 CPU 峰值。
/var/log/syslog
switchd 功能硬件抽象层 (HAL)。
/var/log/switchd.log
路由守护程序FRR zebra 守护程序详细信息。
/var/log/daemon.log
路由协议日志文件在 FRR 中是可配置的。当 FRR 首次启动时,它使用非集成配置,因此每个路由协议都有自己的日志文件。启动后,FRR 切换为使用集成配置,以便所有日志都转到一个位置。

要编辑日志文件的位置,请使用 log file命令。默认情况下,Cumulus Linux 不会将 FRR 日志发送到 syslog。使用 log syslog命令通过 rsyslog 将日志发送到 /var/log/syslog 中。

注意:要将 syslog 调试消息写入日志文件,您必须运行 log syslog debug 命令,以将 FRR 配置为 syslog 严重性 7(调试);否则,当您发出调试命令(例如 debug bgp neighbor-events)时,不会将任何输出记录到 /var/log/frr/frr.log

但是,当您使用 log file /var/log/frr/debug.log 命令手动定义日志目标时,FRR 会自动默认为严重性 7(调试)日志记录,并且输出会记录到 /var/log/frr/frr.log
/var/log/frr/zebra.log
/var/log/frr/.log
/var/log/frr/frr.log

设备管理

设备访问日志

访问日志日志位置日志条目
用户身份验证和远程登录
/var/log/syslog
sshd[31830]: Accepted publickey for cumulus from 192.168.0.254 port 45582 ssh2: RSA 38:e6:3b:cc:04:ac:41:5e:c9:e3:93:9d:cc:9e:48:25
sshd[31830]: pam_unix(sshd:session): session opened for user cumulus by (uid=0)

设备超级用户命令日志

超级用户命令日志日志位置日志条目
使用 sudo 执行命令
/var/log/syslog
sudo: cumulus: TTY=unknown ; PWD=/home/cumulus ; USER=root ; COMMAND=/tmp/script_9938.sh -v
sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
sudo: pam_unix(sudo:session): session closed for user root