【2023】Prometheus-先搭出来玩玩

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 【2023】Prometheus-先搭出来玩玩

0.prometheus是什么?有什么优缺点

Prometheus是一个开源的监控系统,由SoundCloud开发并于2015年发布。它集成了数据采集、多维度数据查询、可视化和告警等功能。

Prometheus的优点包括:

  1. 数据模型简单:Prometheus有一个简单但非常强大的数据模型,它是基于时间序列的,易于理解和使用。
  2. 灵活的查询语言:PromQL是Prometheus的查询语言,它非常灵活,具有强大的表达能力,可以对数据进行非常复杂的分析和处理。
  3. 可视化:Prometheus内置了一个强大的图表库,可以方便地生成各种类型的图表。
  4. 告警:Prometheus提供了强大的告警机制,可以根据自定义规则对监控数据进行告警。社区活跃:由于Prometheus是一个开源项目,拥有庞大的用户和开发者群体,使得它得到了不断的更新和维护。

Prometheus的缺点包括:

  1. 存储量大:Prometheus的存储机制需要存储所有的监控数据,因此随着监控对象的增加,存储量也会增加。
  2. 配置复杂:对Prometheus进行配置需要熟悉其配置文件格式和规则,可能需要一定的学习成本。
  3. 对象发现难度大:由于Prometheus需要手动配置监控对象,因此需要手动添加新的监控对象或删除不需要监控的对象,这可能会造成一定的困扰。
  4. 高可用性需要自行实现:Prometheus本身并不提供高可用性保障,需要使用另外的组件来保障高可用性。

1.快速部署Prometheus服务

  • 下载二进制安装包(当然docker安装更快)
wget https://github.com/prometheus/prometheus/releases/download/v2.42.0/prometheus-2.42.0.linux-amd64.tar.gz
  • 将压缩包解压到指定目录
[root@localhost ~]# mkdir /data
[root@localhost ~]# tar xf prometheus-2.42.0.linux-amd64.tar.gz -C /data/
[root@localhost ~]# cd /data/
[root@localhost data]# ls
prometheus-2.42.0.linux-amd64
[root@localhost data]# ln -s prometheus-2.42.0.linux-amd64/ prometheus

添加Prometheus为系统服务开机启动(注意user、group、IP用自己的)

  vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus server daemon
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/data/prometheus/prometheus \
    --config.file "/data/prometheus/prometheus.yml" \
    --storage.tsdb.path "/data/prometheus/data" \
    --storage.tsdb.retention=15d \
    --web.console.templates="/data/prometheus/consoles" \
    --web.console.libraries="/data/prometheus/console_libraries" \
    --web.max-connections=512 \
    --web.external-url "http://192.168.10.2:9090" \
    --web.listen-address "0.0.0.0:9090"
Restart=on-failure
[Install]
WantedBy=multi-user.target
  • 启动服务
[root@localhost prometheus]# systemctl daemon-reload  
[root@localhost prometheus]# systemctl start prometheus.service 
[root@localhost prometheus]# systemctl enable prometheus.service

网页登录测试

066c313968d045edb632eda4b7cb8111.png

2.快速部署被监控端加入监控端

  • 依然先下载软件包
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
  • 依然将软件包解压到/data目录
[root@node-centos ~]# mkdir /data
[root@node-centos ~]# tar xf node_exporter-1.5.0.linux-amd64.tar.gz -C /data/
[root@node-centos ~]# cd /data/
[root@node-centos data]# ls
node_exporter-1.5.0.linux-amd64
[root@node-centos data]# ln -s node_exporter-1.5.0.linux-amd64/ node_exporter

依然将服务加入到开机启动

  vim /usr/lib/systemd/system/node_exporter.service 
[Unit]
Description=node_exporter
Documentation=https:// prometheus.io/
After=network-online.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/data/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
  • 启动服务(确认启动成功就可以接下来的步骤了)
[root@node-centos data]# systemctl daemon-reload 
[root@node-centos data]# systemctl start node_exporter.service
[root@node-centos data]# systemctl enable node_exporter.service
[root@node-centos data]# systemctl status node_exporter.service

修改服务端配置文件,将被监控端加入服务端(在scrape_configs: 块下加入以下内容,注意ip是自己的

  vim /data/prometheus/prometheus.yml
  - job_name: "node_exporter"
    static_configs:
      - targets: ["192.168.10.3:9100"
  • 重启prometheus服务然后在网页查看是否监控到节点
[root@localhost ~]# systemctl restart prometheus.service

4f4c4526e713417993db270fd7ae50bb.png

3.使用grafana作为UI展示

以下操作在服务端进行

  • 安装grafana服务(官方命令直接复制,此版本为最新版)
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.6-1.x86_64.rpm
sudo yum install grafana-enterprise-9.3.6-1.x86_64.rpm
  • 启动服务,通过浏览器访问(http://ip:3000)(用户名/密码:admin/admin)
[root@localhost ~]# systemctl start grafana-server.service 

ae33e78fd1e042c6a3dbbda9b2102a02.png

配置将prometheus作为数据源

cabf97d94ee845a494f21342a5b13055.png698b353095b04beb8d87381b6850052d.png

输入prometheus的url,别的暂时使用默认,在最下面找到保存点击(注意如果不加http://可能会报错)

0721bcf4ac5b47689cd274d656bacbf9.png

导入prometheus 仪表盘

6451ea01a58c4d31b9b865ceca60d11c.png

仪表盘展示

47c191a53b754a56b972898805b1b6f6.png

4.导入node_exporter模板监控node节点

  • 安装饼图插件
[root@localhost ~]# grafana-cli plugins install grafana-piechart-panel 
[root@localhost ~]# systemctl restart grafana-server.service

点击小方块——点击Import——输入ID——点击load——选择prometheus——点击Import

9fe1872205a5424c8fe78277ed924de4.png

7d84fe0788d846009b80313fd7a42537.png

1097b9e16de64c26872d6b58077b716f.png

  • 数据太少也可以在服务端装上node_exporter加入到监控中,重复第二步,在配置文件中写在10.3下方
    static_configs:
      - targets: ["192.168.10.3:9100"]
      - targets: ["192.168.10.2:9100"]
  • 重启prometheus服务
[root@localhost prometheus]# systemctl restart prometheus.service 

在网页grafana仪表盘中查看是否监控到节点

62520a2f224646978d234643f8f103d3.png

  • 可以看到已经可以看到新添加的节点数据,此部分内容就先到这了。
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
目录
相关文章
|
7月前
|
消息中间件 Prometheus 监控
Prometheus实战篇:什么是Exporter
所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter.而Exporter的一个实例称为target,如图下所示, Prometheus通过轮询的方式定期从这些target中获取样本数据
|
Prometheus Kubernetes 监控
k8s中部署Grafana-prometheus系列文章第二篇
k8s中部署Grafana-prometheus系列文章第二篇
|
7月前
|
存储 Prometheus 监控
Prometheus实战篇:Prometheus简介
Prometheus 是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。
|
7月前
|
存储 Prometheus Cloud Native
Grafana 系列文章(十五):Exemplars
Grafana 系列文章(十五):Exemplars
|
7月前
|
Prometheus Cloud Native 数据安全/隐私保护
Prometheus实战篇:docker安装Prometheus
Docker搭建Prometheus监控系统
|
Prometheus Cloud Native
prometheus安装教程
prometheus安装教程
350 0
prometheus安装教程
|
存储 Prometheus 监控
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
2332 0
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
|
7月前
|
存储 JSON Cloud Native
Grafana Loki初体验
Loki介绍Loki是Grafana Labs在2018年开始研发的一款日志系统,使用的开源协议是AGPLv3,Github Star数目前是15.8k。 过去几年Star的趋势增长稳定。 属于日志存储领域的一颗新星。Grana Loki的应用架构采集侧使用 PromtailLoki核心程序(单一二...
512 7
Grafana Loki初体验
|
存储 Prometheus 监控
一文搞懂 Grafana Mimir
Hello folks,我是 Luga,今天我们来分享一下与 Grafana 有关的观测性话题- Grafana Mimir。 作为一个开源软件项目,Grafana Mimir 主要为 Prometheus 提供可扩展的长期存储功能支撑。
587 0
|
存储 数据采集 Prometheus
Prometheus踩坑记
Prometheus踩坑记
562 0