Grafana+InfluxDB 快速搭建酷炫的监控系统

前言

这一年一直在为公司开发一个全网的新闻舆情爬虫,随着开发的逐步推动,一个高效直观的监控系统便提上了日程,当时运维小姐姐使用Flask开发了一套监控系统,基于数据库中每时每刻保存的爬虫结果来展示监控的数据。每隔一段时间进行爬虫抓取数量的汇报。git

可是逐渐的这套监控的弊端展示了出来。github

首先,不够实时,我不能实时的知道程序是否发生了异常,是否爬虫调度出现问题。docker

其次,数据不够直观,几千个网站的抓取监控,在眼花缭乱的数据中,很难知道是否发生了异常。数据库

可是运维小姐姐还有不少更重要的任务,因而进一步监控的计划也就没有继续下去,这期间我一直是本身看日志来查找错误。后端

好在及时遇到了Grafana+Influxdb这一套高效酷炫,开箱即用的监控系统。bash

InfluxDB

InfluxDB是一个由InfluxData开发的开源时序型数据库。它基于Golang开发,着力于高性能地查询与存储时序型数据。InfluxDB被普遍应用于存储系统的监控数据,IoT行业的实时数据等场景。服务器

Github: github.com/influxdata/…运维

官网: www.influxdata.com/products/in…函数

基本上InfluxDB的查询于其余的关系型数据库很相似,很是容易上手。工具

Grafana

Grafana 是一个开源的可视化工具,后端也是基于Golang开发,支持很是多的数据源,还有很是多的第三方插件。

文档: grafana.com/docs/

Github: github.com/grafana/gra…

快速部署Grafana+InfluxDB

固然安装部署也很是方便,直接按照文档我也没有遇到什么问题。

可是在这里我使用Docker来部署这样一套监控系统。

我在Github上找到一个很是不错的repo,镜像中做者还加入了Telegraf,这样咱们也能够同时监控咱们服务器的各类资源与负载了。

github.com/samuelebist…

若是你的服务器上已经安装了Docker,那么直接运行

docker run --ulimit nofile=66000:66000 \
  -d \
  --name docker-statsd-influxdb-grafana \
  -p 3003:3003 \
  -p 3004:8888 \
  -p 8086:8086 \
  -p 8125:8125/udp \
  samuelebistoletti/docker-statsd-influxdb-grafana:latest
复制代码

这样你就直接部署好了Grafana+InfluxDB了。

固然你能够直接clone下来,根据Grafana InfluxDB Telegraf的配置来本身build容器。

接着访问对应IP的 3003端口就能够了。

这个镜像中已经建立了使用Telegraf的监控,这里就使用Telegraf的监控数据来做为例子。

左上角加号新建Dashboard

点击Add Query

这里基本上数据可视化的SQL编写,选择cpu的数据,usage_user数据。这时上面的图表就会有图像出现了。

能够在图标上拉大显示范围,也能够经过右上角的时间范围来设置显示的时间范围。

若是想要监控本身的数据,就须要在InfluxDB建立本身的数据库来储存数据了。InfluxDB很是方便的提供HTTP接口来插入数据建立数据库等等等,又有不少Client支持。

在setting中的Data Source中添加新的InfluxDB数据库,而后依然是新建Dashboard。

一样InfluxDB支持不少的数据聚合和函数,包括平均值,最大值,最小值,平均值,还有求和,功能很是多。

在这样一番配置以后,很快你就会拥有一个简单易用酷炫的监控系统了。

Grafana中的设置和功能很是多,本篇文章只是一个简单的指导。若是你想要邮件提醒之类的功能,就本身研究吧,哈哈哈哈。

部署这个监控系统不久,立刻就派上了用场,就在写文章的时候。

立刻上线解决了问题。看来一个好用的监控系统实在是太有必要了。

相关文章
相关标签/搜索