这篇文章主要为大家介绍了普罗米修斯基本功能特点及安装与配置实现过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪!
1. 普罗米修斯概述
Prometheus(是由go语言(golang)开发)是一套开源的监控&报警&时间序列数 据库的组合。适合监控docker容器。
Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源项目,并且独立于任何公司进行维护。为了强调这一点并阐明项目的治理结构,Prometheus 于2016年加入了 Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。
Prometheus是一个时间序列数据库。但是,它不仅仅是一个时间序列数据库。
它涵盖了可以绑定的整个生态系统工具集及其功能。
Prometheus主要用于对基础设施的监控。包括服务器,数据库,VPS,几乎所有东西都可以通过Prometheus进行监控。Prometheus希望通过对Prometheus配置中定义的某些端点执行的HTTP调用来检索度量标准。
Prometheus 的优点
非常少的外部依赖,安装使用超简单
已经有非常多的系统集成 例如:docker HAProxy Nginx JMX等等
服务自动化发现
直接集成到代码
设计思想是按照分布式、微服务架构来实现的
可以采用 push gateway 的方式把时间序列数据推送至 Prometheus server 端
可以通过服务发现或者静态配置去获取监控的 targets。
有多种可视化图形界面。
易于伸缩。
Prometheus 的特性
一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据
PromQL,一种灵活的查询语言 ,可利用此维度
不依赖分布式存储;单服务器节点是自治的
时间序列收集通过HTTP上的拉模型进行
通过中间网关支持推送时间序列通过服务发现或静态配置发现目标
多种图形和仪表板支持模式
2. 时间序列数据
1、什么是序列数据
时间序列数据(TimeSeries Data) : 按照时间顺序记录系统、设备状态变化 的数据被称为时序数据。
应用的场景很多, 如:
无人驾驶车辆运行中要记录的经度,纬度,速度,方向,旁边物体的距 离等等。每时每刻都要将数据记录下来做分析。
某一个地区的各车辆的行驶轨迹数据
传统证券行业实时交易数据
实时运维监控数据等
2 时间序列数据特点
性能好
关系型数据库对于大规模数据的处理性能糟糕。NOSQL可以比较好的处理 大规模数据,让依然比不上时间序列数据库。
存储成本低
高效的压缩算法,节省存储空间,有效降低IO
Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占 用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概花了 200多G(来自官方数据)
3. Prometheus原理架构图
下图说明了Prometheus的体系结构及其某些生态系统组件:
prometheus直接或通过中介推送网关从已检测作业中删除指标,以处理短暂的作业。它在本地存储所有报废的样本,并对这些数据运行规则,以汇总和记录现有数据中的新时间序列,或生成警报。Grafana或其他API使用者可以用来可视化收集的数据。
Prometheus可以很好地记录任何纯数字时间序列。它既适用于以机器为中心的监视,也适用于高度动态的面向服务的体系结构的监视。在微服务世界中,它对多维数据收集和查询的支持是一种特别的优势。
Prometheus的设计旨在提高可靠性,使其成为中断期间要使用的系统,以使您能够快速诊断问题。每个Prometheus服务器都是独立的,而不依赖于网络存储或其他远程服务。当基础结构的其他部分损坏时,您可以依靠它,并且无需设置广泛的基础结构即可使用它。
普罗米修斯重视可靠性。即使在故障情况下,您始终可以查看有关系统的可用统计信息。如果您需要100%的准确性(例如按请求计费),则Prometheus并不是一个好的选择,因为所收集的数据可能不够详细和完整。在这种情况下,最好使用其他系统来收集和分析数据以进行计费,并使用Prometheus进行其余的监视。
4. 部署Prometheus
1.有外网安装
1.1.安装Docker
Linux操作系统下安装docker,网络连通的情况下执行
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all yum makecache fastyum -y install docker-ce
设置开机启动
systemctl enable docker
1.2.安装普罗米修斯
1.2.1加载普罗米修斯镜像
docker load -i prometheus_v2.14.0.tar
1.2.2 运行普罗米修斯
docker run –always –name prometheus -d -p 9090:9090 -v /root/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml -v /root/prometheus/config/mysql.alerts.yml:/etc/prometheus/mysql.alerts.yml prom/prometheus:v2.14.0
2.内网安装(推见)
2.1.上传和解压程序包
上传程序包:
prometheus-2.16.0.linux-amd64.tar.gz
解压程序包:
tar -xvf prometheus-2.16.0.linux-amd64.tar.gz -C /usr/local/
2.2.安装普罗米修斯
配置prometheus.yml文件(只配置红色内容)
命令:
vi /usr/local/rometheus-2.16.0.linux-amd64/prometheus.yml
2.3启动普罗米修斯
启动命令:
nohup /usr/local/rometheus-2.16.0.linux-amd64/prometheus --config.file=/usr/local/prometheus-2.16.0.linux-amd64/prometheus.yml >> /usr/local/prometheus-2.16.0.linux-amd64/prometheus.log 2>&1 &
或
nohup /usr/local/prometheus-2.16.0.linux-amd64/prometheus >> /usr/local/prometheus-2.16.0.linux-amd64/prometheus.log 2>&1 &
3.安装主机监控exporter
3.1.Windows下安装
程序包:wmi_exporter-0.9.0-amd64.msi
可以通过任务管理器查看进程是否存在。
服务是否在运行
3.2.Linux下安装
程序包:node_exporter-0.18.1.linux-amd64.tar.gz
(1)被监控的机器安装node-exporter
tar -xvf node_exporter-0.18.1.linux-amd64.tar.gz -C /usr/local/
(2)启动node-exporter
后台启动:
nohup /usr/local/node_exporter-0.18.1.linux-amd64/node_exporter >> /usr/local/node_exporter-0.18.1.linux-amd64/node_exporter.log 2>&1 &
ps aux|grep node_exporter
注意:服务器的防火墙看是否开启,请关掉。
LIUNX 7开启端口命令:
firewall-cmd --zone=public --add-port=9100/tcp –permanent
或 systemctl stop firewalld**
3.3配置普罗米修斯,重启生效
每添加一个exporter需要在配置文件config/prometheus.yml下添加一个target,配置文件中有注释
命令:cd /root/prometheus/config/
里面的内容有,一个是配置LIUNX主机的,一个是配置windows主机,多台主机时配置多个IP就可以。
- job_name: 'Linux主机'
relabel_configs:
- source_labels: [__address__]
target_label: instance
regex: ^(.+)(:[0-9]+)$
replacement: ${1}
action: replace
static_configs:
- targets: ['172.16.20.28:9100']
- job_name: 'Windows主机'
relabel_configs:
- source_labels: [__address__]
target_label: instance
regex: ^(.+)(:[0-9]+)$
replacement: ${1}
action: replace
static_configs:
- targets: ['192.168.8.141:9182', '192.168.13.163:9182']
增加主机配置后重启:
1.内网安装重启:
查询进程
ps aux|grep prometheus
杀掉进程
Kill -9 上面查的进程号
启动
nohup /usr/local/rometheus-2.16.0.linux-amd64/prometheus --config.file=/usr/local/prometheus-2.16.0.linux-amd64/prometheus.yml >> /usr/local/prometheus-2.16.0.linux-amd64/prometheus.log 2>&1 &
或
nohup /usr/local/prometheus-2.16.0.linux-amd64/prometheus >> /usr/local/prometheus-2.16.0.linux-amd64/prometheus.log 2>&1 &
2.外网安装重启:
命令:docker restart prometheus
参考查看所有的docker:docker ps -a
4.验证
网页中打开普罗米修斯,端口9090,能够发现exporter的状态为UP
访问:http://IP:9090/targets