prometheus介绍与安装

news2024/11/28 14:05:53

prometheus介绍与安装

文章目录

  • prometheus介绍与安装
    • 一、Prometheus 简介
      • 1.Prometheus 优势
      • 2.Prometheus 基础架构
    • 二、Prometheus 安装
      • 1.后端存储配置
    • 三、使用 Prometheus 实现系统监控
    • 四、使用 Prometheus + Grafana 实现可视化界面
    • 四.zabbix+grafana

安装部署参考http://t.csdn.cn/AcIht

一、Prometheus 简介

Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,由 SoundCloud 公司开发。

Prometheus 基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,不需要任何 SDK 或者其他的集成过程。这样做非常适合虚拟化环境比如 VM 或者 Docker 。

Prometheus 应该是为数不多的适合 Docker、Mesos、Kubernetes 环境的监控系统之一。

1.Prometheus 优势

易于管理:

Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等);
唯一需要的就是本地磁盘,因此不会有潜在级联故障的风险。
强大的查询语言 PromQL:

Prometheus 内置一个强大的数据查询语言 PromQL,通过 PromQL 可以实现对监控数据的查询、聚合。
同时 PromQL 也被应用于数据可视化(如 Grafana)以及告警中。
高效:

对于监控系统而言,大量的监控任务必然导致有大量的数据产生。而 Prometheus 可以高效的处理这些数据。
可扩展:

Prometheus 支持联邦集群,可以让多个 Prometheus 实例产生一个逻辑集群;
当单实例 Prometheus 处理的任务量过大时,通过使用功能分区(sharding)+ 联邦集群(federation)可以对其进行扩展。
易于集成:

目前官网提供了多种语言的客户端 SDK,基于这些 SDK 可以快速让应用程序纳入到监控系统中,同时还支持与其它的监控系统集成。
可视化:

Prometheus Server 自带一个 UI,通过这个 UI 可以方便对数据进行查询和图形化展示;
同时还可以对接 Grafana 可视化工具展示精美监控指标。

2.Prometheus 基础架构

在这里插入图片描述
如上图,Prometheus 主要由以下部分组成:

  • Prometheus:主要是负责存储、抓取、聚合、查询方面。
  • Alertemanager:主要是负责实现报警功能。
  • Pushgateway:主要是实现接收有 Client-push 过来的指标数据,在指定的时间间隔,有主程序来抓取。
  • exporter:主要是负责采集物理机、中间件的信息。

二、Prometheus 安装

主机名操作系统IP
prometheuscentos7192.168.0.102
clinentcentos7192.168.0.103
granfanacentos7192.168.0.104
  • 注意:在所有节点上安装 ntpdate 工具,并进行时间同步(因为 Prometheus 对时间要求非常严格)防火墙、selinux要关闭
[root@prometheus ~]# yum -y install ntpdate
[root@prometheus ~]# /usr/sbin/ntpdate ntp1.aliyun.com
 6 Jun 03:23:05 ntpdate[17368]: no server suitable for synchronization found
[root@granfana ~]# yum -y install ntpdate
[root@granfana ~]# /usr/sbin/ntpdate ntp1.aliyun.com
 6 Jun 03:23:10 ntpdate[10779]: no server suitable for synchronization found
 [root@granfana ~]# yum -y install ntpdate
[root@granfana ~]# /usr/sbin/ntpdate ntp1.aliyun.com
 6 Jun 03:23:10 ntpdate[10779]: no server suitable for synchronization found

prometheus下载地址:https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz

[root@prometheus ~]# cd /usr/src/
[root@prometheus src]# ls
[root@prometheus src]# ls
debug  influxdb-1.7.8.x86_64 .rpm  kernels  prometheus-2.37.8.linux-arm64.tar.gz
[root@prometheus ~]# cd /usr/src/
[root@prometheus src]# tar -xf  -C prometheus-2.16.0.linux-amd64.tar.gz /usr/local/
[root@prometheus src]# cd /usr/local/
[root@prometheus local]# mv prometheus-2.16.0.linux-amd64 prometheus
[root@prometheus ~]# useradd -s /sbin/nologin prometheus
[root@prometheus local]# chown -R prometheus:prometheus /usr/local/prometheus/

[root@prometheus local]# ls
bin  etc  games  include  lib  lib64  libexec  prometheus  sbin  share  src
[root@prometheus local]# cd /usr/lib/systemd/system
[root@prometheus system]# cp sshd.service promethues.service
[root@prometheus system]# vi promethues.service 
[root@prometheus system]# cat promethues.service 
[Unit]
Description=promethues
After=network.target

[Service]
User=prometheus
Group=prometheus
WorkingDirectory=/usr/local/prometheus
ExecStart=/usr/local/prometheus/prometheus

[Install]
[root@prometheus local]# chown -R prometheus.prometheus /usr/local/prometheus/
[root@prometheus local]# systemctl daemon-reload
[root@prometheus local]# systemctl start prometheus
[root@prometheus local]# systemctl status prometheus.service
● prometheus.service - prometheus
   Loaded: loaded (/usr/lib/systemd/system/prometheus.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2023-06-06 05:29:58 EDT; 7s ago
 Main PID: 17511 (prometheus)
   CGroup: /system.slice/prometheus.service
           └─17511 /usr/local/prometheus/prometheus

Jun 06 05:29:58 prometheus prometheus[17511]: level=info ts=2023-06-06T09:29:58.909Z caller=main.go:335 vm_limits="(soft=unlimited, h...mited)"
Jun 06 05:29:58 prometheus prometheus[17511]: level=info ts=2023-06-06T09:29:58.910Z caller=main.go:661 msg="Starting TSDB ..."

当启动 Prometheus 后,便可以通过 9090 端口来访问 Prometheus 自带的 UI 界面
在这里插入图片描述

1.后端存储配置

  • 默认情况下 Prometheus 会将采集的数据存储到本机的
    /usr/local/prometheus/data 目录,存储数据的大小受限和扩展不便;
  • 所以这里使用 influxdb 作为后端的数据库来存储数据。
  • 下载地址:https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8.x86_64.rpm
[root@prometheus src]# yum -y install influxdb-1.7.8.x86_64\ .rpm 
[root@prometheus src]# cp  /etc/influxdb/influxdb.conf /etc/influxdb/influxdb.conf.bak //进行备份
[root@prometheus src]# systemctl enable --now influxdb
[root@prometheus src]# systemctl status influxdb
● influxdb.service - InfluxDB is an open-source, distributed, time series database
   Loaded: loaded (/usr/lib/systemd/system/influxdb.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2023-06-06 21:26:49 EDT; 13s ago
     Docs: https://docs.influxdata.com/influxdb/
 Main PID: 18040 (influxd)
   CGroup: /system.slice/influxdb.service
           └─18040 /usr/bin/influxd -config /etc/influxdb/influxdb.conf
[root@prometheus ~]# inf
influx          influx_inspect  influx_tsm      infocmp         infotocap       
influxd         influx_stress   info            infokey         
[root@prometheus ~]# influx
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
> create database prometheus;
> show databases;
name: databases
name
----
_internal
prometheus
> exit
//配置 Prometheus 集成 infuxdb
[root@prometheus ~]# vi /usr/local/prometheus/prometheus.yml //在最后添加
remote_write:
  - url: "http://localhost:8086/api/v1/prom/write?db=prometheus"
remote_read:
  - url: "http://localhost:8086/api/v1/prom/read?db=prometheus"
[root@prometheus ~]# systemctl restart prometheus //进行重启

三、使用 Prometheus 实现系统监控

  • 因为 Prometheus 并不能直接监控服务,其主要任务负责数据的收集,存储并对外提供数据查询支持;
  • 因此,为了能够监控到某些东西,如:主机的 CPU 使用率,我们需要使用到 Exporter。
    下载地址:https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
//安装 Node_Exporter
[root@clinent ~]# cd /usr/src/
[root@clinent src]# tar -xf node_exporter-1.5.0.linux-amd64.tar.gz -C /usr/local/
[root@clinent src]# cd /usr/local/
[root@clinent local]# mv node_exporter-1.5.0.linux-amd64 exporter
[root@clinent local]# ls
bin  etc  exporter  games  include  lib  lib64  libexec  sbin  share  src
[root@clinent local]# vi /usr/lib/systemd/system/node_exporter.service
[root@clinent local]# useradd -s /sbin/nologin prometheus

[root@clinent local]# systemctl daemon-reload
[root@clinent local]#  systemctl enable --now node_exporter
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
[root@clinent local]# systemctl status node_exporter
● node_exporter.service - node_exporter
   Loaded: loaded (/usr/lib/systemd/system/node_exporter.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2023-06-06 21:46:17 EDT; 12s ago
 Main PID: 11151 (node_exporter)
   CGroup: /system.slice/node_exporter.service
           └─11151 /usr/local/exporter/node_exporter --web.listen-address=:20001 --collector.systemd --collector.systemd.unit-whitelist=(ssh...

当启动 node_exporter 服务后,便可以通过 20001 端口来访问 Client 的监控指标。
在这里插入图片描述

//修改 Promehtues 配置文件
[root@prometheus ~]# vi /usr/local/prometheus/prometheus.yml //修改为下面配置
- job_name: "client"
  static_configs:
  - targets:
    - "192.168.0.103:20001"
[root@prometheus ~]# systemctl restart prometheus

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

四、使用 Prometheus + Grafana 实现可视化界面

  • 在 Prometheus 中,我们可以使用 Web 界面进行数据的查询和展示,但是展示效果不是很好;
  • 所以我们这里使用 Grafana 来配合 Prometheus 使用。
    下载地址:https://dl.grafana.com/oss/release/grafana-enterprise-9.5.0-1.x86_64.rpm
//安装 Grafana
[root@granfana src]# yum -y install grafana-enterprise-9.5.0-1.x86_64.rpm
[root@granfana src]# systemctl enable --now grafana-server
Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.
[root@granfana src]# systemctl status grafana-server
● grafana-server.service - Grafana instance
   Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2023-06-06 23:35:46 EDT; 18s ago
     Docs: http://docs.grafana.org
 Main PID: 11668 (grafana)
   CGroup: /system.slice/grafana-server.service
           └─11668 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --p...

//可以通过配置改为部分中文
[root@granfana ~]# vi /usr/share/grafana/conf/defaults.ini
# default_language = en-US //注释这行
default_language = zh-Hans //添加这个
[root@granfana ~]# systemctl restart grafana-server

配置 Grafana 的 Web 界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四.zabbix+grafana

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
第二种
下载地址:https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/4.3.1/download

[root@granfana ~]# unzip alexanderzobnin-zabbix-app-4.3.1.zip 
[root@granfana ~]# mv alexanderzobnin-zabbix-app /var/lib/grafana/plugins/
[root@granfana ~]# systemctl restart grafana-server

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620082.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Mininet】基础篇:开源控制器POX

大家好,我是文思月! 每文一言:时间不在于你拥有多少,而在于你如何使用! 本篇文章: 本篇文章主要是基于POX控制器进行的两个实验:一个是使交换机模拟hub(集线器)的功能&a…

逍遥自在学C语言 | 宏定义技巧让你的C代码快人一步

前言 在C语言中,宏定义是一种预处理指令,用于在代码中定义和使用常量、函数或代码片段的替代。 宏定义使用#define关键字来定义,并在代码中进行替换。宏定义具有以下优点: 简化代码:宏定义可以将一些常用的、重复出…

MySQL高可用集群解决方案之:lvs+keepalived+mysql cluster实现负载均衡

一:前言 Mysql-cluster本身实现了高可用,但是其sql节点并没有实现负载均衡。怎样让程序能均衡地访问sql节点呢,程序里写哪个数据库服务器IP呢? LVS是实现负载均衡作用的,即将客户端的需求采用特定的负载均衡算法分发…

在职考研 | 对于朝九晚五的上班族来说同等学力申硕更轻松!

我们要知道的是,考在职研究生的群体90%以上都是朝九晚五的上班族。 他们工作忙,时间和精力都很有限。 考研本身难度就很大,但是既拿不出足够多的备考时间,也没法到线下去上课。 怎么能考上呢? 在这样的现实条件下&…

yolov5部署到android studio

目录 环境获取demo将pt文件导出为ptl文件修改demo修改PrePostProcessor增加ptl文件并增加类别文件修改MainActivity 大功告成 环境 Ubuntu22.10 Pytorch2.0.1cu117 Android Studio Flamingo | 2022.2.1 Patch 1 获取demo git clone https://github.com/pytorch/android-demo…

self Attention 位置编码的奇偶输入问题

attention机制一直是放在encoder-decoder中进行使用,self-attention是为了解决前者结构无法并行计算,而抽离出的概念(前者的编码解码多为时序网络)。 但因为缺少时序模型天然的位置编码特点,所以self-attention模型需要…

Docker镜像大小优化

如何缩小镜像的体积大小? 1)尽可能的使用小体积的基础镜像 2)尽可能减少Dockerfile文件中的指令数量 3)构建镜像步骤最后添加清空系统和应用程序的缓存的命令 4)使用多级(多阶段)构建 FROM A…

亚信科技AntDB数据库荣获赛宝优选信创优秀解决方案奖

近日,由工业和信息化部电子第五研究所主办的中国赛宝信创生态合作伙伴大会暨赛宝优选信创优秀解决方案颁奖仪式在北京成功举办,亚信科技AntDB数据库信创解决方案“业务支撑系统核心数据库迁移改造”从千余案例中脱颖而出,荣获赛宝优选信创优秀…

文件描述符表

文章目录 1. 文件描述符1.1 前言1.2 理解文件1.3 文件描述附表1.4 打开文件时1.5 默认打开的三个文件 2. 重定向2.1 瞅瞅2.2 dup22.3 实现原理 3. 一切皆文件 1. 文件描述符 1.1 前言 环境:Linux 2.6 在 Linux 中,有句话叫做「一切皆文件」&#xff0…

Coinbase:如有必要,不惜在最高法院与SEC“一决胜负”!

6日早间,央视财经频道(CCTV-2)对“币安及其首席执行官被美证交会(SEC)起诉”进行了报道。 值得一提的是,央视并不常播报加密货币相关新闻,上一次是关于香港监管框架,赵长鹏&#xff…

< 每日算法:一文带你认识 “ 双指针算法 ” >

每日算法:初识双指针算法 👉 1. 双指针概念:👉 2. 左右指针> 案例一:二分查找> 案例二:双指针 - 移除元素 👉 3. 快慢指针> 案例一: 删除排序数组中的重复项 👉…

MySQL8安装详细教程

MySQL8安装详细教程 一、下载二、安装三、配置环境 一、下载 官网下载:点击跳转 进入官网后,如下界面 点击Archives可以选择版本进行下载,如下图根据描述操作即可。 百度云下载链接:点击跳转 或者复制到浏览器打开:链…

【1 微信小程序学习-核心思想与体验】

1 小程序的核心技术 .js文件,负责数据处理,函数定义和实现 .wxml文件,组件结构与数据绑定 .wxss文件,组件样式 .json配置信息补充 MVVM架构实现声明式编程 采用MVVM架构,核心是通过数据绑定实现响应式编程(声明式编程). M:数据处理 V:样式结构 VM:数据绑定和事件监听 vue和小程…

程序员的职场危机,能靠技术化解吗?

很多人认为,程序员一定要干到管理层,才会有继续走下去的希望,而踏实做技术的程序员,只会面临淘汰。 事实真是如此吗? △ 截图来源脉脉,如侵删 我们先不说结论,一起看看网友们的看法&#xff1…

Linux | Job control

Linux | Job control 文章目录 Linux | Job control命令直接将命令丢到后台中“执行”的 &将当前工作丢到后台“暂停”:Ctrl z查看后台工作状态:jobs将后台工作拿到前台处理:fg让工作在后台下的状态变成运行中:bg管理后台工作…

Qt6之vc调用qt生成的带ui的dll

受益于跨平台的特性,Qt生成dll的各种语言调用上体现的淋漓尽致,上篇已经演示了qt生成的无ui的dll及vc如何调用它,本篇将演示vc如何调用qt生成的带ui的dll。 传统观点认为Qt生成的带ui的dll受限于 QApplication 的 exec 方法,这样才…

《精通特征工程》学习笔记(6):非线性特征化与k-均值模型堆叠

1.非线性特征 当数据位于一个薄饼状的线性子空间时,PCA 是非常有用的。但如果数据形成了一个更加复杂的形状,情况又将如何呢? 如果线性子空间是一张平展的纸,那么非线性流形的一个简单例子就是卷起来的纸,它有 个非…

《人人健康》期刊简介及投稿邮箱

《人人健康》期刊简介及投稿邮箱 《人人健康》期刊简介: 主管单位:山西出版传媒集团有限责任公司 主办单位:山西三晋报刊传媒集团有限责任公司 国际刊号ISSN:1004-597X 国内刊号CN:14-1033/R 邮发代号&#xff1…

不甘做小弟,JS时间对象又在搞事情!(上)

关注“大前端私房菜”微信公众号,回复暗号【面试宝典】即可免费领取107页前端面试题。 Date Date 是 js 的一个内置对象,也叫内置构造函数。提供了一堆的方法帮助我们更方便的操作时间 创建时间对象:new Date() 获取时间对象:ne…

NTSC和PAL视频格式的区别

1,历史演变 NTSC早期描述的是525I59.94格式视频,1953年确立标准,美国主导。后来为了方便和PAL制式格式的视频转换,于是将60hz的倍数关系的帧率纳入该系统。 PAL描述的是625I50格式视频,1967年确立标准,欧洲…