# 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 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-*
创建/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
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
sudo systemctl daemon-reload sudo systemctl start prometheus sudo systemctl enable prometheus
docker run -d \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
从官方Release页面下载windows-amd64
压缩包
Expand-Archive prometheus-2.47.0.windows-amd64.zip cd prometheus-2.47.0.windows-amd64 .\prometheus.exe
使用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管理接口 |
浏览器打开:http://<server-ip>:9090
# 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)
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
修改启动参数:
--storage.tsdb.retention.time=30d # 保留30天数据
配置basic_auth:
scrape_configs: - job_name: 'secure' basic_auth: username: admin password: secret
推荐使用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. 补充适合自己业务场景的监控指标示例
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。