Prometheus&Grafana监控工具的安装与部署

什么是Prometheus?

‎Prometheus‎‎是一个开源系统监控和警报工具包,最初是在‎‎SoundCloud‎‎上构建的。自2012年成立以来,许多公司和组织都采用了Prometheus,并且该项目拥有非常活跃的开发人员和用户‎‎社区‎‎。它现在是一个独立的开源项目,独立于任何公司维护。为了强调这一点,并澄清项目的治理结构,Prometheus于2016年加入‎‎云原生计算基金会‎‎,成为‎‎继Kubernetes‎‎之后的第二个托管项目。‎ ‎Prometheus 收集并将其指标存储为时间序列数据,即指标信息与记录它的时间戳一起存储,以及称为标签的可选键值对。‎

Prometheus的特点

多维度数据模型。 灵活的查询语言。 不依赖分布式存储,单个服务器节点是自主的。 通过基于HTTP的pull方式采集时序数据。 可以通过中间网关进行时序列数据推送。 通过服务发现或者静态配置来发现目标服务对象。 支持多种多样的图表和界面展示,比如Grafana等。

Prometheus架构图

Prometheus&Grafana监控工具的安装与部署_第1张图片

说明:prometheus 直接或通过pushgateway抓取数据。将数据存储在本地,并对这些数据运行规则,以便从现有数据聚合和记录新时间序列,或者生成警报。grafana等可用于可视化数据。

 Prometheus组件说明

        prometheus Server: 根据配置完成数据采集, 服务发现以及数据存储。 Push Gateway : 为应对部分push场景提供的插件,监控数据先推送到 Push Gateway 上,然后再由 Prometheus Server 端采集 pull 。用于存在时间较短,可能在 Prometheus 来 pull 之前就消失了的 jobs (若 Prometheus Server 采集间隔期间,Push Gateway 上的数据没有变化, Prometheus Server 将采集到2次相同的数据,仅时间戳不同) Exporters(探针): 是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。 Alertmanager: Prometheus server 主要负责根据基于PromQL的告警规则分析数据,如果满足PromQL定义的规则,则会产生一条告警,并发送告警信息到Alertmanager,Alertmanager则是根据配置处理告警信息并发送。常见的接收方式有:电子邮件,webhook 等。Alertmanager三种处理告警信息的方式:分组,抑制,静默。

Prometheus适用的场景

        ‎Prometheus在记录纯数字时间序列方面表现非常好。它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。Prometheus是为服务的可靠性而设计的,当服务出现故障时,它可以使你快速定位和诊断问题。它的搭建过程对硬件和服务没有很强的依赖关系。‎

Prometheus不适用的场景

        Prometheus它的价值在于可靠性,甚至在很恶劣的环境下,你都可以随时访问它和查看系统服务各种指标的统计信息。 如果你对统计数据需要100%的精确,它并不适用,例如:它不适用于实时计费系统。

安装 Prometheus

这里以Linux系统为例:

1.官网下载安装包,官网下载地址如下:

https://prometheus.io/download/

下载相应版本,安装到服务器上,官网提供的是二进制版,解压就能用,不需要编译.

Prometheus&Grafana监控工具的安装与部署_第2张图片

 配置prometheus.yml,修改内容如下图:

Prometheus&Grafana监控工具的安装与部署_第3张图片

 启动 Prometheus

启动命令如下:

 ./prometheus --config.file=prometheus.yml

通过浏览器访问http://服务器IP:9090就可以访问到prometheus的主界面,如下图

Prometheus&Grafana监控工具的安装与部署_第4张图片

 默认只监控了本机一台,点Status --》点Targets --》可以看到只监控了本机

Prometheus&Grafana监控工具的安装与部署_第5张图片

 添加远程主机

1.官网下载node_exporter安装包,官网下载地址如下: https://prometheus.io/download/

Prometheus&Grafana监控工具的安装与部署_第6张图片

2.将下载的安装包上传至所有的远程服务器,并进行解压:
tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz
3.启动所有服务器node_exporter,命令为./node_exporter

 配置 prometheus.yml

.编辑prometheus.yml,配置如下信息:

- job_name: 'node'
    static_configs:
    - targets: ['192.168.179.235:9100','192.168.179.234:9100','192.168.179.233:9100','192.168.179.232:9100'] 
2.重启prometheus_server

Prometheus&Grafana监控工具的安装与部署_第7张图片

 查看远程服务器

1.再次访问http://服务器IP:9090

2.再次点Status --》点Targets --》可以看到远程服务器

Prometheus&Grafana监控工具的安装与部署_第8张图片

 服务器监控指标查看

Prometheus&Grafana监控工具的安装与部署_第9张图片

 1.点击列表中的地址:http://192.168.179.232:9100/metrics,可以看到监控的所有指标:

Prometheus&Grafana监控工具的安装与部署_第10张图片

 Grafana简介

简介: Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。 特点: ①可视化:快速和灵活的客户端图形具有多种选项。面板插件为许多不同的方式可视化指标和日志。 ②报警:可视化地为最重要的指标定义警报规则。Grafana将持续评估它们,并发送通知。 ③通知:警报更改状态时,它会发出通知。接收电子邮件通知。 ④动态仪表盘:使用模板变量创建动态和可重用的仪表板,这些模板变量作为下拉菜单出现在仪表板顶部。 ⑤混合数据源:在同一个图中混合不同的数据源!可以根据每个查询指定数据源。这甚至适用于自定义数据源。 ⑥注释:注释来自不同数据源图表。将鼠标悬停在事件上可以显示完整的事件元数据和标记。 ⑦过滤器:过滤器允许您动态创建新的键/值过滤器,这些过滤器将自动应用于使用该数据源的所有查询。

 Grafana安装

1.去官网下载对应系统安装包,官网地址如下(这里以Linux系统为例):https://grafana.com/grafana/download

Prometheus&Grafana监控工具的安装与部署_第11张图片

2.上传安装包到linux服务器grafana-enterprise-8.3.3-1.x86_64.rpm

3.执行安装命令:yum install grafana-enterprise-8.3.3-1.x86_64.rpm

Prometheus&Grafana监控工具的安装与部署_第12张图片

 4.启动命令:service grafana-server start

5.访问web页面http://192.168.179.***:3000/login,如出现以下页面表示安装成功

 6.访问web页面http://192.168.179.***:3000/login,如出现以下页面表示安装成功,默认登录账号和密码都是admin

Prometheus&Grafana监控工具的安装与部署_第13张图片

Prometheus&Grafana监控工具的安装与部署_第14张图片Prometheus&Grafana监控工具的安装与部署_第15张图片

Prometheus&Grafana监控工具的安装与部署_第16张图片

 Grafana添加仪表盘

Prometheus&Grafana监控工具的安装与部署_第17张图片

Prometheus&Grafana监控工具的安装与部署_第18张图片

 常用的promsql

 

cpu使用率:
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100)

内存使用率:
100-(node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes)/node_memory_MemTotal_bytes*100

磁盘使用率:
100 - (node_filesystem_free_bytes{mountpoint="/data01",fstype=~"ext4|xfs"} / node_filesystem_size_bytes{mountpoint="/data01",fstype=~"ext4|xfs"} * 100)

下载带宽:(指定某一个网卡)
irate(node_network_receive_bytes_total{device='eth0'}[5m])

上传带宽:(指定某一个网卡)
irate(node_network_transmit_bytes_total{device='eth0'}[5m])

服务器负载:
node_load1
node_load5
node_load15

 

 

 

你可能感兴趣的:(Prometheus,运维)