简介


  • 监控是运维工作中的一个重要组成部分,今天介绍一套新的监控工具,方便好用,扩展性强,这套工具有三个组件,Grafana & Graphite & Collectd;

  • Grafana 是一个开源的强有力的数据展示、量化分析工具,数据源包括 graphite、prometheus、mysql、influxdb 等等,可以直接在页面上组装语句,另外还可以对资源实现可用性和性能监控报警,同时还支持集成OpenLDAP;

  • Graphite 是一个用Python写的开源的监控绘图工具,由三个组建组成,分别是 carbon(基于 Twisted 的进程,用来接收数据)whisper(专门存储时间序列类型数据的小型数据库)graphite-web(基于 Django 的网页应用程序),我们这里使用其存储监控数据;

  • Collectd 是一个用C语言开发的守护进程,能够周期性的收集系统和应用程序的性能指标,同时给各种存储方式提供不同的存储机制,我们这里使用其收集数据并将数据推送到 graphite 中存储;

  • 目前云平台使用普遍且方便,大多数云平台有完善详尽的监控预警系统,但对于业务需要使用多种云平台或混合云的情况却较难应对;这套监控体系可综合各种系统监控、业务监控、业务数据展示等功能,统一入口,可谓运维必备利器;现将该系统的创建分享方向给大家,希望对需要的小伙伴有所帮助;

  • 逻辑结构图如下:

  • 下图为grafana 可以接收的数据源列表

graphite 部署


  • 数据做持久存储
docker run -d \
--name ops-graphite \
--restart=always \
-p 8880:80 \
-p 2003-2004:2003-2004 \
-p 2023-2024:2023-2024 \
-p 8125:8125/udp \
-p 8126:8126 \
-v /opt/graphite_data/whisper:/opt/graphite/storage/whisper:rw \
-v /opt/graphite_data/redis:/var/lib/redis:rw \
-v /opt/graphite_data/log:/var/log:rw \
graphiteapp/graphite-statsd
  • 可通过浏览器访问 graphite 页面,http://10.0.0.1:8880,默认用户名:root,密码:root,后续要将其加入到grafana的数据源

collectd 部署


  • 替换 GRAPHITE_HOST 为你graphite的主机地址,我这里使用域名,方便管理
docker run -d \
--name ops-collectd \
--net=host \
--privileged \
--restart always \
-v /:/hostfs:ro \
-e GRAPHITE_HOST=collectd.ops.glinux.top \
williamguozi/collectd:latest

grafana 部署


  • 数据做持久存储,可通过 -v /opt/grafana/grafana.ini:/etc/grafana/grafana.ini -v /opt/grafana/ldap.toml:/etc/grafana/ldap.toml 将配置放置外部管理(可选)
docker run -d \
--name ops-grafana \
-p 3000:3000 \
-v /opt/grafana:/var/lib/grafana \
grafana/grafana

grafana 配置


  • 经过上诉配置,就可以打开grafana的管理界面了,http://10.0.0.1:3000,默认用户名:admin,密码:admin

  • 添加 graphite 数据源,配置用户名密码,测试连接状态

  • 设置告警通知方式,这里使用slack方式通知到频道,也可尝试其他通知方式

  • 左侧列表添加 Dashboard -> Panel,编辑Panel,添加数据,比如cpu利用率

  • 调整单位

  • 修改 Panel 名称,添加报警规则

效果展示


  • 当资源指标达到阈值就会报警到Slack相应的频道

  • 另外,可以通过安装 dashboards 模版使数据展示更漂亮

总结


  • 本文主要就操作系统的基础监控做例子,展示整个部署过程及展示和报警;
  • 当然其也能够对时下比较流行的kubernetes进行详细的监控,后面会写文介绍;
  • 另外,grafana可以直接将mysql作为数据源,将业务数据图标展示,体现DevOps价值;

参考文档


Grafana & Graphite & Collectd:监控系统的更多相关文章

  1. WIndows下使用Grafana+InfluxDB打造监控系统

     前言 对于一个运维DBA来说,了解数据库的TPS.QPS很有必要(QPS:每秒查询数,即对数据库每秒的DML的操作数:TPS:每秒事物处理,即对数据库每秒DDL操作数),通过了解他们,可以掌握一个实 ...

  2. Grafana+Zabbix+Prometheus 监控系统

    环境说明 软件 版本 操作系统 IP地址 Grafana 5.4.3-1 Centos7.5 192.168.18.231 Prometheus 2.6.1 Centos7.5 192.168.18. ...

  3. Prometheus+Grafana+Altermanager搭建监控系统

    基本概念 Prometheus 时间序列化数据库,我的理解就是将数据打上标签,以时间维度存储.后面有机会在深入研究. Prometheus架构如下: Grafana Prometheus中存储的数据, ...

  4. 基于Prometheus+Grafana+AlertManager的监控系统

    一.Prometheus 1.1 简介 Prometheus是一套开源的监控&报警&时间序列数据库的组合,基于应用的metrics来进行监控的开源工具 . 1.2 下载&安装 ...

  5. 使用Kafka、Elasticsearch、Grafana搭建业务监控系统(三)Elasticsearch

    https://blog.csdn.net/tonywu1992/article/details/83576863

  6. 实战 Prometheus 搭建监控系统

    实战 Prometheus 搭建监控系统 Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于 ...

  7. 【监控】使用 Grafana、collectd 和 InfluxDB 打造现代监控系统

    参考资料:Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器:http://www.oschina.net/p/grafana 使用 Grafana.collectd 和 ...

  8. 使用 Grafana、collectd 和 InfluxDB 打造现代监控系统

    想打造 New Relic 那样漂亮的实时监控系统我们只需要 InfluxDB/collectd/Grafana 这三个工具,这三个工具的关系是这样的: 采集数据(collectd)-> 存储数 ...

  9. 使用cAdvisor+Influxdb+Grafana监控系统

      今天准备开始研究研究当前非常流行的Grafana+Influxdb监控系统,两者都是非常轻量级的应用但是功能却异常强大,可以说Grafana在作图显示方面真的毫不逊色与Cacti. 组件介绍 cA ...

随机推荐

  1. 图解 kubernetes scheduler 架构设计系列-初步了解

    资源调度基础 scheudler是kubernetes中的核心组件,负责为用户声明的pod资源选择合适的node,同时保证集群资源的最大化利用,这里先介绍下资源调度系统设计里面的一些基础概念 基础任务 ...

  2. React框架随笔

    React框架随笔 现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了 ...

  3. kubespy 用bash实现的k8s动态调试工具

    原文位于 https://github.com/huazhihao/kubespy/blob/master/implement-a-k8s-debug-plugin-in-bash.md 背景 Kub ...

  4. 学习集合Collection_通用方法

    Collection 常用接口 集合List和Set通用的方法 public boolean add(E e) 添加对象到集合 public boolean remove(E e) 删除指定元素 pu ...

  5. Docker——WIN7 安装 Docker实战与入门

    1.Docker简介 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Lin ...

  6. php5升php7代码修改整理

    1. 为什么升级至php7 a.安全需要 过早以至于不维护的php版本难免会有未修补的漏洞,安全性要求较高的行业是要及时升级的. b.性能提升(开启opcache hugepage) 据说性能提升一倍 ...

  7. cogs 186. [USACO Oct08] 牧场旅行 树链剖分 LCA

    186. [USACO Oct08] 牧场旅行 ★★☆   输入文件:pwalk.in   输出文件:pwalk.out   逐字节对比时间限制:1 s   内存限制:128 MB n个被自然地编号为 ...

  8. 七彩线段 - 装压dp (牛客网)

    题目描述听说彩虹有七种颜色?一维坐标轴上n条线段,每条线段左端点l,右端点r,颜色为c,从中选m种颜色的互不接触的线段,每种颜色可选多条,所选线段的总长度最长为多少?输入描述: 第一行2个整数 n, ...

  9. java: integer number is too large

    今天想定义一个类常量,结果如下面那样定义,确报错了.error is: Integer number too large public static final Long STARTTIME = 14 ...

  10. spring boot 集成apollo 快速指南

    目前市面上流行的三大配置中心框架:Spring CLoud Config .Alibaba Nacos 以及携程apollo, 我们相应架构组号召,就使用Apollo吧. Work Flow 简单解释 ...