一、普罗米修斯概述
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、普罗米修斯原理架构图
三、实验环境准备
服务器 IP地址
Prometneus服务器 192.168.116.129
被监控服务器 192.168.116.130
grafana服务器 192.168.116.131
教程使用的软件:链接: https://pan.baidu.com/s/1QV4KYZksyIp65UsScioq4Q 提取码: vcej
失效可联系我
-
静态ip(要求能上外网)
-
主机名
各自配置好主机名
hostnamectl set-hostname --static server.cluster.com
三台都互相绑定IP与主机名
vim /etc/hosts
192.168.116.129 master
192.168.116.130 node1
192.168.116.131 node2
echo “192.168.116.129 master
192.168.116.130 node1
192.168.116.131 node2”>>/etc/hosts
3. 时间同步(时间同步一定要确认一下)
yum install -y ntpdate && ntpdate time.windows.com
4. 关闭防火墙,selinux
systemctl stop firewalld
systemctl disable firewalld
iptables -F
1、安装PROMETHEUS
从 https://prometheus.io/download/ 下载相应版本,安装到服务器上
官网提供的是二进制版,解压就能用,不需要编译
上传prometheus-2.5.0.linux-amd64.tar.gz
tar -zxvf prometheus-2.5.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/prometheus-2.5.0.linux-amd64/ /usr/local/prometheus
直接使用默认配置文件启动
/usr/local/prometheus/prometheus --config.file=“/usr/local/prometheus/prometheus.yml” &
确认端口(9090)
ss -anltp | grep 9090
2、PROMETHEUS界面
通过浏览器访问http://服务器IP:9090就可以访问到prometheus的主界面
默认只监控了本机一台,点Status --》点Targets --》可以看到只监控了本 机
3、主机数据展示
通过http://服务器IP:9090/metrics可以查看到监控的数据
在web主界面可以通过关键字查询监控项
4、监控远程LINUX主机
① 在远程linux主机(被监控端agent1)上安装node_exporter组件
下载地址: https://prometheus.io/download/
上传node_exporter-0.16.0.linux-amd64.tar.gz
tar -zxvf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/node_exporter-0.16.0.linux-amd64/ /usr/local/node_exporter
里面就一个启动命令node_exporter,可以直接使用此命令启动
nohup /usr/local/node_exporter/node_exporter &
确认端口(9100)
扩展: nohup命令: 如果把启动node_exporter的终端给关闭,那么进程也会 随之关闭。nohup命令会帮你解决这个问题。
② 通过浏览器访问http://被监控端IP:9100/metrics就可以查看到 node_exporter在被监控端收集的监控信息
③ 回到prometheus服务器的配置文件里添加被监控机器的配置段
在主配置文件最后加上下面三行
vim /usr/local/prometheus/prometheus.yml
-
job_name: ‘node1’
static_configs:- targets: [‘192.168.116.130:9100’]
- targets: [‘192.168.116.130:9100’]
-
job_name: ‘agent1’ # 取一个job名称来代 表被监控的机器
static_configs:- targets: [‘10.1.1.14:9100’] # 这里改成被监控机器 的IP,后面端口接9100
改完配置文件后,重启服务
- targets: [‘10.1.1.14:9100’] # 这里改成被监控机器 的IP,后面端口接9100
pkill prometheus
确认端口没有进程占用
/usr/local/prometheus/prometheus --config.file=“/usr/local/prometheus/prometheus.yml” &
确认端口被占用,说 明重启成功
④ 回到web管理界面 --》点Status --》点Targets --》可以看到多了一台监 控目标