简介


  • 监控是运维工作中的一个重要组成部分,今天介绍一套新的监控工具,方便好用,扩展性强,这套工具有三个组件,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. 日志查看工具 logviewer pro的使用

    1.logViewer Pro 介绍 logViewer Pro 是一款log文件查看器,它可以在短短数秒内打开上G的LOG文件,支持高亮某行文字(例如警告,错误),支持Unicode名字,支持查看的 ...

  2. MD5:js,java,C#三种语言加密结果不同解决办法

    最近遇到前端js MD5加密与后端C#与Java MD5加密结果不一致的问题,所以写个关于此问题的解决办法 前端js引用的md5类库,类库地址:https://blueimp.github.io/Ja ...

  3. ArcGIS Server 10.1新特性系列---动态图层

    ArcGIS Server 10.1新特性里面有几个新功能是非常棒的,其中有一个就是动态图层.动态图层不是一种新发明的图层,而是说在arcgis server的web应用中可以动态的配置其渲染和内容功 ...

  4. rabbitmq系列(二)几种常见模式的应用场景及实现

    一.简单模式 原理:生产者将消息交给默认的交换机,交换机获取消息后交给绑定这个生产者的队列(投递规则为队列名称和routing key 相同的队列),监听当前队列的消费者获取信息并执行消费逻辑. 场景 ...

  5. 关于java php go 中AES加解密秘钥长度问题

    今天心血来朝,想用go把php中的一个小功能重写一下,但在解密aes加密的数据时碰到了个坑! php的mcrypt拓展(貌似php7.1版本以上不支持了)提供了aes的加解密: 而且php aes 的 ...

  6. map set vector用法小总结

    1.Map 定义 #include<map> map<string,bool> mp; 插入 mp[s]=; mp.insert(make_pair(s,)); 输出 cout ...

  7. 【C_Language】---常用C语言控制台函数总结(持续更新)

    写了这么久的C程序,每次看到输出的结果都是从上往下排列的黑白框,有没有感觉很无聊啊?今天再次总结一个常用的控制台函数,能够帮助你做好一个好看的界面. 1.设置光标位置代码如下: int main(vo ...

  8. Unity3D游戏开发培训

    Unity3D游戏开发培训 作者:Jesai 时间:2017-01-08 修改:2017-01-09 12:36:15 1         项目的构成 图1-1 如图1-1所示,Unity3D的项目构 ...

  9. xlwings excel(四)

    前言 当年看<别怕,Excel VBA其实很简单>相见恨晚,看了第一版电子版之后,买了纸质版,然后将其送人.而后,发现出了第二版,买之收藏.之后,发现Python这一编程语言,简直是逆天, ...

  10. 51Nod 1238 - 最小公倍数之和 V3(毒瘤数学+杜教筛)

    题目 戳这里 推导 ∑i=1n∑j=1nlcm(i,j)~~~\sum_{i=1}^{n}\sum_{j=1}^{n}lcm(i,j)   ∑i=1n​∑j=1n​lcm(i,j) =∑i=1n∑j= ...