Prometheus的安装部署

目录

一、概述

二、Prometheus的安装

1、二进制方式

1.1、下载系统安装包​编辑

1.2、解压

1.3、创建数据目录,服务运行用户

1.4、设置为系统服务(创建服务运行脚本)

1.5、启动服务,并通过浏览器访问验证

2、容器方式

2.1、安装docker-ce

​编辑

2.2、下载Prometheus镜像

2.3、直接使用官方镜像启动,并映射prometheus.yml配置文件到本地进行管理

2.4、浏览器访问验证

三、Prometheus监控案例

1、监控远程linux主机:

1.1、在远程linux主机(就是被监控端)上安装node_exporter组件

1.2、验证:浏览器访问http://被监控端IP:9100/metrics就可以查看到node_exporrter在被监控端手机的监控信息​编辑

1.3、添加Prometheus相关配置,采集node_exporter数据

1.4、通过Prometheus管理界面查看:点击status——>点击targets——>发现多了一台监控目标​编辑

2、监控Windows机器

2.1、安装vmi-exporter

2.2、修改Prometheus主配置文件 /usr/local/prometheus/prometheus.yml

2.3、验证

3、监控远程MySQL 

3.1、下载并解压mysqld_exporter组件

3.2、安装mariadb数据库,并授权

3.3、添加至系统服务

3.4、启动服务

3.5、修改Prometheus的主配置文件 

3.6、验证


一、概述

基本原理

        通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

基本组件

  • Prometheus Server 根据配置完成数据采集, 服务发现以及数据存储,提供PromQL查询语言的支持。

  • Alertmanager 警告管理器,用来进行报警。

  • Exporters(探针): 是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。

  • Push Gateway 支持临时性Job主动推送指标的中间网关。

Prometheus的特点  

  • 多维度数据模型。

  • 灵活的查询语言PromQL。

  • 不依赖分布式存储,单个服务器节点是自主的。

  • 通过基于HTTP的pull方式采集时序数据。

  • 可以通过中间网关进行时序列数据推送。

  • 通过服务发现或者静态配置来发现目标服务对象。

  • 支持多种多样的图表和界面展示,比如Grafana等。

二、Prometheus的安装

【在防火墙SELinux关闭的情况下,操作系统: cat /etc/centos-release   CentOS Linux release 7.9.2009 (Core) 】

1、二进制方式

1.1、下载系统安装包

1.2、解压

# tar xf prometheus-2.21.0.linux-amd64.tar.gz -C /usr/local/
创建软链接
# ln -sv /usr/local/prometheus-2.21.0.linux-amd64/ /usr/local/prometheus

1.3、创建数据目录,服务运行用户

# mkdir /usr/local/prometheus/data
# useradd prometheus -M -s /sbin/nologin
修改权限
# chown -R prometheus.prometheus /usr/local/prometheus/*

1.4、设置为系统服务(创建服务运行脚本)

# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
After=network.target[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.enable-lifecycle --web.enable-admin-api --storage.tsdb.path=/usr/local/prometheus/data
Restart=on-failure
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
  • --config.file:指定prometheus的配置文件路径
  • --web.enable-lifecycle:指定prometheus配置更改后可以进行热加载
  • --web.enable-admin-api
  • --storage.tsdb.path:指定监控数据存储路径
  • --storage.tsdb.retention:指定数据保留时间 

1.5、启动服务,并通过浏览器访问验证

 浏览器访问:  http://192.168.8.187:9090

2、容器方式

2.1、安装docker-ce

1.安装一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm22、添加软件信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3、安装docker-ce
yum -y install docker-ce4、开启服务
systemctl start docker5、查看版本
docker --version

2.2、下载Prometheus镜像

#拉取镜像
docker pull prom/prometheus

查看:

2.3、直接使用官方镜像启动,并映射prometheus.yml配置文件到本地进行管理

(1)创建prometheus.yml文件
        # mkdir /data
        # vim /data/prometheus.yml

global:scrape_interval:     15s scrape_configs:- job_name: 'local'metrics_path: "/metrics"scrape_interval: 5sstatic_configs:- targets: ['192.168.8.189:9090']

(2)使用官方镜像运行

[root@k8s-node02 ~]# docker run -d --name prometheus -v /data:/data -p 9090:9090 prom/prometheus --config.file=/data/prometheus.yml
22322ff646c0aad39a1521607b7fcc2f42855f8458e2a0bdd85e938248cb7dc3

2.4、浏览器访问验证

三、Prometheus监控案例

1、监控远程linux主机:

1.1、在远程linux主机(就是被监控端)上安装node_exporter组件

下载软件
[root@agent ~]# wget -c https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz解压软件
[root@agent ~]# tar xf node_exporter-1.0.1.linux-amd64.tar.gz -C /usr/local/
[root@agent ~]# ln -sv /usr/local/node_exporter-1.0.1.linux-amd64/ /usr/local/node_exporter
‘/usr/local/node_exporter’ -> ‘/usr/local/node_exporter-1.0.1.linux-amd64/’创建服务运行用户
# useradd prometheus -M -s /sbin/nologin
修改权限
# chown -R prometheus.prometheus /usr/local/node_exporter/*添加系统服务
[root@agent ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure[Install]
WantedBy=multi-user.target启动服务
[root@agent ~]# systemctl daemon-reload
[root@agent ~]# systemctl start node_exporter.service端口检查(默认端口)
[root@agent ~]# netstat -lnupt | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      62158/node_exporter

1.2、验证:浏览器访问http://被监控端IP:9100/metrics就可以查看到node_exporrter在被监控端收集的监控信息

1.3、添加Prometheus相关配置,采集node_exporter数据

 vim /usr/local/prometheus/prometheus.yml
        在主配置文件的最后加上下面三行:

          - job_name: 'agent1'
            static_configs:
            - targets: ['192.168.8.188:9100']

# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]# The label name is added as a label `label_name=<label_value>` to any timeseries scraped from this config.labels:app: "prometheus"- job_name: 'agent1'static_configs:- targets: ['192.168.8.188:9100']

1.4、通过Prometheus管理界面查看:点击status——>点击targets——>发现多了一台监控目标

2、监控Windows机器

2.1、安装vmi-exporter

首先在需要监控的Windows机器上安装wmi_exporter。wmi_exporter下载地址:https://github.com/martinlindhe/wmi_exporter/releases

安装完毕后,会自动创建一个开机自启的服务,默认端口为9182。

2.2、修改Prometheus主配置文件 /usr/local/prometheus/prometheus.yml

2.3、验证

3、监控远程MySQL 

3.1、下载并解压mysqld_exporter组件

#下载
wget -c https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz#解压
tar xf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
ln -sv /usr/local/mysqld_exporter-0.12.1.linux-amd64/ /usr/local/mysqld_exporter
‘/usr/local/mysqld_exporter’ -> ‘/usr/local/mysqld_exporter-0.12.1.linux-amd64/’

3.2、安装mariadb数据库,并授权

下载yum install -y mariadb-server
启动服务
systemctl enable --now mariadb
授权用户mysql -e "grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123'"
(注意:授权ip为localhost,因为不是prometheus服务器来直接找mariadb获取数据,而是prometheus服务器找mysql_exporter,mysql_exporter再找mariadb。所以这个localhost是指的mysql_exporter的IP)

3.3、添加至系统服务

vim /usr/lib/systemd/system/mysql_exporter.service
[Unit]
Description=mysqld_exporter
After=network.target[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
Restart=on-failure[Install]
WantedBy=multi-user.target

3.4、启动服务

# chown -R prometheus.prometheus /usr/local/mysqld_exporter/*
# systemctl daemon-reload
# systemctl start mysql_exporter.service# netstat -lnupt | grep 9104
tcp6       0      0 :::9104                 :::*                    LISTEN      11295/mysqld_export

3.5、修改Prometheus的主配置文件 

vim /usr/local/prometheus/prometheus.yml

3.6、验证

查看mysql_exporter在被监控端收集的监控信息:

web管理界面查看:

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

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

相关文章

Jupyter Notebook为什么适合数据分析?

Jupyter Notebook 是一款超实用的 Web 应用程序&#xff0c;在数据科学、编程等诸多领域都发挥着重要作用。它最大的特点就是能让大家轻松创建和共享文学化程序文档。这里说的文学化程序文档&#xff0c;简单来讲&#xff0c;就是把代码、解释说明、数学公式以及数据可视化结果…

Python清空Word段落样式的方法

在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档&#xff0c;包括清空段落样式。以下是几种清空段落样式的方法&#xff1a; 方法一&#xff1a;直接设置段落样式为"Normal" from docx import Documentdoc Document(your_document.docx) # 打…

macOS 上是否有类似 WinRAR 的压缩软件?

对于习惯使用 Windows 的用户来说&#xff0c;WinRAR 是经典的压缩/解压工具&#xff0c;但 macOS 系统原生并不支持 RAR 格式的解压&#xff0c;更无法直接使用 WinRAR。不过&#xff0c;macOS 平台上有许多功能相似甚至更强大的替代工具&#xff0c;以下是一些推荐&#xff1…

WebRtc09:网络基础P2P/STUN/TURN/ICE

网络传输基本知识 NATSTUN&#xff08;Session Traversal Utilities for NAT&#xff09;TURNICE NAT 产生的原因 IPV4地址不够出于网络安全的原因 NAT种类 完全锥型NAT(Full Cone NAT)地址限制型NAT(Address Restricted Cone NAT)端口限制型NAT(Port Restricted Cone NAT…

如何添加或删除极狐GitLab 项目成员?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 项目成员 (BASIC ALL) 成员是有权访问您的项目的用户和群组。 每个成员都有一个角色&#xff0c;这决定了他们在项目中可以…

用单目相机和apriltag二维码aruco实现单目定位

目录 一、核心流程与代码框架 1. ‌环境准备‌ 2. ‌ArUco定位实现 3. ‌AprilTag定位实现&#xff08;需额外安装Apriltag库&#xff09; 二、关键优化点 1‌.亚像素角点优化 2‌ 多标签联合定位 三、性能指标&#xff08;实测&#xff09; 四、常见问题 ‌检测失败…

tinyrenderer笔记(透视矫正)

tinyrenderer个人代码仓库&#xff1a;tinyrenderer个人练习代码 引言 还要从上一节知识说起&#xff0c;在上一节中我为了调试代码&#xff0c;换了一个很简单的正方形 obj 模型&#xff0c;配上纹理贴图与法线贴图进行渲染&#xff0c;得了下面的结果&#xff1a; what&…

MySQL的内置函数与复杂查询

目录 前言 一、聚合函数 1.1日期函数 1.2字符串函数 1.3数学函数 1.4其它函数 二、关键字周边 2.1关键字的生效顺序 2.2数据源 2.3可以使用聚合函数的关键字 前言 在前面几篇文章中&#xff0c;讲解了有关MySQL数据库、数据库表的创建、数据库表的数据操作等等。本文我…

见多识广4:Buffer与Cache,神经网络加速器的Buffer

目录 前言传统意义上的Buffer与Cache一言以蔽之定义与主要功能BufferCache 数据存储策略二者对比 神经网络加速器的bufferInput BufferWeight BufferOutput Buffer与传统buffer的核心区别总结 前言 知识主要由Qwen和Kimi提供&#xff0c;我主要做笔记。 参考文献&#xff1a; …

内存的位运算

示例&#xff1a;提取和设置标志位 假设我们有一个32位的整数&#xff0c;其中不同的位代表不同的标志。例如&#xff1a; 位0&#xff1a;是否开启日志&#xff08;0表示关闭&#xff0c;1表示开启&#xff09; 位1&#xff1a;是否启用调试模式&#xff08;0表示禁用&#…

linux -shell原理与运用

1---shell的工作方式和功能 shell的工作方式: shell本身也是一个应用程序,存储在/bin 或者是/user/bin中 登录的时候 会根据/etc/passwd文件载入shell默认执行 shell启动后,就会显示命令提示符,等待用户输入命令 命令的逻辑: 首先会判断时内部命令还是外部命令,如果是内部…

js获取uniapp获取webview内容高度

js获取uniapp获取webview内容高度 在uni-app中&#xff0c;如果你想要获取webview的内容高度&#xff0c;可以使用uni-app提供的bindload事件来监听webview的加载&#xff0c;然后通过调用webview的invokeMethod方法来获取内容的高度。 以下是一个示例代码&#xff1a; <te…

Windows系统升级Nodejs版本

什么是nodejs Node.js 是一个免费、开源、跨平台的 JavaScript 运行时环境, 它让开发人员能够创建服务器 Web 应用、命令行工具和脚本。 NodeJs官网 网址&#xff1a;Node.js — 在任何地方运行 JavaScript 可以通过网址下载安装&#xff0c;通过官网可以看到现在最新版本为22…

Relay算子注册(在pytorch.py端调用)

1. Relay算子注册 (C层) (a) 算子属性注册 路径: src/relay/op/nn/nn.cc RELAY_REGISTER_OP("hardswish").set_num_inputs(1).add_argument("data", "Tensor", "Input tensor.").set_support_level(3).add_type_rel("Identity…

【JavaEE】网络原理之初识(1.0)

目录 ​编辑 局域网与广域网 IP地址和端口号 实现简单的服务器客户端交互 简单理解socket TCP和UDP的差别&#xff08;初识&#xff09; socket面对udp DatagramSocket API DatagramSocket 构造方法 DatagramSocket 方法&#xff1a; DatagramPacket API Data…

Redis数据结构ZipList,QuickList,SkipList

目录 1.ZipList 1.2.解析Entry&#xff1a; 1.3Encoding编码 1.4.ZipList连锁更新问题 2.QuickList SkipList跳表 RedisObject 五种数据类型 1.ZipList redis中的ZipList是一种紧凑的内存储存结构&#xff0c;主要可以节省内存空间储存小规模数据。是一种特殊的双端链表…

laravel 12 监听syslog消息,并将消息格式化后存入mongodb

在Laravel 12中实现监听Syslog消息并格式化存储到MongoDB&#xff0c;需结合日志通道配置、Syslog解析和MongoDB存储操作。以下是具体实现方案&#xff1a; 一、环境配置 安装MongoDB扩展包 执行以下命令安装必要的依赖&#xff1a; composer require jenssegers/mongodb ^4.0确…

【STM32项目实战】一文了解单片机的SPI驱动外设功能

前言&#xff1a;在前面我有文章介绍了关于单片机的SPI外设CUBEMX配置&#xff0c;但是要想使用好SPI这个外设我们还必须对其原理性的时序有一个详细的了解&#xff0c;所以这篇文章就补充一下SPI比较偏向底层的时序性的逻辑。 1&#xff0c;SPI简介 SPI是MCU最常见的对外通信…

【挖洞利器】GobyAwvs解放双手

【渗透测试工具】解放双手&Goby配合Awvs渗透测试利器\x0a通过Goby和Awvs 解放双手https://mp.weixin.qq.com/s/SquRK8C5cRpWmfGbIOqxoQ

LangChain4j(15)——RAG高级之跳过检索

之前的文章中&#xff0c;我们介绍了RAG的使用&#xff0c;但是&#xff0c;每次提问时&#xff0c;都会通过RAG进行检索。有时&#xff0c;检索是不必要执行的&#xff0c;比如&#xff0c;当用户只是说“你好”时。于是&#xff0c;我们需要有条件的跳过检索过程。 跳过决策…