Prometheus监控系统

普罗米修斯概述

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

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

时间序列数据

什么是序列数据

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

应用的场景很多, 如:

  • 无人驾驶车辆运行中要记录的经度,纬度,速度,方向,旁边物体的距离等等。每时每刻都要将数据记录下来做分析。
  • 某一个地区的各车辆的行驶轨迹数据
  • 传统证券行业实时交易数据
  • 实时运维监控数据等

时间序列数据特点

  • 性能好

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

  • 存储成本低

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

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

Prometheus的主要特征

  • 多维度数据模型
  • 灵活的查询语言
  • 不依赖分布式存储,单个服务器节点是自主的
  • 以HTTP方式,通过pull模型拉去时间序列数据
  • 也可以通过中间网关支持push模型
  • 通过服务发现或者静态配置,来发现目标服务对象
  • 支持多种多样的图表和界面展示

原理架构图

Prometheus监控系统

环境准备

三台机器,被监控服务器、Prometheus服务器、grafana服务器

1.能上外网

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

第一步:从 https://prometheus.io/download/ 下载相应版本,上传到服务器上

第二步:官网提供的是二进制版,解压就能用,不需要编译

[root@server ~]# tar xf prometheus-2.5.0.linux- amd64.tar.gz -C /usr/local/ [root@server ~]# mv /usr/local/prometheus-2.5.0.linux- amd64/ /usr/local/prometheus 

第三步:启动普罗米修斯

[root@server ~]# /usr/local/prometheus/prometheus -- config.file="/usr/local/prometheus/prometheus.yml" & 
注:
& 连接符代表后台运行,不占用终端窗口

第四步:测试端口占用情况(判断是否真正的启动了)

确认端口(9090) 
[root@server ~]# lsof -i:9090
[root@server ~]# ss -naltp |grep 9090

prometheus界面

通过浏览器访问http://服务器IP:9090就可以访问到prometheus的主界面
Prometheus监控系统
默认只监控了本机一台,点Status --》点Targets --》可以看到只监控了本机
Prometheus监控系统

主机数据展示

通过http://服务器IP:9090/metrics可以查看到监控的数据
Prometheus监控系统

在web主界面可以通过关键字查询监控项
Prometheus监控系统

上一篇:prometheus process-export进程监控


下一篇:prometheus+granfana监控部署(二进制)