Node Exporter 安装指南
在完成了 Prometheus + Grafana 的搭建后,我们就可以安装部署各类需要的Exporter 用于向 Prometheus 暴露监控数据。
系列文章目录
- Prometheus 的安装部署
- Grafana的安装部署
- Linux服务器接入Prometheus监控-Node Exporter 安装指南
- Prometheus 接入SpringBoot微服务监控
- Mysql 接入 Prometheus
- RocketMQ 接入Prometheus 监控
- ElasticSearch 接入 Prometheus
- Nacos 接入 Prometheus 监控
- Redis 接入 Prometheus 监控系统
- Prometheus + Grafana 监控系统-告警规则配置
- Prometheus + Grafana 监控系统-PrometheusAlert安装与配置指南
关于 Exporters
安装并配置各种Exporters,如Node Exporter、MySQL Exporter等,以便Prometheus可以收集各种类型的监控数据。
- Prometheus社区提供了丰富的Exporter实现,涵盖了从基础设施,中间件以及网络等各个方面的监控功能。
- 各种数据采集实践参考:
- https://cloud.tencent.com/developer/article/1492442
- https://monaive.gitbook.io/prometheus/part-ii-prometheus-shu-ju-cai-ji-yu-gao-jing/exporter
Node Exporter 安装部署
Node Exporter 是一个用于收集 Linux 系统监控数据的工具。
Node Exporter 它可以收集主机的各种硬件和操作系统指标,如CPU、内存、磁盘、网络等。你需要在ECS服务器上安装并运行Node Exporter,然后配置Prometheus去抓取这些指标。
ECS自定义指标:除了Node Exporter提供的通用指标外,你还可以根据ECS的特性自定义一些监控指标,比如ECS的CPU配额、内存配额等。这些可能需要通过ECS的API或其他手段来获取。、
当在生产环境中使用Node Exporter时,您需要确保安全性和可靠性。以下是一个基本的示例,演示如何在生产环境中搭建Node Exporter。
1. 安装
-
下载和安装 Node Exporter
- 下载链接:Node Exporter Releaseswget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz tar -xvf node_exporter-*.tar.gz
-
创建 Node Exporter 服务
创建一个systemd服务单元文件,以便Node Exporter可以作为服务在后台运行。
- 服务单元文件示例(/etc/systemd/system/node_exporter.service):[Unit] Description=Node Exporter After=network.target [Service] ExecStart=/usr/local/bin/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target
-
node_exporter 默认监听 9100 ,如果需要修改web监听端口,则增加启动参数: --web.listen-address=“127.0.0.1:9190”
-
如果我们希望 Node Exporter 只监听本机的 IPv4 地址 127.0.0.1,并使用端口号 9111,则可以使用以下命令来启动 Node Exporter: node_exporter -web.listen-address=“127.0.0.1:9111”
-
注意: 需要注意的是,在配置 Node Exporter 监听地址时,需要确保选择的地址能够被 Prometheus 或其他监控系统访问到。如果是在本机上运行的 Prometheus,则可以选择监听本机的地址;如果是在其他机器上运行的 Prometheus,则需要将 Node Exporter 的地址设置为能够被 Prometheus 访问到的地址。
-
-
-
启动Node Exporter服务并设置开机自启:
sudo systemctl start node_exporter sudo systemctl enable node_exporter
- 如果 service 文件有变更,需要生效: systemctl daemon-reload , 然后才能执行 systemctl restart node_exporter
2. 配置,部署
-
步骤 3: 配置防火墙和安全组
- 如果您的生产环境使用防火墙或安全组,请确保允许Node Exporter的端口(默认为9100)通过防火墙或安全组。
-
步骤 4: 验证 Node Exporter
- 在浏览器中访问Node Exporter的地址和端口(例如:http://your_server_ip:9100/metrics ),确保可以访问到Node Exporter的指标数据。
-
步骤 5: 集成到 Prometheus
- 编辑prometheus.yml文件: 在scrape_configs部分添加新的监控目标以便Prometheus可以收集Node Exporter的指标数据。
scrape_configs: - job_name: 'node' static_configs: - targets: ['node1:9100', 'node2:9100'] # 现有的监控目标 - targets: ['new_node:9100'] # 新增的监控目标
- 让新增的配置生效
- 方案一:重启服务
sudo systemctl reload prometheus
- 方案二: 发信号,大多数情况下,您可以通过重新加载配置而不是重启Prometheus服务来使新添加的Node Exporter生效。
这将向Prometheus进程发送SIGHUP信号,提示它重新加载配置文件。在接收到SIGHUP信号后,Prometheus将重新加载配置文件并开始监控新添加的Node Exporter。# 向prometheus进行发信号: kill -HUP <pid> sudo kill -HUP $(pidof prometheus)
请注意,重新加载配置可能会导致一些瞬时的性能波动,因此建议在低峰期执行配置重载操作。此外,确保您的prometheus.yml文件中的语法正确,以避免配置重载失败。 - 方案三: 向prometheus发送HTTP请求
# /-/reload只接收POST请求,并且需要在启动prometheus进程时,指定 --web.enable-lifecycle #例如: curl -X POST 127.0.0.1:9090/-/reload curl -XPOST http://your-prometheus.com/-/reload
- 方案一:重启服务
- 在Grafana 上给 Node Exporter 配置一个仪表盘(dashboard)
-
选择你需要的仪表盘
-
导入仪表盘到Grafana
-
- 示例效果
- 编辑prometheus.yml文件: 在scrape_configs部分添加新的监控目标以便Prometheus可以收集Node Exporter的指标数据。