快速搭建高效酷炫的监控系统

ゞ 浴缸里的玫瑰 2024-04-17 06:31 157阅读 0赞

前言

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

但是逐渐的这套监控的弊端展现了出来。

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

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

但是运维小姐姐还有很多更重要的任务,于是进一步监控的计划也就没有继续下去,这期间我一直是自己看日志来查找错误。

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

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,那么直接运行

  1. docker run --ulimit nofile=66000:66000 \
  2. -d \
  3. --name docker-statsd-influxdb-grafana \
  4. -p 3003:3003 \
  5. -p 3004:8888 \
  6. -p 8086:8086 \
  7. -p 8125:8125/udp \
  8. samuelebistoletti/docker-statsd-influxdb-grafana:latest
  9. 复制代码

这样你就直接部署好了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中的设置和功能非常多,本篇文章只是一个简单的指导。如果你想要邮件提醒之类的功能,就自己研究吧,哈哈哈哈。

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

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

转载于:https://juejin.im/post/5d5f79a45188250dd37b60df

发表评论

表情:
评论列表 (有 0 条评论,157人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Zabbix监控系统

    引言: zabbix是目前系统监控领域的佼佼者,其开源且提供了强大完善的Web界面,并且兼容各种不同的设备和系统,支持多种平台,其背后的公司为Zabbix持续演进提供了技术支持