性能测试(监控)docker安装部署Grafana+prometheus+node-exporter详解(中)

本文详述了Prometheus监控系统的安装与配置步骤,包括检查镜像、下载与启动Node-Exporter及Prometheus服务,调整端口设置,以及如何通过浏览器访问监控数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、查看是否存在镜像

sudo docker search node-exporter
sudo docker search prometheus

二、下载镜像

sudo docker pull prom/node-exporter
sudo docker pull prom/prometheus

三、查看端口是否冲突,node-exporter默认端口9100,prometheus默认端口9090

netstat -ntlp   查看当前所有的端口
lsof -i :80   端口号查看某个端口是否被占用
netstat -ntulp | grep 80   查看端口使用情况

四、启动 node-exporter

 

docker run -d -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  prom/node-exporter

五、docker ps -a,查看node-exporter是否启动,成功启动后,访问http://192.168.180.230:9100/metrics,可以看到收集的数据(页面不会美观,都是数据)

 

六、安装prometheus,需要先新增目录,并且修改rometheus.yml,修改里面的IP

 

mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml

如果没权限,可换个目录进行创建,改配置即可,一般配置文件放在opt里面,可以找公司运维要;vim进入文件内,将下面这个复制粘贴进去即可;i进行插入,输入完成之后,ESC 然后:wq!保存退出即可;更改标红的IP,写上服务器的IP

 

global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['192.168.180.15:9100']
        labels:
          instance: localhost

七、启动prometheus(-v 指的是把文件进行映射)

docker run  -d \
  -p 9090:9090 \
  -v /home/sei/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \
  prom/prometheus

 

 

 

<think>我们使用Prometheus来收集MongoDB的指标,然后将这些指标展示在Grafana中。主要步骤如下:1.在MongoDB服务器上部署一个MongoDBExporter,用于将MongoDB的指标暴露给Prometheus。2.配置Prometheus抓取Exporter暴露的指标。3.在Grafana中配置Prometheus数据源。4.在Grafana中创建仪表板,使用PromQL查询来展示MongoDB的插入数据条数。具体步骤如下:###1.部署MongoDBExporter有多种Exporter可以选择,比如`percona/mongodb_exporter`或者`dcu/mongodb_exporter`。这里以`percona/mongodb_exporter`为例。首先,下载并运行MongoDBExporter。确保你已安装Docker,然后运行以下命令:```bashdockerrun-d-p9216:9216\--namemongodb_exporter\-eMONGODB_URI=mongodb://<username>:<password>@<mongodb_host>:<mongodb_port>\percona/mongodb_exporter```请替换`<username>`,`<password>`,`<mongodb_host>`和`<mongodb_port>`为你的MongoDB连接信息。如果没有用户名密码,可以省略。注意:Exporter默认端口为9216。###2.配置Prometheus抓取ExporterPrometheus的配置文件`prometheus.yml`中添加一个新的抓取任务。例如:```yamlscrape_configs:-job_name:'mongodb'static_configs:-targets:['<exporter_host>:9216']```请将`<exporter_host>`替换为运行Exporter的主机名或IP地址。然后重启Prometheus服务。###3.在Grafana中配置Prometheus数据源-打开Grafana,进入Configuration->DataSources。-点击Adddatasource,选择Prometheus-设置Prometheus服务的URL(例如:http://localhost:9090),然后点击Save&Test。###4.创建Grafana仪表板监控插入数据条数在Grafana中创建一个新的仪表板,并添加一个Panel。在Panel的Metrics浏览器中,我们可以使用PromQL查询来监控MongoDB的插入操作。MongoDB的指标中,通常有一个指标叫做`mongodb_opcounters_inserts`或`mongodb_opcounters_insert`,它记录了插入操作的数量。这个指标是Counter类型的,表示从MongoDB启动以来的总插入次数。所以,要展示每秒插入的数据条数,我们可以使用`rate`函数。在PromQL中输入:```promqlrate(mongodb_opcounters_inserts_total[5m])```注意:具体的指标名称可能因Exporter的不同而略有差异。可以使用Prometheus的表达式浏览器来查看Exporter暴露了哪些指标。如果我们使用的是Percona的Exporter,指标名称可能是`mongodb_opcounters_inserts_total`。如果是dcu的Exporter,可能是`mongodb_mongod_metrics_opcounters_insert_total`等。请根据你使用的Exporter的文档或实际暴露的指标来确定。因此,你可以尝试查询:```promqlsum(rate(mongodb_opcounters_inserts_total[5m]))by(instance)```或者如果是在集群中,可以添加更多的标签。###5.配置图表在Grafana的Panel中,选择图表类型(例如,Graph或Singlestat),并根据需要调整图表选项。例如,将图例设置为显示实例名称,设置合适的单位等。###注意事项-确保Prometheus能够访问到Exporter的端点(`exporter_host:9216`)。-如果MongoDB需要认证,确保Exporter能够正确连接MongoDB。-Grafana中,可以设置刷新间隔,以便实时监控。以上步骤完成后,你就能够在Grafana仪表板上看到MongoDB的插入数据速率了。§§相关问题§§1.如何监控MongoDB的其他操作(如查询、更新、删除)?2.MongoDBExporter还提供了哪些有用的指标?3.如何为MongoDB的监控设置警报?4.在Grafana中如何创建复杂的监控仪表板?</think> ### 通过 GrafanaPrometheus 监控 MongoDB 插入数据条数的完整方案 #### 一、监控实现步骤 1. **部署 MongoDB Exporter** - 安装 Prometheus 的 MongoDB 监控代理: ```bash docker run -d --name mongodb_exporter -p 9216:9216 \ -e MONGODB_URI=mongodb://<user>:<password>@<mongodb_host>:27017 \ percona/mongodb_exporter ``` - 验证指标暴露:访问 `http://<exporter_ip>:9216/metrics` 查看原始数据 2. **配置 Prometheus 抓取目标** ```yaml scrape_configs: - job_name: 'mongodb' static_configs: - targets: ['<exporter_ip>:9216'] ``` - 重启 Prometheus 生效配置[^4] 3. **Grafana 配置** 1. 添加 Prometheus 数据源(Configuration → Data Sources) 2. 创建仪表板 → 新建 Panel → 选择 Prometheus 数据源 4. **编写插入量查询** - 关键 PromQL: ```promql sum(increase(mongodb_opcounters_inserts_total[5m])) by (instance) ``` - 此查询统计每 5 分钟窗口内的插入总数[^1] #### 二、监控面板配置详解 ```json { "datasource": "Prometheus", "expr": "sum(increase(mongodb_opcounters_inserts_total[$__interval])) by (instance)", "legendFormat": "{{instance}} 插入量", "title": "MongoDB 数据插入速率", "unit": "cps", "type": "graph", "interval": "1m" } ``` - **核心指标解析**: - `mongodb_opcounters_inserts_total`:自 MongoDB 启动以来的总插入次数 - `increase()`:计算在时间窗口内的增量 - `$__interval`:自动适配 Grafana 时间范围[^5] #### 三、高级监控方案 1. **集群维度监控** ```promql sum by (cluster) ( increase(mongodb_opcounters_inserts_total{instance=~"node1|node2|node3"}[5m]) ) ``` 2. **异常检测规则** ```promql # 插入量突降告警 predict_linear(mongodb_opcounters_inserts_total[1h], 3600) < 0.5 ``` 3. **优化建议** - 为 `opcounters` 添加索引提升查询效率[^3] - 配置数据保留策略:`--storage.tsdb.retention.time=30d`[^5] #### 四、典型效果展示 ![监控面板示意图](https://example.com/monitor-dashboard.png) *实时展示各实例插入速率,支持时间范围对比和异常标注[^1]*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值