Grafana & Graphite & Collectd:监控系统
简介
监控是运维工作中的一个重要组成部分,今天介绍一套新的监控工具,方便好用,扩展性强,这套工具有三个组件,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价值;
参考文档
- Installing Graphite: https://graphite.readthedocs.io/en/latest/install.html
- Graphite简介: https://my.oschina.net/u/1263964/blog/701664
- Graphite 和 Grafana 简介: https://yumminhuang.github.io/post/graphiteandgrafana
- 创建一个slack api: https://api.slack.com/start
Grafana & Graphite & Collectd:监控系统的更多相关文章
- WIndows下使用Grafana+InfluxDB打造监控系统
前言 对于一个运维DBA来说,了解数据库的TPS.QPS很有必要(QPS:每秒查询数,即对数据库每秒的DML的操作数:TPS:每秒事物处理,即对数据库每秒DDL操作数),通过了解他们,可以掌握一个实 ...
- Grafana+Zabbix+Prometheus 监控系统
环境说明 软件 版本 操作系统 IP地址 Grafana 5.4.3-1 Centos7.5 192.168.18.231 Prometheus 2.6.1 Centos7.5 192.168.18. ...
- Prometheus+Grafana+Altermanager搭建监控系统
基本概念 Prometheus 时间序列化数据库,我的理解就是将数据打上标签,以时间维度存储.后面有机会在深入研究. Prometheus架构如下: Grafana Prometheus中存储的数据, ...
- 基于Prometheus+Grafana+AlertManager的监控系统
一.Prometheus 1.1 简介 Prometheus是一套开源的监控&报警&时间序列数据库的组合,基于应用的metrics来进行监控的开源工具 . 1.2 下载&安装 ...
- 使用Kafka、Elasticsearch、Grafana搭建业务监控系统(三)Elasticsearch
https://blog.csdn.net/tonywu1992/article/details/83576863
- 实战 Prometheus 搭建监控系统
实战 Prometheus 搭建监控系统 Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于 ...
- 【监控】使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
参考资料:Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器:http://www.oschina.net/p/grafana 使用 Grafana.collectd 和 ...
- 使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
想打造 New Relic 那样漂亮的实时监控系统我们只需要 InfluxDB/collectd/Grafana 这三个工具,这三个工具的关系是这样的: 采集数据(collectd)-> 存储数 ...
- 使用cAdvisor+Influxdb+Grafana监控系统
今天准备开始研究研究当前非常流行的Grafana+Influxdb监控系统,两者都是非常轻量级的应用但是功能却异常强大,可以说Grafana在作图显示方面真的毫不逊色与Cacti. 组件介绍 cA ...
随机推荐
- 手动滑稽之golang-vmware-driver广告篇
本来在Windows 7 + Tiny Linux 4.19 + XFS + Vmware Workstation 15 (PRO) 下篇dockerの奥义之后的UEFI补完延迟了... 虽然用efi ...
- css写斜角
项目开发中遇到了这样的效果,百度了一波,可以使用css3的伪类实现: /*斜角公用*/1.外层的div加class='wrapper' 并需要设置相对定位 .wrapper:before { -moz ...
- 数字金字塔 动态规划(优化版) USACO 一维dp压缩版
1016: 1.5.1 Number Triangles 数字金字塔 时间限制: 1 Sec 内存限制: 128 MB提交: 9 解决: 8[提交] [状态] [讨论版] [命题人:外部导入] 题 ...
- light题目讲解 7.25模拟赛T1
心得:这一道题其实就是自己打暴力打出来的 没有想到正解真的就是暴力枚举 我的做法是这样的 就是枚举A字符串中长度为x的子串 看它是不是B串的子序列 接下来是我的绝望考试代码(100分AC) //lig ...
- html+css 知识点总结 day1(01-08)
01 初步认识浏览器 02 浏览器内核 IE 内核:Trident, win10 Edge 内核:EdgeHTML Firefox(火狐浏览器) 内核:Ge ...
- 毒瘤养成记1: 如何卡hash
各位毒瘤大家好, 最近模拟赛考了一道trie+主席树好题, 但大家都用hash水过了这道题(包括我), 为了测试一下新搭建的HEAT OJ的hack功能, 我将继续扮演毒瘤的角色, 用毒瘤的艺术形象努 ...
- 关于Hive中case when不准使用子查询的解决方法
在公司用Hive实现个规则的时候,遇到了要查询某个字段是否在另一张表中,大概情况就是 A表: id value1 value2 1 100 0 2 101 1 3 102 1 B表: value1 1 ...
- 《大道至简》第一章Java伪代码读后感
/*写程序,实际是一种方法论.从另外一个角度帮我们看待世界,看清事物的本质. 早在两千年前的寓言中,愚公和智叟的问答中就已体现整个工程的实现程序.*/ public class 移山{ string ...
- mybatis in查询
原文地址:https://blog.csdn.net/u012427355/article/details/79580561 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集 ...
- linux 网络有关的5个命令
1:ifconfig 2:ifdown & ifup 3:route 4:traceroute 5:iptables 6