Prometheus主机相关指标表达式整理

Prometheus主机监控指标与表达式
本文记录了使用Prometheus采集主机节点的CPU、内存、磁盘使用率等指标,并通过表达式进行topN筛选的过程。

问题描述

需要通过Prometheus采集监控的主机节点的cpu使用率、内存使用率、磁盘使用率等指标数据,并根据topk排序筛选出前topN的主机。对过程进行一下记录。

表达式

    //磁盘读速率top10
    private final static String TOP10_DISK_READ = "topk(10,sum(irate(node_disk_reads_completed_total{}[5m])) by(instance_addr))";
    //磁盘写速率top10
    private final static String TOP10_DISK_WRITE = "topk(10,sum(irate(node_disk_writes_completed_total{}[5m])) by(instance_addr))";
    //网络流入速率top10
    private final static String TOP10_NET_RECEIVE = "topk(10,sum(irate(node_network_receive_bytes_total{}[5m])) by(instance_addr))";
    //网络流出速率top10
    private final static String TOP10_NET_TRANSMIT = "topk(10,sum(irate(node_network_transmit_bytes_total{}[5m])) by(instance_addr))";
    //cpu使用率top10
    private final static String TOP10_LINUX_CPU_RATE = "topk(10,avg((1-irate(node_cpu_seconds_total{mode='idle'}[5m])) * 100) by(instance_addr))";
    //内存使用率top10
    private final static String TOP10_LINUX_MEMORY_RATE = "topk(10, avg((1 - node_memory_MemAvailable_bytes{}/node_memory_MemTotal_bytes{})* 100) by(instance_addr))";
    //磁盘使用率top10
    private final static String TOP10_LINUX_DISK_RATE = "topk(10, (1- (sum(node_filesystem_free_bytes{})by(instance_addr))/(sum(node_filesystem_size_bytes{})by(instance_addr))) * 100)";


    //磁盘读速率
    private final static String DISK_READ = "sum(irate(node_disk_reads_completed_total{instance_addr='$instance_addr'}[5m]))";
    //磁盘写速率
    private final static String DISK_WRITE = "sum(irate(node_disk_writes_completed_total{instance_addr='$instance_addr'}[5m]))";
    //网络流入速率
    private final static String NET_RECEIVE = "sum(irate(node_network_receive_bytes_total{instance_addr='$instance_addr'}[5m]))";
    //网络流出速率
    private final static String NET_TRANSMIT = "sum(irate(node_network_transmit_bytes_total{instance_addr='$instance_addr'}[5m]))";
    //CPU使用率
    private final static String LINUX_CPU_RATE = "avg((1-irate(node_cpu_seconds_total{mode='idle',instance_addr='$instance_addr'}[5m])) * 100)";
    //内存使用率
    private final static String LINUX_MEMORY_RATE = "avg((1 - node_memory_MemAvailable_bytes{instance_addr='$instance_addr'}/node_memory_MemTotal_bytes{instance_addr='$instance_addr'})* 100)";
    //磁盘使用率
    private final static String LINUX_DISK_RATE = "(1- (sum(node_filesystem_free_bytes{instance_addr='$instance_addr'}))/(sum(node_filesystem_size_bytes{instance_addr='$instance_addr'}))) * 100";
<think> 首先,用户的问题是:“我想查找prometheus监控服务器的配置方法 请问prometheus监控服务器的配置方法”。我需要基于提供的引用内容来回答这个问题。 回顾引用内容: - 引用[1]:搭建Prometheus监控,提到Prometheus适用于监控服务端口、接口响应等。 - 引用[2]:Prometheus安装使用,包括添加监控数据源到Grafana。 - 引用[3]:Prometheus监控主机的配置,具体配置job_name为'node-export(host-prometheus)',targets是IP:9100。 - 引用[4]:Prometheus监控Linux服务器,包括安装node_exporter,配置job_name为'node',使用file_sd_configs。 - 引用[5]:prometheus监控服务器,下载node_exporter,配置prometheus的job_name为'test',targets是多个IP:9100。 用户的问题直接询问“prometheus监控服务器的配置方法”,所以我需要总结配置方法的步骤。 系统级指令: - 所有行内数学表达式使用$...$。 - 独立公式使用$$...$$,但由于主题是Prometheus配置,可能没有数学公式,但如果有,我需要遵守。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 回答结构: - 结构清晰,逐步解决问题。 - 参考用户上一次的问题:用户的问题就是当前的检索,没有历史对话,所以基于提供的引用。 - 保证回答真实可靠,基于引用。 关键步骤从引用中提取: 1. **安装node_exporter**:在需要监控的服务器上安装node_exporter。下载、解压、启动(引用[5])。 2. **配置Prometheus**:编辑Prometheus的配置文件(通常是prometheus.yml),添加job来监控服务器。 - 例如:引用[3]和[5]使用static_configs指定targets为IP:9100。 - 引用[4]使用file_sd_configs来动态加载配置。 3. **重启Prometheus服务**以使配置生效。 4. **验证安装**:如引用[4]所述,通过浏览器访问IP:9100/metrics来检查node_exporter是否工作。 5. **可视化监控数据**:引用[2]提到使用Grafana添加Prometheus数据源并导入Dashboard。 回答组织: - 以步骤形式呈现,清晰明了。 - 引用相关部分:例如,当提到安装node_exporter时,引用[^5];当提到配置job时,引用[^3]或[^4]。 - 使用中文。 生成相关问题: - 在回答结束时,添加相关问题部分,格式如示例所示:§§相关问题§§,然后列出几个问题。 - 问题应基于主题,如优化、常见问题、扩展等。 完整回答结构: 1. 简要介绍Prometheus监控服务器的目的(基于引用[1])。 2. 详细步骤: - 步骤1:安装node_exporter(引用[^5])。 - 步骤2:配置Prometheus(引用[^3]或[^4])。 - 步骤3:重启服务(引用[^3])。 - 步骤4:验证监控(引用[^4])。 - 步骤5:可视化配置(可选,基于引用[^2])。 3. 结束回答。 4. 添加相关问题。 确保自然添加引用标识: - 例如:“在需要监控的服务器上安装node_exporter,包括下载、解压和启动[^5]。” 数学表达式:如果提到了任何数学内容,使用格式。但这里似乎没有,所以可能不需要。 </think> 以下是基于您查询的“Prometheus监控服务器的配置方法”的详细步骤说明。Prometheus是一款开源的监控系统,适用于监控服务器资源(如CPU、内存、磁盘等)、端口状态和服务响应等场景。配置过程主要包括在目标服务器上安装监控代理(如node_exporter),并在Prometheus服务器上添加监控任务。参考引用的内容,我整理了清晰、可靠的配置指南,所有步骤均来源于可信源[^1][^2][^3][^4][^5]。 ### Prometheus监控服务器的配置步骤 配置分为两部分:在目标服务器安装node_exporter(用于收集服务器指标),以及在Prometheus服务器上配置监控任务。以下是逐步操作指南: 1. **在目标服务器上安装和启动node_exporter** node_exporter是Prometheus的官方代理组件,用于暴露服务器指标数据。 - 下载node_exporter安装包(推荐使用最新稳定版)。 - 解压并启动服务: ```bash wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz # 下载,版本可调整[^5] tar -zxvf node_exporter-0.18.1.linux-amd64.tar.gz # 解压 cd node_exporter-0.18.1.linux-amd64 ./node_exporter # 启动node_exporter服务,默认端口9100[^5] ``` - 验证安装:在浏览器访问 `http://<目标服务器IP>:9100/metrics`(如`192.168.184.144:9100/metrics`),如果看到大量指标数据,说明安装成功[^4]。 2. **在Prometheus服务器上配置监控任务** 编辑Prometheus的配置文件(通常为`prometheus.yml`),添加job来监控目标服务器。 - 使用静态配置(适合固定IP):添加以下内容到`prometheus.yml`: ```yaml scrape_configs: - job_name: 'node-export' # 任务名,可自定义如'host-monitor'[^3][^5] static_configs: - targets: ['<目标服务器IP>:9100'] # 多个IP用逗号分隔,如['192.168.1.100:9100', '192.168.1.101:9100'][^3] ``` - 或使用动态配置(适合大规模环境):通过文件服务发现(file_sd_configs)加载多个服务器配置[^4]: ```yaml scrape_configs: - job_name: 'node' file_sd_configs: - files: ['/opt/prometheus/sd_config/*.yml'] # 配置文件目录,存放目标IP列表 refresh_interval: 5s # 每5秒刷新配置[^4] ``` 在`/opt/prometheus/sd_config/`下创建YAML文件(如`hosts.yml`),内容为: ```yaml - targets: - '192.168.1.100:9100' - '192.168.1.101:9100' ``` 3. **重启Prometheus服务并验证监控** - 重启Prometheus使配置生效: ```bash sudo systemctl restart prometheus # 或使用服务管理命令 ``` - 在Prometheus Web UI(默认地址`http://<Prometheus服务器IP>:9090`)查看Targets状态。如果状态为“UP”,表示监控成功[^3][^4]。 4. **可选:配置Grafana可视化(推荐)** 使用Grafana可以创建仪表盘来直观展示监控数据。 - 添加Prometheus数据源:在Grafana中点击“Add data source”,选择Prometheus,填入Prometheus服务器地址(如`http://localhost:9090`)[^2]。 - 导入Dashboard:例如选择“Prometheus 2.0 Stats”模板,即可查看服务器CPU、内存等实时图表[^2]。 ### 注意事项 - **安全性**:确保防火墙允许9100端口访问(node_exporter)和9090端口(Prometheus)。 - **性能优化**:对于高负载环境,可使用Prometheus的远程存储(如Thanos)扩展能力[^1]。 - **监控范围**:此方法适用于Linux服务器监控;如需监控Windows或其他服务,需适配不同exporter(如wmi_exporter)。 - 引用说明:配置细节基于实际运维实践,确保可靠性[^1][^3][^4][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值