我有石墨+收集设置来收集系统相关的指标.这个问题与collectd的内存插件有关.
我的infra有这种格式用于使用collectd收集内存使用数据:
<cluster>.<host>.memory.memory-{buffered,cached,free,used}
Run Code Online (Sandbox Code Playgroud)
我想绘制每个主机使用的内存百分比.
所以基本上,我必须做这样的事情:
divideSeries(sumSeriesWithWildCards(*.*.memory.memory-{buffered,cached,free},1),sumSeriesWithWildCards(*.*.memory.memory-{buffered,cached,free,used}),1)
Run Code Online (Sandbox Code Playgroud)
但我无法做到这一点,因为divideSeries希望除数度量只返回一个度量.
我基本上想要一个目标来监控集群中的所有主机.
我怎样才能做到这一点?
我正在使用Graphite和Collectd来监控我的服务器.特别是,我正在使用tail pluggin来计算失败的SSH登录.我正在使用这个指标的计数器,所以期望看到数据点的1,2,3,0等.然而,我所看到的是0.1,0.2,0.3,0等......在我看来,像Graphite这样提供每秒计数.我这样说是因为我的保留策略是每10秒一个数据点,持续两个小时.因此,每10秒登录失败=每秒0.1次.我正在图中看到这个.它看起来像这样:

此外,当我缩小到下一个保留级别时,数字会相应调整:因此1登录失败,显示为0.1现在显示为远低于此:0.017或其他.
我不认为这与使用的聚合方法有关:即使最好的数据也是关闭的.如何让Graphite将此指标视为纯粹的原始计数器?
这是我的storage-schemas.conf(保留策略):
[my_server]
pattern = .*
retentions = 10s:2h,1m:2d,30m:400d
Run Code Online (Sandbox Code Playgroud)
这是我对collectd尾部插件的配置:
<Plugin "tail">
<File "/var/log/auth.log">
Instance "auth"
<Match>
Regex "sshd[^:]*: Failed password"
DSType "CounterInc"
Type "counter"
Instance "sshd-invalid_user"
</Match>
</File>
</Plugin>
Run Code Online (Sandbox Code Playgroud)
这是我的write_graphite插件的配置(将数据发送到石墨):
<Plugin write_graphite>
<Node "my_server_name">
Host "localhost"
Port "2003"
Protocol "tcp"
LogSendErrors true
Prefix "collectd."
#Postfix ""
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Node>
</Plugin>
Run Code Online (Sandbox Code Playgroud)
我尝试设置StoreRates falsewrite_graphite插件,但这不起作用.它确实改变了行为:当我执行单个失败的SSH登录时,该指标显示为1.但是,它没有降回到0.当我再执行两次失败的登录时,指标弹出最多3次.
同样感兴趣的是:我还加载了用户插件,它只显示登录的用户数量,并且工作正常:当我进入SSH时显示1,当我再次SSH时显示2,当我退出一个SSH时返回1.对于StoreRates的两种设置.所以看起来我想要的东西有可能以某种方式.也许不是使用tail pluggin.
StoreRates false可以在以下图表中看到SSH登录以及登录用户的正确行为:

有任何想法吗?谢谢,
我有以下格式的石墨数据:
app.service.method_*.m1_rate (rate of calls per minute)
app.service.method_*.avg_time (avg response time per minute)
Run Code Online (Sandbox Code Playgroud)
我想获得给定方法每分钟运行总估计时间的图表。换句话说 - 将速率乘以平均时间,这样我就可以从一张图中了解到什么调用最多。如果我能继续下去,我就可以将这个(我知道如何:))限制到这种乘法的前 N 个结果。
费率本身都没有给我信息(非常快的呼叫率高不是问题),也不是平均时间(每 5 分钟调用一次服务的高平均时间也不是问题)。
有什么建议?
我正在收集Collectd 5.4.0在jiffies中测量的cpu使用率,然后将结果存储在InfluxDB 0.9.4中.我使用以下查询从InfluxDB获取cpu百分比:
SELECT MEAN(value) FROM cpu_value WHERE time >= '' and time <= '' GROUP BY type,type_instance
Run Code Online (Sandbox Code Playgroud)
但是当我绘制结果时,没有任何意义.cpu使用中没有模式.如果我做错了,请告诉我.
谢谢
我使用Grafana(v2.1.3)进行指标可视化.指标来自collectd收集的Graphite.目标图形是显示自由磁盘空间百分比为多个节点,例如假设文件夹是/ data,因此表示以字节为单位的可用空间的度量标准是:
collectd.$node.df-data.df_complex-free
Run Code Online (Sandbox Code Playgroud)
表示总空间的指标是以下总和:
collectd.$node.df-data.*
Run Code Online (Sandbox Code Playgroud)
所以,我有以下配置:
Series A: collectd.$node.df-data.df_complex-free (Invisible)
Series B: collectd.$node.df-data.* (Invisible)
Series C: alias(asPercent(#A, sumSeries(#B)), 'Free space')
Run Code Online (Sandbox Code Playgroud)
这里$ node是一个从下拉列表中选择的变量(All,node1,node2,node3等).它的工作原理当选择一个特定节点如预期,但错误的所有选项被选中,(例如,如果每个节点的比例为〜95%,那么当所有被选中的24%显示).
另一种选择(可能更可取:
Series A: collectd.$node.df-data.df_complex-free
Series B: groupByNode(collectd.$node.df-data.*, 1, 'sum')
Series C: scale(divideSeries(#A, #B), 100)
Run Code Online (Sandbox Code Playgroud)
同样对于单个节点它很好,但是一旦选择了"所有节点"选项,则显示以下错误:
divideSeries第二个参数必须正好引用1个系列
有任何想法吗?我相信应该有简单的解决方案.
默认情况下,Collectd 将其插件存储在哪里?我缺少一个 perl 插件,我想确保它不是因为安装被灌输。
我的collectd配置看起来像:
LoadPlugin nginx
...
<Plugin "nginx">
URL "http://localhost:8080/nginx_status?auto"
</Plugin>
Run Code Online (Sandbox Code Playgroud)
Nginx conf看起来像:
server {
listen 8080;
index index.html index.htm;
server_name localhost;
root /var/www/default/;
location / {
try_files $uri $uri/ /index.html;
}
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行
$ curl http://localhost:8080/nginx_status?auto
Run Code Online (Sandbox Code Playgroud)
它输出:
Active connections: 1
server accepts handled requests
56 56 322
Reading: 0 Writing: 1 Waiting: 0
Run Code Online (Sandbox Code Playgroud)
但是当开放石墨时,没有nginx图可用.Collectd和Nginx重启了很多次.有什么建议?
我想用collectd部署influxDB。对于以前的版本,即 influxDB 1.8,它是受支持的。最新版本的 influxdb ie 2.0 是否支持collectd?
每当我尝试从诸如top或mpstat特别是collectd服务之类的命令中计算 CPU 利用率百分比时,我都无法获得准确的 100% CPU 利用率。
例如top来自 Amazon EC2 上的测试服务器的结果:
Cpu(s): 13.6%us, 31.6%sy, 0.0%ni, 53.2%id, 0.0%wa, 0.0%hi, 0.0%si, 1.7%st
Run Code Online (Sandbox Code Playgroud)
无论我如何将百分比加起来,我都永远无法获得 100% 的 CPU,当然也不是以任何合乎逻辑的方式。大多数情况下,这似乎是舍入错误;100.1% 或 99.9%,但有时我会超过 110%。这通常发生在steal相对较高的情况下,例如collectd报告的一种情况是~21.44% 偷窃和 ~88% 空闲,只是这两个已经远远超过 100%。我知道ni(nice) 也算在us(user) 中,所以我不应该添加它,但这仍然不起作用。
有谁知道如何将这些加起来 100% 或如何解释collectd有时报告的例外情况?
StatsD与Riemann有什么区别?哪一个在大型分布式系统上表现更好?我们有一个基于Java的分布式平台,我们希望监控应用程序指标和一些警报.我们知道仪器不是免费的,所以理想情况下我们正在寻找一种高度可扩展的应用程序监控框架,它可以为我们的平台/应用程序增加最少的仪表成本,并能够进行各种聚合等等.我也明白我们可以建立两者兼而有之的东西,但我想不出原因?因为两者似乎都在进行聚合等等,但是我无法确定哪一个更合适,或者为什么一个比另一个更好.如果有人可以分享他们在行业中使用这些工具的经验,那将是一个很大的帮助.