prometheus的介绍及安装方法

发布时间:2021-09-14 22:52:18 作者:chen
来源:亿速云 阅读:185
# Prometheus的介绍及安装方法

## 目录
1. [什么是Prometheus](#什么是prometheus)
2. [核心特性](#核心特性)
3. [架构组成](#架构组成)
4. [适用场景](#适用场景)
5. [安装准备](#安装准备)
6. [Linux系统安装](#linux系统安装)
   - [二进制包安装](#二进制包安装)
   - [Docker安装](#docker安装)
7. [Windows系统安装](#windows系统安装)
8. [配置与启动](#配置与启动)
9. [基本使用](#基本使用)
10. [常见问题](#常见问题)
11. [总结](#总结)

---

## 什么是Prometheus

Prometheus是由SoundCloud开发的开源监控告警系统,于2016年加入CNCF(云原生计算基金会),成为继Kubernetes之后第二个毕业的项目。它采用Pull模式采集指标数据,支持多维度数据模型和强大的查询语言PromQL,广泛应用于云原生和微服务架构的监控场景。

## 核心特性

- **多维度数据模型**:通过metric名称和键值对标签标识时间序列数据
- **PromQL查询语言**:支持灵活的数据聚合和切片分析
- **独立服务节点**:不依赖分布式存储,单个节点即可工作
- **Pull+Push结合**:默认基于HTTP拉取数据,同时支持Pushgateway推送
- **可视化支持**:原生集成Grafana展示面板
- **告警管理**:通过Alertmanager实现多维告警路由

## 架构组成

![Prometheus架构图](https://prometheus.io/assets/architecture.png)

主要组件包括:
- **Prometheus Server**:核心服务端,负责抓取和存储数据
- **Client Libraries**:多种语言的客户端库(Go/Java/Python等)
- **Pushgateway**:短期任务数据推送中间件
- **Exporters**:各种系统/服务的指标暴露器(Node Exporter等)
- **Alertmanager**:告警消息处理中心
- **Service Discovery**:支持Kubernetes/Consul等服务的自动发现

## 适用场景

✅ 适合场景:
- 微服务架构监控
- Kubernetes集群监控
- 需要多维数据查询的业务监控
- 自定义指标采集与分析

❌ 不适合场景:
- 需要100%精确计费的场景(设计上更侧重可靠性而非精确性)
- 传统企业级监控(更适合Zabbix等方案)

---

## 安装准备

### 系统要求
- **最低配置**:
  - CPU:2核
  - 内存:4GB
  - 磁盘:50GB(建议SSD)

- **推荐配置**:
  - CPU:4核+
  - 内存:8GB+
  - 磁盘:100GB+ SSD

### 网络要求
- 确保监控目标可通过HTTP访问
- 开放端口:
  - Prometheus Server:9090
  - Node Exporter:9100
  - Alertmanager:9093

---

## Linux系统安装

### 二进制包安装

#### 1. 下载最新版本
```bash
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz
cd prometheus-*

2. 配置服务文件

创建/etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus Server
After=network.target

[Service]
User=prometheus
Group=prometheus
ExecStart=/usr/local/bin/prometheus \
  --config.file=/etc/prometheus/prometheus.yml \
  --storage.tsdb.path=/var/lib/prometheus/data \
  --web.console.templates=/etc/prometheus/consoles \
  --web.console.libraries=/etc/prometheus/console_libraries

Restart=always

[Install]
WantedBy=multi-user.target

3. 创建系统用户和目录

sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus /var/lib/prometheus
sudo cp prometheus.yml /etc/prometheus/
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus

4. 启动服务

sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

Docker安装

docker run -d \
  -p 9090:9090 \
  -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus

Windows系统安装

1. 下载Windows版本

官方Release页面下载windows-amd64压缩包

2. 解压运行

Expand-Archive prometheus-2.47.0.windows-amd64.zip
cd prometheus-2.47.0.windows-amd64
.\prometheus.exe

3. 配置为服务(可选)

使用NSSM工具:

nssm install Prometheus
# 在GUI界面配置执行路径和参数
nssm start Prometheus

配置与启动

基础配置文件示例

prometheus.yml:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  
  - job_name: 'node'
    static_configs:
      - targets: ['192.168.1.100:9100', '192.168.1.101:9100']

验证配置

promtool check config prometheus.yml

启动参数说明

参数 说明
--config.file 指定配置文件路径
--storage.tsdb.path 数据存储目录
--web.listen-address 监听地址(默认:9090)
--web.enable-lifecycle 启用HTTP API管理接口

基本使用

访问Web界面

浏览器打开:http://<server-ip>:9090

常用PromQL示例

# CPU使用率
100 - (avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100

# 内存使用量
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes

# HTTP请求率
sum(rate(http_requests_total[5m])) by (status_code)

添加Node Exporter

wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
cd node_exporter-*
./node_exporter

常见问题

Q1: 数据存储时间太短

修改启动参数:

--storage.tsdb.retention.time=30d  # 保留30天数据

Q2: 如何添加认证?

配置basic_auth:

scrape_configs:
  - job_name: 'secure'
    basic_auth:
      username: admin
      password: secret

Q3: 如何监控Kubernetes?

推荐使用kube-prometheus项目:

git clone https://github.com/prometheus-operator/kube-prometheus
kubectl apply --server-side -f manifests/setup
kubectl apply -f manifests/

总结

Prometheus作为云原生监控的标准解决方案,具有以下优势: 1. 强大的多维数据模型 2. 灵活的查询语言 3. 活跃的社区生态 4. 与Kubernetes深度集成

建议后续学习: - 配置Alertmanager实现告警 - 集成Grafana可视化 - 学习PromQL高级查询 - 探索各种Exporters的使用

官方文档:prometheus.io/docs
中文社区:prometheus.wang “`

注:实际使用时请: 1. 替换占位图片链接 2. 检查最新版本号 3. 根据实际环境调整配置参数 4. 补充适合自己业务场景的监控指标示例

推荐阅读:
  1. deepin系统u盘的安装方法介绍
  2. Lombok是什么?Lombok安装方法介绍

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

prometheus

上一篇:SpringSecurity的角色继承分析

下一篇:如何在Dubbo拦截器中拿到Invoker的引用对象

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》