[经验交流] 试用基于 influxdb+kapacitor 的监控系统

2017年10月16日:数据库

使用中发现kapacitor的ui过于简单,不能知足实际工做须要,现已切换到grafanajson

 

---------服务器

两个月前试用了基于 elasticsearch + xpack (watch) 的监控系统,发现了一个问题:elasticsearch 做为时序数据库使用时性能较差,在我目前的硬件配置下(es 主机内存 8G),使用 grafana 展现两个月以上的数据时,在读取数据的过程当中出现明显卡顿,es 的资源占用率几乎到100%。所以,我又试用了 基于 influxdb+kapacitor 的监控系统。restful

 

1. 数据搜索性能

初步印象:搜索大量时序数据时 influxdb 的性能强于 es。多是 es和 influxdb的定位原本就不一样,一个是全文搜索引擎,一个是时序数据库,术有专攻。 并发

 

2. 资源占用率

influxdb 资源占用率显著低于 es,可能与它用 go 语言编写有关elasticsearch

 

3. 报警功能

influx 的 kapacitor 功能与 es 的 watch (在 x-pack 包中) 相似,均可以用做报警,influx 还提供了 ui 系统 chronograf 来管理 kapacitor,借助 chronograf 能够无障碍的编写报警监控任务。这一点比 es 的 watch 方便多了。post

 

kapacitor 支持 http post 方式发送报警信息,数据是 json 格式,其中 "message" 键的值能够自定义。为了能经过 http post  发送 短信报警,我另外编写了一个 restful 的短信发送服务器,能够接收包含 "message" 键值的 json 数据,( "message" 的值包含手机号码和短信内容,用 | 隔开),并发送短信:性能

{“message”:"138000000,156000000 | 短信报警内容"}ui

 

附1:kapacitor http post 发送的数据内容搜索引擎

{
"id":"...",
"message":"值能够在chronograf ui上自定义",
"details":"...",
"time":"...",
"duration":..,
"level":"...",
"data":...
}

 

附2:经过 chronograf 建立 kapacitor 监控报警任务

* 选择时序数据

 

 

* 设置报警条件

 

* 设置报警信息

相关文章
相关标签/搜索