Stackdriver Monitoring floods collectd uc_update: Value too old in syslog
让我先声明一下,我不是 DevOp,所以我在 Linux 管理方面的经验是有限的。
我基本上遵循了这个 How-To (https://cloud.google.com/monitoring/agent/install-agent) 并在我的 Google 计算实例上安装了代理。
一切正常,我在我的堆栈驱动程序帐户中获得了新指标,但是我的系统日志中被淹没了
1 | instance-name collectd[26092]: uc_update: Value too old: name = <RandomNumber>/processes-all/ps_vm; value time = 1517218302.393; last cache update = 1517218302.393; |
所以我在 /opt/stackdriver/collectd/etc/collectd.conf 文件中找到了这个
1 2 | Hostname"RandomNumber" Interval 60 |
这是有道理的,除了stackdriver之外,我们不会将collectd用于其他任何事情。所以找到导致问题的proccessid 和stackdriver hostname 一样就顺理成章了。
接下来我检查了 https://collectd.org/faq.shtml
我为 /etc/collectd.conf 和 /opt/stackdriver/collectd/etc/collectd.conf 运行此命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | grep -i LoadPlugin /etc/collectd.conf | egrep -v '^[[:space:]]*#' | sort | uniq -c 1 LoadPlugin cpu 1 LoadPlugin interface 1 LoadPlugin load 1 LoadPlugin memory 1 LoadPlugin network 1 LoadPlugin syslog grep -i LoadPlugin /opt/stackdriver/collectd/etc/collectd.conf | egrep -v '^[[:space:]]*#' | sort | uniq -c 1 LoadPlugin"match_regex" 1 LoadPlugin aggregation 1 LoadPlugin cpu 1 LoadPlugin df 1 LoadPlugin disk 1 LoadPlugin exec 1 LoadPlugin interface 1 LoadPlugin load 1 LoadPlugin match_regex 1 LoadPlugin match_throttle_metadata_keys 1 LoadPlugin memory 1 LoadPlugin processes 1 LoadPlugin stackdriver_agent 1 LoadPlugin swap 1 LoadPlugin syslog 1 LoadPlugin tcpconns 1 LoadPlugin write_gcm |
如您所见,没有重复值。
我的想法已经用完了,有人可以帮忙吗?
谢谢。
附言
我们正在使用 Debian Stretch 并使用 php.
运行 lighttpd
附言更多信息
这是一个更详细的日志,其中包含错误,您可以看到时间戳
1 2 3 4 5 6 7 | Jan 30 10:47:49 instance-name collectd[28953]: uc_update: Value too old: name = 5281367784029328076/processes-all/ps_cputime; value time = 1517309269.877; last cache update = 1517309269.877; Jan 30 10:48:49 instance-name collectd[28953]: uc_update: Value too old: name = 5281367784029328076/processes-all/ps_cputime; value time = 1517309329.884; last cache update = 1517309329.884; Jan 30 10:50:49 instance-name collectd[28953]: uc_update: Value too old: name = 5281367784029328076/processes-all/ps_rss; value time = 1517309449.881; last cache update = 1517309449.881; Jan 30 10:50:49 instance-name collectd[28953]: uc_update: Value too old: name = 5281367784029328076/processes-all/io_octets; value time = 1517309449.881; last cache update = 1517309449.884; Jan 30 10:52:49 instance-name collectd[28953]: uc_update: Value too old: name = 5281367784029328076/processes-all/ps_vm; value time = 1517309569.889; last cache update = 1517309569.889; Jan 30 10:52:49 instance-name collectd[28953]: uc_update: Value too old: name = 5281367784029328076/processes-all/disk_octets; value time = 1517309569.890; last cache update = 1517309569.890; Jan 30 10:52:49 instance-name collectd[28953]: uc_update: Value too old: name = 5281367784029328076/processes-all/disk_octets; value time = 1517309569.890; last cache update = 1517309569.894; |
这是 PS 命令的输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | ps -e PID TTY TIME CMD 1 ? 00:01:28 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:24 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 7 ? 00:41:17 rcu_sched 8 ? 00:00:00 rcu_bh 9 ? 00:00:02 migration/0 10 ? 00:00:00 lru-add-drain 11 ? 00:00:03 watchdog/0 12 ? 00:00:00 cpuhp/0 13 ? 00:00:00 cpuhp/1 14 ? 00:00:03 watchdog/1 15 ? 00:00:01 migration/1 16 ? 00:11:58 ksoftirqd/1 18 ? 00:00:00 kworker/1:0H 19 ? 00:00:00 cpuhp/2 20 ? 00:00:03 watchdog/2 21 ? 00:00:01 migration/2 22 ? 00:03:16 ksoftirqd/2 24 ? 00:00:00 kworker/2:0H 25 ? 00:00:00 cpuhp/3 26 ? 00:00:03 watchdog/3 27 ? 00:00:02 migration/3 28 ? 00:03:11 ksoftirqd/3 30 ? 00:00:00 kworker/3:0H 31 ? 00:00:00 kdevtmpfs 32 ? 00:00:00 netns 33 ? 00:00:00 khungtaskd 34 ? 00:00:00 oom_reaper 35 ? 00:00:00 writeback 36 ? 00:00:00 kcompactd0 38 ? 00:00:00 ksmd 39 ? 00:01:02 khugepaged 40 ? 00:00:00 crypto 41 ? 00:00:00 kintegrityd 42 ? 00:00:00 bioset 43 ? 00:00:00 kblockd 44 ? 00:00:00 devfreq_wq 45 ? 00:00:00 watchdogd 49 ? 00:01:16 kswapd0 50 ? 00:00:00 vmstat 62 ? 00:00:00 kthrotld 63 ? 00:00:00 ipv6_addrconf 130 ? 00:00:00 scsi_eh_0 131 ? 00:00:00 scsi_tmf_0 133 ? 00:00:00 bioset 416 ? 07:01:34 jbd2/sda1-8 417 ? 00:00:00 ext4-rsv-conver 443 ? 00:02:37 systemd-journal 447 ? 00:00:00 kauditd 452 ? 00:00:01 kworker/0:1H 470 ? 00:00:01 systemd-udevd 483 ? 00:00:26 cron 485 ? 00:00:37 rsyslogd 491 ? 00:00:00 acpid 496 ? 00:00:49 irqbalance 497 ? 00:00:21 systemd-logind 498 ? 00:00:36 dbus-daemon 524 ? 00:00:00 edac-poller 612 ? 00:00:02 kworker/2:1H 613 ? 00:00:00 dhclient 674 ? 00:00:00 vsftpd 676 ttyS0 00:00:00 agetty 678 tty1 00:00:00 agetty 687 ? 00:01:18 ntpd 795 ? 4-19:58:17 mysqld 850 ? 00:00:15 sshd 858 ? 00:04:06 google_accounts 859 ? 00:00:33 google_clock_sk 861 ? 00:01:05 google_ip_forwa 892 ? 01:31:57 kworker/1:1H 1154 ? 00:00:00 exim4 1160 ? 00:00:01 kworker/3:1H 4259 ? 00:00:00 kworker/2:1 6090 ? 00:00:00 kworker/0:1 6956 ? 00:00:00 sshd 6962 ? 00:00:00 sshd 6963 pts/0 00:00:00 bash 6968 pts/0 00:00:00 su 6969 pts/0 00:00:00 bash 6972 ? 00:00:00 kworker/u8:2 7127 ? 00:00:00 kworker/3:2 7208 ? 00:00:00 php-fpm7.0 7212 ? 00:00:00 kworker/0:0 10516 ? 00:00:00 systemd 10517 ? 00:00:00 (sd-pam) 10633 ? 00:00:00 kworker/2:2 11569 ? 00:00:00 kworker/3:1 12539 ? 00:00:00 kworker/1:2 13625 ? 00:00:00 kworker/1:0 13910 ? 00:00:00 sshd 13912 ? 00:00:00 systemd 13913 ? 00:00:00 (sd-pam) 13920 ? 00:00:00 sshd 13921 ? 00:00:00 sftp-server 13924 ? 00:00:00 sftp-server 14016 pts/0 00:00:00 tail 14053 ? 00:00:03 php-fpm7.0 14084 ? 00:00:00 sshd 14090 ? 00:00:00 sshd 14091 pts/1 00:00:00 bash 14098 ? 00:00:01 php-fpm7.0 14099 pts/1 00:00:00 su 14100 pts/1 00:00:00 bash 14105 ? 00:00:00 sshd 14106 ? 00:00:00 sshd 14107 ? 00:00:00 php-fpm7.0 14108 pts/1 00:00:00 ps 17456 ? 00:00:03 kworker/u8:1 17704 ? 01:38:36 lighttpd 21624 ? 00:00:30 perl 25593 ? 00:00:00 sshd 25595 ? 00:00:00 systemd 25596 ? 00:00:00 (sd-pam) 25602 ? 00:00:00 sshd 25603 ? 00:00:00 sftp-server 25641 ? 00:00:00 sftp-server 27001 ? 00:00:00 gpg-agent 28953 ? 00:01:20 stackdriver-col |
PS grep comamnd 少,输出
1 2 3 | root@instance-7:/home/# ps aux | grep collectd root 6981 0.0 0.0 12756 976 pts/0 S+ 13:40 0:00 grep collectd root 28953 0.1 1.1 1105712 41960 ? Ssl Jan29 3:16 /opt/stackdriver/collectd/sbin/stackdriver-collectd -C /opt/stackdriver/collectd/etc/collectd.conf -P /var/run/stackdriver-agent.pid |
这些应该是来自 Stackdriver 代理的正常消息。 (如果速率是你所说的每分钟 2-3 条消息。)
我建议你安装 ntp/ntpd 服务并将其同步到任何时间服务器,这样你就可以在你的系统上拥有正确的时间。
示例 ntp 服务器:pool.ntp.org
由于这些日志似乎没有影响实例,如果它们淹没了您的 Stackdriver,您可以从默认接收器中排除这些日志。
使用
1 | gcloud logging sinks update _Default --log-filter"$(echo $(gcloud logging sinks describe _Default --format"value(filter)")"AND NOT textPayload:"uc_update: Value too old:"")" |
您只是得到一个重复的消息,因为您的消息具有相同的时间戳值
对于两者,要添加到内部缓存的新值和添加到缓存的同名的最后一个值。
值时间 = 1517218302.393
上次缓存更新 = 1517218302.393
您可以参考 collectd 常见问题页面 (https://collectd.org/faq.shtml)。它解释了这种消息,包括一个与您得到的消息相匹配的示例。
您应该检查:
- 如果您的实例中运行了多个 collectd 守护程序(
1 | ps aux | grep collectd |
- 时间戳是否随着每条消息而增加?如果是这种情况,则可能是另一个主机报告数据使用相同的主机名。