【云原生】Prometheus&Grafana监控工具的安装与部署

1. 什么是Prometheus?

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

2. Prometheus的特点

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

3. 架构图

请添加图片描述

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

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

4. prometheus server和Exporter_node安装和部署

这里以Linux系统为例:准备了两台机器(prometheus server)和(Exporter_node)

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

https://prometheus.io/download/

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

[root@sc-prom ~]# mkdir /prom
[root@sc-prom ~]# cd /prom
[root@sc-prom prom]# ls
prometheus-2.34.0.linux-amd64.tar.gz

[root@sc-prom prom]# tar xf prometheus-2.34.0.linux-amd64.tar.gz
[root@sc-prom prom]# ls
prometheus-2.34.0.linux-amd64  prometheus-2.34.0.linux-amd64.tar.gz

[root@sc-prom prom]# mv prometheus-2.34.0.linux-amd64 prometheus
[root@sc-prom prom]# ls
prometheus  prometheus-2.34.0.linux-amd64.tar.gz

[root@sc-prom prometheus]# PATH=/prom/prometheus:$PATH
[root@sc-prom prometheus]# vim /root/.bashrc
PATH=/prom/prometheus:$PATH   #添加


[root@sc-prom prometheus]#nohup prometheus --config.file=prometheus.yml & 

访问prometheus server
http://192.168.1.137:9090/
若访问不成功,或许是防火墙规则你要看一看。

2.官网下载node_exporter安装包,官网下载地址如下: https://prometheus.io/download/
下载node_exporter-1.4.0-rc.0.linux-amd64.tar.gz源码,上传到节点服务器上.

[root@jd-exporter ~]# mkdir /node_exporter
[root@jd-exporter ~]# cd /node_exporter
[root@jd-exporter node_exporter]# ls
node_exporter-1.4.0-rc.0.linux-amd64.tar.gz

[root@jd-exporter node_exporter]# tar xf node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
[root@jd-exporter node_exporter]# ls
LICENSE  node_exporter  NOTICE

[root@jd-exporter ~]# PATH=/node_exporter/:$PATH
[root@jd-exporter ~]# vim /root/.bashrc
PATH=/node_exporter/:$PATH #添加


执行node exporter 代理程序(后台运行)
[root@jd-exporter node_exporter]#nohup node_exporter --web.listen-address 0.0.0.0:8090  &

访问node节点上的metrics
http://192.168.1.194:8090/metrics
若访问不成功,或许是防火墙规则你要看一看。

3.在prometheus服务器上添加抓取数据的配置,添加node节点服务器,将抓取的数据存储到时序数据库里。

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

[root@jd-prom prometheus]# vim prometheus.yml

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]

  #添加下面的配置采集node-jiangda服务器的metrics
  - job_name: "node-jiangda"
    static_configs:
      - targets: ["192.168.1.194:8090"]

在这里插入图片描述
重启prometheus服务,需要先杀死原来启动的进程,然后再运行程序
因为我们是源码二进制安装,直接解压使用的,没有配套的prometheus服务
百度下,将源码二进制安装的prometheus,添加成一个service方式管理。

4.添加成一个service方式管理。

将源码二进制安装的prometheus,添加成一个service方式管理

[root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service 

[Unit]
Description=prometheus
[Service]
ExecStart=/prom/prometheus/prometheus --config.file=/prom/prometheus/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install] 
WantedBy=multi-user.target

检验:

[root@jd-prom prometheus]# systemctl daemon-reload  #让systemd加载prometheus的service文件
[root@jd-prom system]# service prometheus start
Redirecting to /bin/systemctl start prometheus.service
[root@jd-prom system]# ps aux|grep prom
root       5121 40.0  3.0 783588 56428 ?        Ssl  14:52   0:00 /prom/prometheus/prometheus --config.file=/prom/prometheusprometheus.yml
root       5129  0.0  0.0 112824   988 pts/1    S+   14:52   0:00 grep --color=auto prom
[root@jd-prom system]# service prometheus stop
Redirecting to /bin/systemctl stop prometheus.service
[root@jd-prom system]# ps aux|grep prom
root       5148  0.0  0.0 112824   988 pts/1    S+   14:52   0:00 grep --color=auto prom

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

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

在这里插入图片描述

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

在这里插入图片描述

5. Grafana的安装和部署

概述:美观、强大的可视化监控指标展示工具
grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。最好的参考资料就是官网(http://docs.grafana.org/)

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

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.1.2-1.x86_64.rpm

2.上传安装包到linux服务器grafana-enterprise-8.3.3-1.x86_64.rpm
3.执行安装命令:yum install grafana-enterprise-8.3.3-1.x86_64.rpm

[root@jd-prom prometheus]# mkdir /grafana
[root@jd-prom prometheus]# cd /grafana/
[root@jd-prom grafana]# ls
上传
[root@jd-prom grafana]# ls
grafana-enterprise-9.1.2-1.x86_64.rpm
安装
[root@jd-prom grafana]# yum install grafana-enterprise-9.1.2-1.x86_64.rpm 

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

5.登录,在浏览器里登录
http://192.168.1.137:3000/
默认的用户名和密码是
用户名admin
密码admin
在这里插入图片描述
1.先配置prometheus的数据源
在这里插入图片描述
2.导入grafana的模板
https://grafana.com/grafana/dashboards
步骤:
1.需要知道哪些模板可以使用,可以去官方找,也可以百度
1-node-exporter-for-prometheus-dashboard-cn-v20200628_rev1.json
2.导入模板
在这里插入图片描述

6. 数据一览

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

日 近 长 安 远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值