在我们的实验室中,我们目前使用两个系统来远程监控敏感数量等:
Icinga2,作为监视系统,从称为Watchdog的日志记录DAQ中读取数据,并在测量值超过用户定义的阈值时创建警报;
Graphite绘制来自Carbon的数据,通过网络或其他方式(保存在磁盘上)并将其存储到网页上,以便远程访问.
到目前为止,我们只能让Icinga2 写入 Graphite上收到的任何内容,以便我们可以看到它.
是否可以从Graphite中读取 Icinga2 ?
还有其他程序直接向Graphite写入内容,并且无法通过DAQ Watchdog从Icinga读取(缺少端口).
理想情况下,我们希望在Graphite上创建警报(Icinga2可以做到).
我一直在寻找这个,但没有找到任何人谈论如何设置和配置StatsD以及Graphite在不同的服务器上进行通信.我目前所有东西都在一个上运行,但我尝试将它们分开是不成功的.
这是我如何设置 StatsD exampleConfig.js
exampleconfig
{
graphitePort: 2003
, graphiteHost: "(graphite server IP)"
, port: 8125
}
Run Code Online (Sandbox Code Playgroud)
我能想到在另一个盒子上设置的唯一另一件事就是example-client.py.
currently it says this:
CARBON_SERVER = '127.0.0.1'
CARBON_PORT = 2003
Run Code Online (Sandbox Code Playgroud)
我认为它需要留在本地主机与同一服务器上的耳语或石墨进行通信.我有我的防火墙设置来监听2003,并使用数据包转储服务器确实从statsd获取UDP.它似乎没有被碳和石墨消耗掉.
我错过了什么?
还有什么建议用于缩放statsd石墨设置?我现在有自己的statsd和另一台服务器上的石墨+碳+耳语.statsd运行的能力最大还是石墨盒?我想知道这一点,因为我很快就会每天向服务器发送数百万比特的数据进行测试.
我们正在尝试将Graphite用于(近乎)实时图形化Web系统.然而,我们似乎无法以比1秒更新率更快的速度加速石墨.最终我们希望有100毫秒的更新
通过阅读常见问题解答,它听起来像石墨很快 - 但这要么是非常误导,要么我不理解如何加速石墨
耳语的时间信息似乎使用UNIX时间戳
Graphite的可扩展性如何?
从CPU的角度来看,Graphite在前端和后端都是水平扩展的,这意味着你可以简单地在混合中添加更多的机器以获得更多的吞吐量.它也是容错的,因为丢失后端机器将导致最小量的数据丢失(无论该机器在内存中缓存了什么),并且如果您有足够的容量来处理负载,则不会中断系统.
从I/O的角度来看,在负载下,Graphite可以非常快速地对许多不同的文件执行大量微小的I/O操作.这是因为发送到Graphite的每个不同指标都存储在自己的数据库文件中,类似于在RRD工作之上构建的工具(drraw,Cacti,Centreon等)的数量.实际上,Graphite最初确实使用RRD进行存储,直到出现需要新存储引擎的基本限制.
高容量(几千个不同的指标稍微更新)几乎需要一个好的RAID阵列.如果磁盘无法跟上发生的大量小写操作(每个数据点只有几个字节,但大多数磁盘每秒执行的操作数不会超过几千次,即使如此,Graphite的后端也会缓存传入的数据他们很小).当发生这种情况时,Graphite的数据库引擎,低声,允许碳一次写入多个数据点,从而增加整体吞吐量,但代价是保留多余数据缓存在内存中直到可以写入.
图表的实时性如何?
非常.即使在负载很重的情况下,每个时间间隔内的指标数量远远大于存储系统执行I/O操作的速率,并且大量数据点正在缓存在存储管道中(请参阅上一个问题以获得解释),Graphite仍然绘制实时图形.诀窍在于,当Graphite webapp收到绘制图形的请求时,它同时从磁盘以及预存储缓存(如果您有多个后端服务器可以分发)中检索数据,并将两个来源组合在一起.用于创建实时图表的数据.
此外,他们只显示秒数和小数点:http:
//graphite.readthedocs.org/en/latest/config-carbon.html
和
from and until must be a time specification conforming to the AT-STYLE time specification described这里:http://oss.oetiker.ch/rrdtool/doc/rrdfetch.en .html.
http://graphite.wikidot.com/url-api-reference
那是什么?石墨快吗?或者只是处理大型数据集的速度很快 - 我们正在寻找一个简单易用的分组数据网络接收器来直观显示 - 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登录以及登录用户的正确行为:

有任何想法吗?谢谢,
我能够遵循这里几乎所有的指示
但是当我到达时
[idf@node1 graphite]$ cd /opt/graphite/webapp/graphite/
[idf@node1 graphite]$ sudo python manage.py syncdb
Could not import graphite.local_settings, using defaults!
/opt/graphite/webapp/graphite/settings.py:244: UserWarning: SECRET_KEY is set to an unsafe default. This should be set in local_settings.py for better security
warn('SECRET_KEY is set to an unsafe default. This should be set in local_settings.py for better security')
ImportError: No module named fields
[idf@node1 graphite]$
Run Code Online (Sandbox Code Playgroud)
不知道为什么我收到此错误?
我也试过这些说明,它大约挂在同一个地方
[idf@node1 graphite]$ sudo PYTHONPATH=/opt/graphite/webapp/ django-admin.py syncdb --settings=graphite.settings
/var/tmp/sclHwyLM6: line 8: PYTHONPATH=/opt/graphite/webapp/: No such file or directory …Run Code Online (Sandbox Code Playgroud)