我已经设置了 Graphite 和 statsd,它们都运行良好。我使用 graphite/examples 中的 example-client.py 来测量负载值,一切正常。我
开始使用 statsd 进行测试,起初看起来还不错,因为它生成了一些图表,但现在看起来不太好。
首先,这是我的storage-schema.conf
:
priority = 100
pattern = .*
retentions = 1m:395d
我正在使用此命令将数据发送到 statsd:
echo 'ssh.invalid_users:1|c'| nc -w 1 -u localhost 8126
它执行后,我在 Graphite 网页界面上单击“更新图表”,它会生成一条线,再次单击“更新”,该线就会消失。就像这1和这2
如果我执行上一个命令 5 次,图形线将达到 2,并且它实际上会保存它。再次运行相同的命令两次,图形线达到 2 并消失。
我找不到我配置错误的地方。
预期用途如下:
tail -n 0 -f /var/log/auth.log|grep --line-buffered "Invalid user" | while read line; do echo "ssh.invalid_users:1|c" | nc -w 1 -u localhost 8126; done
编辑:
在新系统上,我使用最新版本的 graphite、carbon、nodejs、statsd 重新安装,但运行情况相同。
虽然 tail-ing/opt/graphite/storage/log/carbon-cache/carbon-cache-a/query.log我得到:cache query for "stats_counts.ssh.invalid_users" returned 0 values
cache query for "stats.ssh.invalid_users" returned 0 values
每当我按更新在 webapp 中。我注意到returned 1 values
绘制线条时它会随机显示,但会恢复returned 0 values
,线条会消失。
答案1
问题在于存储模式保留:
retentions = 1m:395d
-取自 graphite wikihttp://graphite.wikidot.com/installation
我不得不使用retentions = 10:2160,60:10080,600:262974
或类似的东西。这考虑了每 10 秒保存的值。
此外,尽管我在更改 storage-schema.conf 后重新启动了 graphite,但我不得不使用不同的指标名称,因为以前的指标名称将保留相同的行为/保留(我可以重现这一点)。因此,我不得不使用 ,
而不是。echo 'ssh.invalid_users:1|c'
echo 'ssh.invalid_userstest2:1|c'