linux安装prometheus(一)

一、什么是Prometheus

Prometheus(普罗米修斯)是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。
2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。
Prometheus目前在开源社区相当活跃。
Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。

二、Prometheus的特点

  • 多维度数据模型。
  • 灵活的查询语言。
  • 不依赖分布式存储,单个服务器节点是自主的。
  • 通过基于HTTP的pull方式采集时序数据。
  • 可以通过中间网关进行时序列数据推送。
  • 通过服务发现或者静态配置来发现目标服务对象。
  • 支持多种多样的图表和界面展示,比如Grafana等。

先简单看一眼 Prometheus的整体框架图

三、Prometheus + Grafana 的个数据监控采集成图

Prometheus 由多个组件组成,但是其中许多组件是可选的

  • Prometheus Server用于收集指标和存储时间序列数据,并提供查询接口
  • client Library客户端库(例如Go,Python,Java等),为需要监控的服务产生相应的/metrics并暴露给Prometheus Server。目前已经有很多的软件原生就支持Prometheus,提供/metrics,可以直接使用。对于像操作系统已经不提供/metrics,可以使用exporter,或者自己开发exporter来提供/metrics服务。
  • push gateway主要用于临时性的 jobs。由于这类 jobs 存在时间较短,可能在 Prometheus 来 pull 之前就消失了。对此Jobs定时将指标push到pushgateway,再由Prometheus Server从Pushgateway上pull。

这种方式主要用于服务层面的 metrics

  • exporter用于暴露已有的第三方服务的 metrics 给 Prometheus。
  • alertmanager从 Prometheus server 端接收到 alerts 后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件,pagerduty,OpsGenie, webhook 等。
  • Web UIPrometheus内置一个简单的Web控制台,可以查询指标,查看配置信息或者Service Discovery等,实际工作中,查看指标或者创建仪表盘通常使用Grafana,Prometheus作为Grafana的数据源。

  • Prometheus Server:收集指标和存储时间序列数据,并提供查询接口
  • ClientLibrary:客户端库
  • Push Gateway:短期存储指标数据。主要用于临时性的任务
  • Exporters:采集已有的第三方服务监控指标并暴露metrics
  • Alertmanager:告警
  • Web UI:简单的Web控制台

四、基本原理

Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对

<think>嗯,用户需要的是在Linux系统上安装Prometheus的详细步骤。从引用内容来看,用户提供的参考信息很全面,包含了多种安装方式:直接下载二进制包、使用wget下载、通过systemd配置服务等。用户可能是个运维人员或开发者,正在搭建监控系统,需要可靠的生产环境部署方案。 用户明确要求中文回答,且引用格式规范。注意到用户提供的引用[1][3][4]都涉及目录创建和文件移动操作,引用[2][5]则提到Docker安装和客户端库,说明用户可能需要多方案参考。不过核心问题还是聚焦在基础安装流程上。 安装方案需要覆盖这些关键点:①下载解压 ②目录结构规范 ③配置文件说明 ④系统服务配置。特别要注意引用[3][4]都强调了systemd服务配置的重要性,这能确保服务稳定运行。用户没有指定Linux发行版,所以采用通用性最强的二进制包方案。 安全方面要提醒数据目录权限,引用[3]提到/data/prometheus路径,这个细节可以保留。性能方面引用[5]提到的客户端库监控其实属于应用集成,和安装本身无关,暂时不纳入主体步骤。 用户可能后续会问监控目标配置或Grafana集成,所以相关问题里预设了防火墙配置和验证方法。引用[4]提到的consoles移动操作属于高级配置,初次安装不必展开,放在注意事项里更合适。 最后检查技术细节:解压命令用tar -xzf比引用[1]的-xf更规范;默认端口9090在引用[2][3]都明确提到必须保留;systemd服务文件路径要符合Linux惯例(/etc/systemd/system)。</think>以下是在 Linux 系统上安装 Prometheus 的详细步骤,基于二进制包安装(最常见方式): ### 安装步骤 1. **创建专用用户和目录** (提升安全性) ```bash sudo useradd --no-create-home --shell /bin/false prometheus sudo mkdir /etc/prometheus /var/lib/prometheus sudo chown prometheus:prometheus /var/lib/prometheus ``` 2. **下载并解压二进制包** ```bash # 获取最新版本号 (示例以 v2.51.2 为例) LATEST=$(curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep 'tag_name' | cut -d '"' -f 4) # 下载并解压 wget https://github.com/prometheus/prometheus/releases/download/$LATEST/prometheus-${LATEST:1}.linux-amd64.tar.gz tar xvf prometheus-${LATEST:1}.linux-amd64.tar.gz cd prometheus-${LATEST:1}.linux-amd64 ``` 3. **复制程序文件** ```bash sudo cp prometheus promtool /usr/local/bin/ sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool ``` 4. **配置文件和目录** ```bash # 复制配置文件 sudo cp prometheus.yml /etc/prometheus/ sudo chown -R prometheus:prometheus /etc/prometheus # 复制控制台文件 sudo cp -r consoles/ console_libraries/ /etc/prometheus/ ``` 5. **创建 Systemd 服务文件** (`/etc/systemd/system/prometheus.service`) ```ini [Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries Restart=always [Install] WantedBy=multi-user.target ``` 6. **启动服务** ```bash sudo systemctl daemon-reload sudo systemctl enable prometheus sudo systemctl start prometheus ``` 7. **验证安装** ```bash systemctl status prometheus # 检查服务状态 curl http://localhost:9090 # 测试Web访问 ``` ### 关键配置文件说明 (`/etc/prometheus/prometheus.yml`) ```yaml global: scrape_interval: 15s # 默认抓取间隔 scrape_configs: - job_name: "prometheus" # 监控自身 static_configs: - targets: ["localhost:9090"] ``` ### 注意事项 1. **防火墙**:开放端口 9090 ```bash sudo ufw allow 9090/tcp ``` 2. **数据存储**:监控数据保存在 `/var/lib/prometheus`,确保磁盘空间充足[^3] 3. **更新配置**:修改配置后需重启服务 ```bash sudo systemctl restart prometheus ``` 4. **安全加固**:建议通过反向代理(如 Nginx)添加 HTTPS 和身份验证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值