标签: collectd

Graphite + Collectd - 如何为每个主机绘制内存使用百分比?

我有石墨+收集设置来收集系统相关的指标.这个问题与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

6
推荐指数
1
解决办法
5615
查看次数

如何让Graphite简单地计算计数器,而不是对它们进行时间评分

我正在使用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登录以及登录用户的正确行为:

图片

有任何想法吗?谢谢,

graphite collectd graphite-carbon

5
推荐指数
1
解决办法
2678
查看次数

如何在 Grafana / Graphite 中将两个系列列表相乘?

我有以下格式的石墨数据:

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 分钟调用一次服务的高平均时间也不是问题)。

有什么建议?

graphite collectd grafana

5
推荐指数
1
解决办法
4739
查看次数

如何在InfluxDB中获取Collectd测量的CPU使用百分比

我正在收集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使用中没有模式.如果我做错了,请告诉我.

谢谢

collectd influxdb

5
推荐指数
1
解决办法
1万
查看次数

使用Grafana获取多个节点的可用磁盘空间百分比

我使用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个系列

有任何想法吗?我相信应该有简单的解决方案.

metrics collectd grafana

5
推荐指数
1
解决办法
3089
查看次数

默认的 collectd pluggindir 在哪里?

默认情况下,Collectd 将其插件存储在哪里?我缺少一个 perl 插件,我想确保它不是因为安装被灌输。

collectd

4
推荐指数
1
解决办法
2415
查看次数

收集和Nginx插件无法正常工作

我的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重启了很多次.有什么建议?

nginx collectd

4
推荐指数
1
解决办法
4230
查看次数

收集于InfluxDB2.0

我想用collectd部署influxDB。对于以前的版本,即 influxDB 1.8,它是受支持的。最新版本的 influxdb ie 2.0 是否支持collectd?

collectd telegraf influxdb-2

4
推荐指数
1
解决办法
2138
查看次数

Linux CPU 百分比加起来不是 100%

每当我尝试从诸如topmpstat特别是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有时报告的例外情况?

linux cpu-usage collectd

3
推荐指数
1
解决办法
2744
查看次数

StatsD与Riemann有什么区别?哪一个在大型分布式系统上表现更好?

StatsD与Riemann有什么区别?哪一个在大型分布式系统上表现更好?我们有一个基于Java的分布式平台,我们希望监控应用程序指标和一些警报.我们知道仪器不是免费的,所以理想情况下我们正在寻找一种高度可扩展的应用程序监控框架,它可以为我们的平台/应用程序增加最少的仪表成本,并能够进行各种聚合等等.我也明白我们可以建立两者兼而有之的东西,但我想不出原因?因为两者似乎都在进行聚合等等,但是我无法确定哪一个更合适,或者为什么一个比另一个更好.如果有人可以分享他们在行业中使用这些工具的经验,那将是一个很大的帮助.

collectd statsd riemann

3
推荐指数
1
解决办法
1475
查看次数