当前位置: 首页 > news >正文

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管理界面查看:

相关文章:

  • Nginx 安全防护与Https 部署实战
  • nnUNet V2修改网络——暴力替换网络为Swin-Unet
  • Windows远程连接MySQL报错,本地navicat能连接MySQL
  • 解决 Open WebUI 网络搜索错误:`NameResolutionError`
  • Windows11下通过Docker安装mysql8.0
  • 科学养身指南:600 字开启健康生活
  • day008-文件属性专题
  • 前端知识-hook
  • 深度学习系统学习系列【6】之深度学习技巧
  • css3伸缩盒模型第二章(侧轴相关)
  • go 编译报错:build constraints exclude all Go files
  • DolphinScheduler-3.2.0集群部署教程
  • Android OKHttp原理简单说明
  • android-ndk开发(7): 从库文件反推ndk版本
  • 简单介绍分布式定时任务XXL-JOB
  • MySQL + Qwen3-0.5B + Flask + Dify 工作流部署指南
  • 为什么800*800mm防静电地板“应用较少
  • Flink + Kafka 构建实时指标体系的实战方法论
  • AI与机器学习、深度学习在气候变化预测中的应用与实践
  • Nginx安全防护
  • 宁波市人大常委会审议生育工作报告,委员建议学前教育免费
  • 外交部:印巴都表示不希望局势升级,望双方都能保持冷静克制
  • 上海明后天将迎强风大雨,陆地最大阵风7~9级
  • 上海黄浦区拟73.2654亿元协议出让余庆里7宗组合地块
  • 综合治理食品添加剂滥用问题,国务院食安办等六部门联合出手
  • 陈芋汐世界杯总决赛卫冕夺冠,全红婵无缘三大赛“全满贯”