node-exporter+cadvisor+prometheus+grafana

目录

各组件解释

Node Exporter:

cAdvisor:

Prometheus:

Grafana:

Prometheus的基础架构

环境概述

一、分别在宿主机安装部署node-exporter+cadvisor

node-exporter

1、在github上下载tar包

2、解压并重定向

3、创建node_exporter用户

4、给node_exporter命令设置属主属组并赋权

5、设置开机自启动

6、查看是否监听9100端口

cadvisor

1、下载cadvisor

2、重定向

3、设置属主属组并赋权

4、设置开机自启动

5、开放8080跟9100端口

二、使用 Docker 部署 Prometheus

1、创建 Prometheus 配置文件 prometheus.yml,配置数据源

2、使用 Docker 运行 Prometheus,并挂载配置文件。

3、开放端口

4、浏览器访问Prometheus

三、使用 Docker 部署 Grafana

1、使用 Docker 运行 Grafana。

2、修改配置文件使其支持邮箱告警

3、开放3000端口

4、配置grafana

5、添加数据源

6、导入仪表盘

四、配置邮箱告警

1、创建文件夹

2、添加收件人

3、配置告警通知策略

4、配置告警规则

5、保存退出,当前是正常状态

6、配置完会增加一个监控中的心

7、触发告警条件后变成pending

8、五分钟后变为firing

9、收到告警邮箱

各组件解释

  1. Node Exporter:

    • Node Exporter 是一个用于收集服务器硬件和操作系统级别的指标的工具,它是 Prometheus 生态系统的一部分。
    • 它暴露了一个 HTTP 服务,默认在端口 9100 上,提供了一系列的 metrics,包括 CPU 使用率、内存使用情况、磁盘空间、网络带宽等信息。
    • Node Exporter 适用于各种 Linux、Windows、macOS 等操作系统,是监控服务器基础资源的常用工具。
  2. cAdvisor:

    • cadvisor(Container Advisor)是 Google 开发的一个容器监控工具,用于收集、监控、分析 Docker 容器的性能和资源使用情况。
    • 它是一个运行在容器中的守护进程,可以监控宿主机和容器级别的资源使用情况,包括 CPU 使用率、内存使用情况、网络吞吐量、文件系统使用情况等。
    • cadvisor通常用于帮助开发者和系统管理员理解容器的资源使用模式,诊断性能问题,以及优化容器的资源分配。
  3. Prometheus:

    • Prometheus 是一个开源监控系统,具有高度可扩展性和灵活性,由 SoundCloud 开发并捐赠给了 Cloud Native Computing Foundation。
    • 它通过 HTTP pull 模型从配置好的目标(如 Node Exporter 和 cAdvisor)定期抓取指标数据,并存储在本地磁盘上。
    • Prometheus 提供了强大的数据模型和查询语言(PromQL),支持高维数据查询和丰富的数据可视化功能。
    • 它还包含一个告警manager,用于处理和发送告警通知。
  4. Grafana:

    • Grafana 是一个开源的数据可视化工具,它支持多种数据源,包括 Prometheus、InfluxDB、Graphite 等。
    • 它允许用户创建自定义的仪表板和图表,用于展示和监控时间序列数据。
    • Grafana 提供了丰富的可视化选项,如折线图、柱状图、热图等,并且支持告警和通知功能。
    • 它还支持用户和团队协作,可以创建多个组织和用户,并控制对仪表板的访问权限。

Prometheus的基础架构

环境概述

宿主机直接安装node-exporter+cadvisor,然后使用docker部署prometheus,grafana,最后在grafana配置邮箱告警。

主机名IP地址操作系统版本
node01192.168.0.128ubuntu20.04.5 LTS
node02192.168.0.129ubuntu20.04.5 LTS
node03192.168.0.130ubuntu20.04.5 LTS

一、分别在宿主机安装部署node-exporter+cadvisor

node-exporter

1、在github上下载tar包

https://github.com/prometheus/node_exporter/releasesicon-default.png?t=N7T8https://github.com/prometheus/node_exporter/releaseshttps://github.com/google/cadvisor/releases/icon-default.png?t=N7T8https://github.com/google/cadvisor/releases

wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz

2、解压并重定向

tar zxf node_exporter-1.8.1.linux-amd64.tar.gz

mv node_exporter /usr/local/bin/

3、创建node_exporter用户

useradd -M -s /bin/false node_exporter

4、给node_exporter命令设置属主属组并赋权

chown node_exporter:node_exporter /usr/local/bin/node_exporter

chmod 777 /usr/local/bin/node_exporter

5、设置开机自启动

cat << EOF | sudo tee /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target
EOF

systemctl start node_exporter

systemctl enable node_exporter

6、查看是否监听9100端口

ss -anptl | grep 9100

cadvisor

1、下载cadvisor

wget https://github.com/google/cadvisor/releases/download/v0.49.1/cadvisor-v0.49.1-linux-amd64

2、重定向

mv cadvisor-v0.49.1-linux-amd64 /usr/local/bin/cadvisor

3、设置属主属组并赋权

 chown root:root /usr/local/bin/cadvisor

 chmod 777 /usr/local/bin/cadvisor

4、设置开机自启动

cat << EOF | sudo tee /etc/systemd/system/node_exporter.service
[Unit]
Description=Cadvisor
After=network.target

[Service]
User=root
Group=root
Type=simple
ExecStart=/usr/local/bin/cadvisor

[Install]
WantedBy=multi-user.target
EOF

systemctl start cadvisor

systemctl enable cadvisor

5、开放8080跟9100端口

ufw allow 8080

ufw allow 9100

二、使用 Docker 部署 Prometheus

1、创建 Prometheus 配置文件 prometheus.yml,配置数据源

mkdir /data/to/prometheus/ -p

cat /data/to/prometheus/prometheus.yml

global:
  scrape_interval: 15s # 默认抓取间隔,可以针对每个作业单独设置
  evaluation_interval: 15s # 规则评估间隔

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  # Prometheus 自身 metrics
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  # node_exporter targets
  - job_name: 'node'
    static_configs:
      - targets: ['192.168.0.128:9100', '192.168.0.129:9100', '192.168.0.130:9100']

  # cadvisor targets
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['192.168.0.128:8080', '192.168.0.129:8080', '192.168.0.130:8080']

2、使用 Docker 运行 Prometheus,并挂载配置文件。

docker run -d \
  --name=prometheus \
  -p 9090:9090 \
  -v /data/to/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus

3、开放端口

ufw allow 9090

4、浏览器访问Prometheus

http://192.168.0.128:9090

点击Status-Targets看到节点信息都在说明没问题


 

三、使用 Docker 部署 Grafana

1、使用 Docker 运行 Grafana。

docker run -d \
  --name=grafana \
  -p 3000:3000 \
  -e "GF_SECURITY_ADMIN_PASSWORD=secret" \
  -v /data/to/grafana-data/grafana.ini:/etc/grafana/grafana.ini \
  grafana/grafana

2、修改配置文件使其支持邮箱告警

怎么弄的配置文件呢

先随便运行一台grafana,用docker stop给他停了

然后用docker cp grafana:/etc/grafana/grafana.ini /data/to/grafana-data/grafana.ini就copy下来了

vim grafana.ini

3、开放3000端口

ufw allow

4、配置grafana

浏览器访问http://192.168.0.128:3000

5、添加数据源

6、导入仪表盘

访问grafana官网的仪表盘模板

Grafana dashboards | Grafana Labs

我这分别导入node_exporter,cadvisor

导入方式可以选择模板号跟json文件导入

这里选择模板号导入,点击Copy ID to clipboard复制模板号

回到自己的grafana页面

四、配置邮箱告警

1、创建文件夹

2、添加收件人

3、配置告警通知策略

4、配置告警规则

5、保存退出,当前是正常状态

6、配置完会增加一个监控中的心

7、触发告警条件后变成pending

8、五分钟后变为firing

9、收到告警邮箱

  • 26
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于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.yml和config.yml分别对应Prometheus、Alertmanager和Blackbox Exporter的配置文件。同时,Grafana的数据目录也需要挂载到主机上以便数据持久化。 另外,需要注意的是这只是一个示例,具体的配置文件需要根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值