Prometheus+Grafana实现监控系统

· · 113 次点击 · · 开始浏览     编辑

任务背景

某某某公司是一家电商网站,由于公司的业务快速发展,公司要求对现有机器进行业务监控,责成运维部门来实施这个项目。

任务要求

1)部署监控服务器,实现7x24实时监控

2)针对公司的业务及研发部门设计监控系统,对监控项和触发器拿出合理意见

3)做好问题预警机制,对可能出现的问题要及时告警并形成严格的处理机制

4)做好监控告警系统,要求可以实现告警分级

一级报警  电话通知

二级报警  微信通知

三级报警 邮件通知

5)处理好公司服务器异地集中监控问题,K8S内部使用的监控系统就是普罗米修斯

任务分析

为什么要监控?

答: 实时收集数据,通过报警及时发现问题,及时处理。数据为优化也可以提供依据。

监控四要素:

监控对象 [主机状态  服务  资源  页面,url]

用什么监控                [zabbix-server  zabbix-agent] => 普罗米修斯监控

什么时间监控            [7x24    5x8]

报警给谁                    [管理员]

项目选型:

mrtg  (Multi Router Traffic Grapher)通过snmp协议得到设备的流量信息,并以包含PNG格式的图形的HTML文档方式显示给用户。

cacti  (仙人掌) 用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据。官网地址: https://www.cacti.net/

ntop  官网地址: https://www.ntop.org/

nagios  能够跨平台,插件多,报警功能强大。官网地址: https://www.nagios.org/

centreon  底层使用的就是nagios。是一个nagios整合版软件。官网地址:https://www.centreon.com/

ganglia  设计用于测量数以千计的节点,资源消耗非常小。官网地址:http://ganglia.info/

open-falcon  小米发布的运维监控软件,高效率,高可用。时间较短,用户基数小。官网地址: http://open-falcon.org/

zabbix  跨平台,画图,多条件告警,多种API接口。使用基数特别大。官网地址: https://www.zabbix.com/

prometheus  基于时间序列的数值数据的容器监控解决方案。官网地址: https://prometheus.io/

综合分析:Prometheus比较适合公司的监控需求

一、普罗米修斯概述

Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为kubernetes(俗称k8s)的流行带动了prometheus的发展。

https://prometheus.io/docs/introduction/overview/

二、时间序列数据

1、什么是序列数据

时间序列数据(TimeSeries Data) : 按照时间顺序记录系统、设备状态变化的数据被称为时序数据。

应用的场景很多, 如:

无人驾驶车辆运行中要记录的经度,纬度,速度,方向,旁边物体的距离等等。每时每刻都要将数据记录下来做分析。

某一个地区的各车辆的行驶轨迹数据

传统证券行业实时交易数据

实时运维监控数据等

2、时间序列数据特点

性能好

关系型数据库对于大规模数据的处理性能糟糕。NOSQL可以比较好的处理大规模数据,让依然比不上时间序列数据库。

存储成本低

高效的压缩算法,节省存储空间,有效降低IO

Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概花了200多G(来自官方数据)

3、Prometheus的主要特征

多维度数据模型

灵活的查询语言

不依赖分布式存储,单个服务器节点是自主的

以HTTP方式,通过pull模型拉去时间序列数据       

也可以通过中间网关支持push模型

通过服务发现或者静态配置,来发现目标服务对象

支持多种多样的图表和界面展示

4、普罗米修斯原理架构图

普罗米修斯原理架构图

三、实验环境准备

环境准备

1、静态ip(要求能上外网)

2、主机名

各自配置好主机名

# hostnamectl set-hostname --static server.cluster.com

三台都互相绑定IP与主机名

# vim /etc/hosts

10.1.1.13  server.cluster.com

10.1.1.14  agent1.cluster.com

10.1.1.15  grafana.cluster.com

3. 时间同步(时间同步一定要确认一下)

4. 关闭防火墙,selinux

# systemctl stop firewalld

# systemctl disable firewalld

# iptables -F

本文来自:简书

感谢作者:

查看原文:Prometheus+Grafana实现监控系统

入群交流(和以上内容无关):加入Go大咖交流群,免费领全套学习资料或添加微信:muxilin131420 备注:入群;或加QQ群:729884609

113 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传