最新最有效的prometheus+grafana+blackbox+node-exporter简单分享

本文分享了一套包括prometheus、grafana、blackbox_exporter和node-exporter的监控解决方案。node-exporter用于收集系统资源信息,如CPU、内存和磁盘使用情况;blackbox_exporter则负责服务状态检查,监测HTTP响应状态。此外,还提到了cadvisor用于监控Docker容器的资源使用情况,以及process-exporter用于收集进程信息。文章提供目录结构并提及了一键部署选项。

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

前言

最新编写,配置文件均正常使用,prometheus监控根据需求添加相关exporter即可,配置grafana数据源为prometheus,添加对应面板

  • node-exporter收集系统信息,用于监控CPU、内存、磁盘使用率、磁盘读写等系统信息
  • blackbox收集服务状态信息,如判断服务http请求是否返回200继而报警
  • cadvisor收集docker信息,用于展示docker的cpu、内存、上传下载等信息
  • process-exporter 收集进程信息,内存、cpu使用等
Directory Structure
xxxxxx:~/prometheus+grafana$ tree -L 2
.
├── alertmanager
│   ├── alertmanager
│   ├── alertmanager.log
│   ├── alertmanager.yml
│   ├── amtool
│   ├── data
│   ├── LICENSE
│   ├── NOTICE
│   └── template
├── alertmanager-0.21.0.linux-amd64.tar.gz
├── blackbox_exporter
│   ├── blackbox_exporter
│   ├── blackbox.yml
│   ├── blackbox.yml.bak
│   ├── LICENSE
│   └── NOTICE
├── blackbox_exporter-0.18.0.linux-amd64.tar.gz
├── grafana
│   └── grafana_7.2.2_amd64.deb
├── node_exporter
│   ├── LICENSE
│   ├── node_exporter
│   └── NOTICE
├── node_exporter-1.0.1.linux-amd64.tar.gz
├── prometheus
│   ├── alert.rules.yml
│   ├── console_libraries
│   ├── consoles
│   ├── data
│   ├── LICENSE
│   ├── NOTICE
│   ├── prometheus
│   ├── prometheus.yml
│   ├── prometheus.yml.bak
│   ├── promtool
│   ├── rule.yml
│   └── services.yml
└── prometheus-2.22.0.linux-amd64.tar.gz

blackbox_exporter —process status collection
./blackbox_exporter --config.file=blackbox.yml --web.listen-address=:7995


xxxxx:~/prometheus+grafana/blackbox_exporter$ cat blackbox.yml
modules:
  http_2xx:  # http 检测模块  Blockbox-Exporter 中所有的探针均是以 Module 的信息进行配置
    prober: http
    timeout: 10s
    http:
      valid_status_codes: [200]  # 这里最好作一个返回状态码,在grafana作图时,有明示
      method: GET
      preferred_ip_protocol: "ip4"
  http_post_2xx: # http post 监测模块
    prober: http
    timeout: 10s
    http:
      method: POST
      preferred_ip_protocol: "ip4"
  tcp_connect:  # TCP 检测模块
    prober: tcp
    timeout: 10s

prometheus
# reload prometheus config
# precondition start as:
./prometheus --config.file=prometheus.yml  --web.enable-lifecycle &

curl -X  POST http://localhost:9090/-/reload


# configs
xxxxxx:~/prometheus+grafana/prometheus$ ls -l
total 161712
-rw-rw-r--  1 ctdna ctdna     1272 10月 28 17:08 alert.rules.yml
drwxr-xr-x  2 ctdna ctdna     4096 10月 15 22:21 console_libraries
drwxr-xr-x  2 ctdna ctdna     4096 10月 15 22:21 consoles
drwxrwxr-x 12 ctdna ctdna     4096 10月 28 17:00 data
-rw-r--r--  1 ctdna ctdna    11357 10月 15 22:21 LICENSE
-rw-r--r--  1 ctdna ctdna     3420 10月 15 22:21 NOTICE
-rwxr-xr-x  1 ctdna ctdna 87729971 10月 15 20:32 prometheus
-rw-rw-r--  1 ctdna ctdna     1429 10月 28 11:46 prometheus.yml
-rw-r--r--  1 ctdna ctdna      926 10月 15 22:21 prometheus.yml.bak
-rwxr-xr-x  1 ctdna ctdna 77801407 10月 15 20:34 promtool
-rw-rw-r--  1 ctdna ctdna     1037 10月 27 20:41 rule.yml
-rw-rw-r--  1 ctdna ctdna      391 10月 28 15:54 services.yml

xxxxxx:~/prometheus+grafana/prometheus$ cat alert.rules.yml 
groups:
- name: alert.rules
  rules:
  - alert: cpu_usage_over_threshold
    expr: 100 - avg(irate(node_cpu_seconds_total{
   mode="idle"}[1m])) by (alarmhost,alarmproject,alarmtype) * 100  > 90
    # Alarm duration
    for: 5m
    labels:
      severity: "critical"
    annotations:
      summary: "Host {
   { $labels.alarmhost }} CPU usage continues to exceed the threshold for five minutes and is currently {
   {humanize $value}}%"

  - alert: mem_usage_over_threshold
    expr: 100 - (node_memory_MemAv
好的,以下是一个基于Docker Compose的搭建PrometheusGrafana、Alertmanager、Blackbox ExporterNode Exporter的示例: ```yaml version: "3" services: prometheus: image: prom/prometheus container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' - '--web.enable-admin-api' restart: always grafana: image: grafana/grafana container_name: grafana ports: - "3000:3000" volumes: - ./grafana:/var/lib/grafana restart: always alertmanager: image: prom/alertmanager container_name: alertmanager ports: - "9093:9093" volumes: - ./alertmanager/config.yml:/etc/alertmanager/config.yml command: - '--config.file=/etc/alertmanager/config.yml' restart: always blackbox-exporter: image: prom/blackbox-exporter container_name: blackbox-exporter ports: - "9115:9115" volumes: - ./blackbox-exporter/config.yml:/etc/blackbox-exporter/config.yml command: - '--config.file=/etc/blackbox-exporter/config.yml' restart: always node-exporter: image: prom/node-exporter container_name: node-exporter ports: - "9100:9100" restart: always ``` 需要注意的是,这里的配置文件都需要自己创建并且挂载到对应的容器中。例如,prometheus.yml、config.ymlconfig.yml分别对应Prometheus、AlertmanagerBlackbox Exporter的配置文件。同时,Grafana的数据目录也需要挂载到主机上以便数据持久化。 另外,需要注意的是这只是一个示例,具体的配置文件需要根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值