Prometheus+Grafana学习(五) 安装Prometheus

news/2024/5/19 2:02:46 标签: prometheus, 安装prometheus, prometheus组件, 监控

文章目录

  • 前言
  • 1、Prometheus介绍
    • 1.1、Prometheus组件说明
    • 1.2、Prometheus的特点
    • 1.3、Prometheus的架构
    • 1.4、Prometheus的使用场景
  • 2、安装Prometheus
    • 1.下载
    • 2.安装Prometheus
    • 3.注册系统服务
    • 4.启动服务
  • 3、配置Prometheus
    • 3.1配置总体说明
    • 3.2global配置
    • 3.3 alerting告警配置
    • 3.4 rule_files规则文件配置
    • 3.5 scrape_configs拉取配置
    • 3.6 remote_read/remote_write远程读写配置
    • 3.7 修改prometheus.yml

前言

前面章节的Prometheus是用Docker安装的,需要依赖Docker且不易于持久化。下面介绍手动安装。

1、Prometheus介绍

Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。Prometheus 于2016年加入了 Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。
官网:https://prometheus.io
最新版本:2.32.1

1.1、Prometheus组件说明

组件组件说明
Prometheus开源的系统监控和报警框架,灵感源自Google的Borgmon监控系统
AlertManager处理由客户端应用程序(如Prometheus server)发送的警报。它负责将重复数据删除,分组和路由到正确的接收者集成,还负责沉默和抑制警报
Node_Exporter用来监控各节点的资源信息的exporter,应部署到prometheus监控的所有节点
PushGateway推送网关,用于接收各节点推送的数据并暴露给Prometheus server

Exporter是一个采集监控数据并通过Prometheus监控规范对外提供数据的组件,能为Prometheus提供监控的接口。
Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可获取到需要采集的监控数据。不同的Exporter负责不同的业务。

1.2、Prometheus的特点

  1. 多维的数据模型(基于时间序列的Key、Value键值对)
  2. 灵活的查询和聚合语言PromQL
  3. 提供本地存储和分布式存储
  4. 通过基于HTTP的Pull模型采集时间序列数据
  5. 可利用Pushgateway(Prometheus的可选中间件)实现Push模式
  6. 可通过动态服务发现或静态配置发现目标机器
  7. 支持多种图表和数据大盘

1.3、Prometheus的架构

在这里插入图片描述

1.4、Prometheus的使用场景

prometheus非常适合记录任何纯数字时间序列。它既适合以机器为中心的监视,也适合监视高度动态的面向服务的体系结构。在微服务世界中,它对多维数据收集和查询的支持是一种特别的优势。
prometheus的设计旨在提高可靠性,使其成为中断期间要使用的系统,从而使您能够快速诊断问题。每个prometheus服务器都是独立的,而不依赖于网络存储或其他远程服务,当基础设施部分出现问题时仍然可以使用它。

2、安装Prometheus

当前安装版本为2.32.1

1.下载

下载地址:https://prometheus.io/download/

wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz

2.安装Prometheus

tar zxvf prometheus-2.32.1.linux-amd64.tar.gz
mv prometheus-2.32.1.linux-amd64 /usr/local/Prometheus
mkdir -p /data/Prometheus

3.注册系统服务

vi /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
After=network.target

[Service]
Type=simple
Environment="GOMAXPROCS=4"
#User=prometheus
#Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/prometheus/prometheus \
  --config.file=/usr/local/prometheus/prometheus.yml \
  --storage.tsdb.path=/data/prometheus \
  --storage.tsdb.retention=30d \
  --web.console.libraries=/usr/local/prometheus/console_libraries \
  --web.console.templates=/usr/local/prometheus/consoles \
  --web.listen-address=0.0.0.0:9090 \
  --web.read-timeout=5m \
  --web.max-connections=10 \
  --query.max-concurrency=20 \
  --query.timeout=2m \
  --web.enable-lifecycle
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
NoNewPrivileges=true
LimitNOFILE=infinity
ReadWriteDirectories=/data/prometheus
ProtectSystem=full

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target

4.启动服务

systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus

访问http://172.16.10.171:9090
在这里插入图片描述
这样就启动成功了

3、配置Prometheus

3.1配置总体说明

配置文件在/usr/local/prometheus/prometheus.yml,主要分以下几个配置模块:

global全局配置
alerting告警配置
rule_files规则文件配置
scrape_configs拉取配置
remote_read、remote_write远程读写配置

3.2global配置

global指定在所有其他配置上下文中有效的参数。还可用作其他配置部分的默认设置。

global:
  # 默认拉取频率
  [ scrape_interval: <duration> | default = 1m ]

  # 拉取超时时间
  [ scrape_timeout: <duration> | default = 10s ]

  # 执行规则频率
  [ evaluation_interval: <duration> | default = 1m ]

  # 通信时添加到任何时间序列或告警的标签
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    [ <labelname>: <labelvalue> ... ]

  # 记录PromQL查询的日志文件
  [ query_log_file: <string> ]

3.3 alerting告警配置

alerting指定与Alertmanager相关的设置。

alerting:
  alert_relabel_configs:
    [ - <relabel_config> ... ]
  alertmanagers:
    [ - <alertmanager_config> ... ]

3.4 rule_files规则文件配置

rule_files指定prometheus加载的任何规则的位置,从所有匹配的文件中读取规则和告警。

rule_files:
  [ - <filepath_glob> ... ]

3.5 scrape_configs拉取配置

scrape_configs指定prometheus监控哪些资源。默认会拉取prometheus本身的时间序列数据,通过http://ip:9090/metrics进行拉取。
一个scrape_config指定一组目标和参数,描述如何拉取它们。在一般情况下,一个拉取配置指定一个作业。在高级配置中,这可能会改变。
可以通过static_configs参数静态配置目标,也可以使用支持的服务发现机制之一动态发现目标。
此外,relabel_configs在拉取之前,可以对任何目标及其标签进行修改。

scrape_configs:
job_name: <job_name>

# 拉取频率
[ scrape_interval: <duration> | default = <global_config.scrape_interval> ]

# 拉取超时时间
[ scrape_timeout: <duration> | default = <global_config.scrape_timeout> ]

# 拉取的http路径
[ metrics_path: <path> | default = /metrics ]

# honor_labels 控制prometheus处理已存在于收集数据中的标签与prometheus将附加在服务器端的标签("作业"和"实例"标签、手动配置的目标标签和由服务发现实现生成的标签)之间的冲突
# 如果 honor_labels 设置为 "true",则通过保持从拉取数据获得的标签值并忽略冲突的服务器端标签来解决标签冲突
# 如果 honor_labels 设置为 "false",则通过将拉取数据中冲突的标签重命名为"exported_<original-label>"来解决标签冲突(例如"exported_instance"、"exported_job"),然后附加服务器端标签
# 注意,任何全局配置的 "external_labels"都不受此设置的影响。在与外部系统的通信中,只有当时间序列还没有给定的标签时,它们才被应用,否则就会被忽略
[ honor_labels: <boolean> | default = false ]

# honor_timestamps 控制prometheus是否遵守拉取数据中的时间戳
# 如果 honor_timestamps 设置为 "true",将使用目标公开的metrics的时间戳
# 如果 honor_timestamps 设置为 "false",目标公开的metrics的时间戳将被忽略
[ honor_timestamps: <boolean> | default = true ]

# 配置用于请求的协议
[ scheme: <scheme> | default = http ]

# 可选的http url参数
params:
  [ <string>: [<string>, ...] ]

# 在每个拉取请求上配置 username 和 password 来设置 Authorization 头部,password 和 password_file 二选一
basic_auth:
  [ username: <string> ]
  [ password: <secret> ]
  [ password_file: <string> ]

# 在每个拉取请求上配置 bearer token 来设置 Authorization 头部,bearer_token 和 bearer_token_file 二选一
[ bearer_token: <secret> ]

# 在每个拉取请求上配置 bearer_token_file 来设置 Authorization 头部,bearer_token_file 和 bearer_token 二选一
[ bearer_token_file: /path/to/bearer/token/file ]

# 配置拉取请求的TLS设置
tls_config:
  [ <tls_config> ]

# 可选的代理URL
[ proxy_url: <string> ]

# Azure服务发现配置列表
azure_sd_configs:
  [ - <azure_sd_config> ... ]

# Consul服务发现配置列表
consul_sd_configs:
  [ - <consul_sd_config> ... ]

# DNS服务发现配置列表
dns_sd_configs:
  [ - <dns_sd_config> ... ]

# EC2服务发现配置列表
ec2_sd_configs:
  [ - <ec2_sd_config> ... ]

# OpenStack服务发现配置列表
openstack_sd_configs:
  [ - <openstack_sd_config> ... ]

# file服务发现配置列表
file_sd_configs:
  [ - <file_sd_config> ... ]

# GCE服务发现配置列表
gce_sd_configs:
  [ - <gce_sd_config> ... ]

# Kubernetes服务发现配置列表
kubernetes_sd_configs:
  [ - <kubernetes_sd_config> ... ]

# Marathon服务发现配置列表
marathon_sd_configs:
  [ - <marathon_sd_config> ... ]

# AirBnB's Nerve服务发现配置列表
nerve_sd_configs:
  [ - <nerve_sd_config> ... ]

# Zookeeper Serverset服务发现配置列表
serverset_sd_configs:
  [ - <serverset_sd_config> ... ]

# Triton服务发现配置列表
triton_sd_configs:
  [ - <triton_sd_config> ... ]

# 静态配置目标列表
static_configs:
  [ - <static_config> ... ]

# 目标relabel配置列表
relabel_configs:
  [ - <relabel_config> ... ]

# metric relabel配置列表
metric_relabel_configs:
  [ - <relabel_config> ... ]

# 每次拉取样品的数量限制
# metric relabelling之后,如果有超过这个数量的样品,整个拉取将被视为失效。0表示没有限制
[ sample_limit: <int> | default = 0 ]

3.6 remote_read/remote_write远程读写配置

remote_read/remote_write将数据源与prometheus分离。

# 与远程写功能相关的设置
remote_write:
  [ - <remote_write> ... ]

# 与远程读功能相关的设置
remote_read:
  [ - <remote_read> ... ]

prometheusyml_284">3.7 修改prometheus.yml

将前几章部署的springboot、mysql、nginx的exporter配置信息,配置到prometheus.yml中。

vi /usr/local/prometheus/prometheus.yml

添加配置为如下:

# 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"]
  - job_name: "spring"
    scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path: "/demo/actuator/prometheus"
    static_configs:
    - targets: ["192.168.100.88:7901"]
  - job_name: "mysql8.x"
    static_configs:
    - targets: ["172.16.10.169:9104", "192.168.100.88:9104"]
  - job_name: "nginx"
    static_configs:
    - targets: ["172.16.10.171:9913"]

修改完后重启下prometheus

systemctl restart Prometheus

访问prometheus的targets: http://172.16.10.171:9090/targets
在这里插入图片描述
发现除了自身的prometheus,一个springboot项目,两个mysql,一个nginx,都接入进来了。


http://www.niftyadmin.cn/n/1302163.html

相关文章

SQL SERVER2008下载安装

SQL SERVER2008下载安装 下载连接&#xff1a;https://www.microsoft.com/zh-cn/download/details.aspx?id30438 点击下载 选择下载的程序 安装即可

Prometheus+Grafana学习(六) 安装Grafana

文章目录前言1、Grafana介绍2、安装Grafana1.下载2. 安装grafana3. 配置grafana3.1 导入prometheus数据源3.2 导入dashboard前言 前面章节的Grafana是用Docker安装的&#xff0c;需要依赖Docker且不易于持久化。下面介绍手动安装。 1、Grafana介绍 grafana 是一款采用 go 语…

安装.NET Framework3.5报错

安装.NET Framework3.5报错 可离线安装 原文链接&#xff1a;https://www.cnblogs.com/qqflying/p/9914744.html

Prometheus+Grafana学习(七) 使用node_exporter监控

文章目录node_exporter介绍一、安装Node Exporter1、下载2、安装二、测试Node Exporter三、配置Prometheus1、修改Prometheus配置文件2、重启Prometheus四、配置Grafananode_exporter介绍 node exporter 作用是收集操作系统的基本系统, 例如cpu&#xff0c; 内存, 硬盘空间等基…

Prometheus+Grafana学习(八)部署AlertManager

文章目录前言一、安装AlertManager1、下载2、安装AlertManager二、配置AlertManager1、配置Prometheus2、配置通知路由和接收器2.1、global2.2、templates2.3、route2.4、receivers2.5、inhibit_rules2.6、配置示例(邮件告警)2.6.1配置alertmanager2.6.2配置prometheus的rule_f…

Linux编辑器

Linux编辑器 vi和vim&#xff1a;是linux中的文本编辑器&#xff0c;用来在linux中查看或编辑文本文件&#xff0c;就好像windows中的记事本一样。 vim是vi的增强版&#xff0c;vi的绝大多数用法在vim都适用 vi和vim的使用 ①一般模式&#xff1a;用vi或vim命令打开文件(vim t…

RocketMQ双主双从异步复制部署流程

文章目录1、下载2、修改配置文件3、配置环境变量4、启动namesrv5、启动broker6、安装rocketmq-externals6.1、准备jar包6.2、准备rocketmq-externals6.3、运行rocketmq-externals这里只用了两台机器&#xff0c;主和备用一台&#xff08;测试资源有限&#xff09; 1、下载 下…

SFTP传输文件工具FileZilla下载安装教程

SFTP传输文件工具FileZilla下载安装教程 中文官网链接&#xff1a;https://www.filezilla.cn/download/client windows平台可下载标红的&#xff0c;也可以下载绿色版下载后一直傻瓜式安装即可 教程链接&#xff1a;https://blog.csdn.net/qq_34147601/article/details/858413…