机房ping监控 smokeping+prometheus+grafana
一、前言
1、本监控方案主要由smokeping+promethues+grafana组成。smokeping主要数据采集,promethues作为数据存储,grafana数据展示
2、其实smokeping也有自己的展示方案,但是太low太难看,不符合当下装逼的风格,所以果断换成grafana
3、之所以使用promethues,是由于目前的生产环境有一个promethues,可以直接复用,当然也可以选用graphite等
二、环境准备
组件 | 版本 |
---|---|
OS | Ubuntu 16.04.4 LTS |
三、smokeping
smokeping的原理其实很简单,就是使用fping工具ping全国各省的IP,将结果存储在rrd文件当中
安装smokeping
root@localhost:/tmp# apt-get install gcc make rrdtool librrds-perl librrds-dev openssh-client libcgi-fast-perl libconfig-grammar-perl libdigest-hmac-perl liblwp-protocol-https-perl liblwp-mediatypes-perl fpint
root@localhost:/tmp# ./configure --prefix=/usr/local/smokeping
root@localhost:/tmp# unset LC_ALL
root@localhost:/tmp# make && make install
安装过程中需要很多依赖包,如果./configure报错了,就安装对应的包就行了
配置过程
克隆代码
cd /tmp
git clone https://github.com/wilsonchai8/idc_ping_monitor.git
创建config文件,并且配置全国各区域ip监测点
smokeping_home_dir=/usr/local/smokeping
cd $smokeping_home_dir/etc
cp -rf /tmp/idc_ping_monitor/smokeping/* ./
监测点ip主要由国内的三大运营商的IP站点组成,也可以自定义需要检测的站点,更多的ip地址,可以参考 http://ip.yqie.com/china.aspx
启动:
mkdir -p $smokeping_home_dir/cache
mkdir -p $smokeping_home_dir/data
mkdir -p $smokeping_home_dir/var
chmod -R 0755 $smokeping_home_dir
chmod 600 $smokeping_home_dir/etc/smokeping_secrets.dist
$smokeping_home_dir/bin/smokeping
四、promethues
为什么要选择时序数据库?
● 时序数据库强调的是以时间为主坐标,根据时间的流逝来记录事物的变化关系。关系型数据库主要是描述事物与事物之间的变化关系,这个关系相对于时间就比较复杂,比如一对多,多对多。而时间相对简单,只需要简单记录在这个时间点的某个事物发生的变化。监控数据恰恰符合这个时间变化,我们只需要记录某个指标在时间流逝当中的变化即可
● 时序数据库非常适合"变化"。比如在关系型数据库中描述事物的关系,使用表结构,一旦定义下来,就遵循这个表结构不断的采集数据,如果发生变化,比如新增一个采集维度,那就要变更表结构,DDL操作对于关系型数据库来说,是非常大的代价。然后这对于时序数据库来说,并没有这个烦恼,时间序列数据集跟踪整个系统的改动并不断插入新数据,而不是更新原有数据。所以,对于监控数据来说,采集新的数据维度对于整个表结构不会有任何影响,因为它压根就没有表结构
balabala说了一大堆,终于要开始使用promethues(关于promethues的安装,网上一搜一大把),经过一顿猛如虎的操作:
模块 | 访问地址 |
---|---|
Prometheus server | 192.168.56.101:9090 |
Prometheus Pushgateway | 192.168.56.101:9091 |
把smokeping采集的数据通过rrdtool读取之后,按照一定的格式推送到prometheus的gateway,时间间隔是1分钟
cp /tmp/idc_ping_monitor/prometheus/collection_to_prometheus.py $smokeping_home_dir
配置crontab
crontab -e
* * * * * python /usr/local/smokeping/collection_to_prometheus.py
在/usr/local/smokeping/collection_to_prometheus.py中,按照实际情况配置3个参数:
'LOG_FILE' : '/tmp/smoking_pushgateway.log' # 日志文件
'prometheus_gateway' : 'http://192.168.56.101:9091' # Prometheus gateway地址
'data_dir' : '/usr/local/smokeping/data' # smokeping rrd文件的存放地址
等待一段时间之后,已经有数据了,在prometheus里,metrics name:
smokeping_lost_package_num
smokeping_rrt
附上源代码:
https://github.com/wilsonchai8/idc_ping_monitor/blob/master/prometheus/collection_to_prometheus.py
五、grafana
将idc_ping_monitor/grafana/ping_monitor.json导入到grafana即可
效果:
六、小结
● 本文的思路:smokeping采集数据之后存储到rrd文件,然后通过脚本把数据提取出来,格式化之后发送到prometheus,然后通过grafana展示出来
● 文中使用的全国ping站点列表,数据推送脚本以及grafana模板 https://github.com/wilsonchai8/idc_ping_monitor
至此,本文结束
在下才疏学浅,有撒汤漏水的,请各位不吝赐教...
机房ping监控 smokeping+prometheus+grafana的更多相关文章
- 机房ping监控 smokeping+prometheus+grafana(续) 自动获取各省省会可用IP
一.前言 1.之前的文章中介绍了如何使用smokeping监控全国各省的网络情况:https://www.cnblogs.com/MrVolleyball/p/10062231.html 2.由于之前 ...
- Spring Boot Metrics监控之Prometheus&Grafana(转)
欢迎来到Spring Boot Actuator教程系列的第二部分.在第一部分中,你学习到了spring-boot-actuator模块做了什么,如何配置spring boot应用以及如何与各样的ac ...
- 监控实战Prometheus+Grafana
这期的分享是监控实战,其实不想写这篇的,因为网上相关的文章也挺多的,但是出于光说不练都是假把式,而且也想告诉你:当帅气的普罗米修斯(Prometheus)遇到高颜值的格拉法纳(Grafana)究竟会擦 ...
- 【k8s 硬盘监控】prometheus grafana
设置监控哪块盘: https://www.bountysource.com/issues/50160777-disk-space-usage-depcited-in-grafana-correct h ...
- Prometheus(一):Prometheus+Grafana 安装配置
一.基础环境 系统 IP 监控主机 CentOS 7 192.168.56.200 被监控主机 CentOS 7 192.168.56.201 二.Prometheus服务端安装 以下操作皆在监控主机 ...
- 使用 Prometheus + Grafana 对 Kubernetes 进行性能监控的实践
1 什么是 Kubernetes? Kubernetes 是 Google 开源的容器集群管理系统,其管理操作包括部署,调度和节点集群间扩展等. 如下图所示为目前 Kubernetes 的架构图,由 ...
- cAdvisor+Prometheus+Grafana监控docker
cAdvisor+Prometheus+Grafana监控docker 一.cAdvisor(需要监控的主机都要安装) 官方地址:https://github.com/google/cadvisor ...
- 基于Docker+Prometheus+Grafana监控SpringBoot健康信息
在微服务体系当中,监控是必不可少的.当系统环境超过指定的阀值以后,需要提醒指定的运维人员或开发人员进行有效的防范,从而降低系统宕机的风险.在CNCF云计算平台中,Prometheus+Grafana是 ...
- prometheus + grafana部署RabbitMQ监控
prometheus + grafana部署RabbitMQ监控 1.grafana导入dashboards https://grafana.com/dashboards/2121 2.expor ...
随机推荐
- MySQL主从复制半同步复制原理及搭建
在MySQL5.5之前的版本中,MySQL的复制是异步复制,主库和从库的数据之间存在一定的延迟,比如网络故障等各种原因,这样子容易存在隐患就是:当在主库写入一个事务成功后并提交了,但是由于从库延迟没有 ...
- 阿里开源 iOS 协程开发框架 coobjc!--异步编程的问题与解决方案
阿里妹导读:刚刚,阿里巴巴正式对外开源了基于 Apache 2.0 协议的协程开发框架 coobjc,开发者们可以在 Github 上自主下载.coobjc是为iOS平台打造的开源协程开发框架,支持O ...
- Oracle rdbms Brush password
Restore database user history account password 1. 用户状态 select * from user_astatus_map; select * from ...
- mysql 导出表数据表结构
在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefo ...
- Git同时使用不同平台代码仓库
问题描述 公司项目使用代码仓库为gitinn/gitlab等,个人项目使用github进行托管,而公司项目和个人项目设置的邮箱和用户名是不同的,而ssh的密钥对又是基于这两个信息生成的,所以此时想要同 ...
- JS编写日历控件(支持单日历 双日历 甚至多日历等)
前言: 最近几天都在研究日历控件编写,当然前提我要说明下,当然看过别人写的源码 所以脑子一热 就想用自己的编码方式 来写一套可扩展性 可维护性 性能高点的代码控件出来,就算练习练习下,所以前几天晚上下 ...
- Python2.7-weakref
weakref 模块,允许创建对象的弱引用,被弱引用的对象其引用计数不变,对象的引用计数为0时就会被垃圾清理机制释放内存空间,此时对其的弱引用也会失效.在对象会被交叉引用,需要释放内存空间时常用. 模 ...
- 用cloudmonkey批量创建虚拟机
需求: 1.root磁盘120G(这个在做镜像的时候已经做好) 2.需要用到share网络 3.添加500G磁盘并且挂载早虚拟机上面 #!/bin/bashzone_id=d530fee4-413a- ...
- DAY65
# 1.web应用# 2.CS和BS架构# 3.http协议# 特点: 1.接受请求正在处理# 2.请求处理完毕# 3.需要进行附加操作以完成请求# 4.服务器无法处理请求# 5.服务器处理请求出错# ...
- Debuggex – 超好用的正则表达式可视化调试工具
正则表达式通常被用来检索或替换符合某个模式的文本内容,编写正则是开发人员的必备技能.简单的正则表达式一下就能看懂含义,但是复杂的正则理解起来就很困难了.有了这款可视化的正则调试工具,以后编写正则表达式 ...