使用 Prometheus IPMI 导出器获取远程机器的 IPMI 信息
本文的目的
本文介绍了使用 Prometheus IPMI Exporter 在 Prometheus 服务器上收集远程机器(未启动 ipmi_exporter 进程的监控目标服务器)的 IPMI 信息的方法。
如果阅读公式GitHub存储库的README.md文件,从启动ipmi_exporter进程的本地机器收集IPMI信息是不难的。然而,由于监视远程机器时的配置方法不明确,所以我决定写这篇文章,既作为备忘录,也作为自己理解的记录。
-
- この記事に含まれるもの:
Prometheus サーバの最低限の起動方法
Prometheus IPMI Exporter の最低限の起動方法
Prometheus IPMI Exporter で遠隔マシンから IPMI 情報を取得するための設定の詳細
この記事に含まれないもの:
Prometheus に関する詳細な解説
获取远程机器的IPMI信息
本文介绍了以Prometheus服务器和被监视服务器的两台服务器进行配置,在Prometheus服务器上启动Prometheus和Prometheus IPMI Exporter两个进程,以在Prometheus服务器上收集被监视服务器的IPMI信息。
为了获取远程机器的 IPMI 信息,需要分别设置 Prometheus 和 Prometheus IPMI Exporter 的配置文件,现在将对它们的内容进行解释。
Prometheus:
prometheus.yml
target_ipmi.yml
Prometheus IPMI Exporter:
ipmi_remote.yml
Prometheus IPMI Exporter 是什么?
Prometheus IPMI Exporter通过收集本地或远程机器的IPMI信息,并将数据暴露给Prometheus服务器。Prometheus定期访问Prometheus IPMI Exporter,对收集的各种数据进行集中管理。
Prometheus (https://github.com/prometheus/prometheus)
Prometheus IPMI Exporter (https://github.com/prometheus-community/ipmi_exporter)
事前准备
前提条件是 Prometheus 服务器和被监视服务器已经安装了操作系统,IP 地址已正确设置,并且它们可以互相通信。
安装 Prometheus 到 Prometheus 服务器。
-
- 在适当的位置创建适当的工作文件夹(例如prometheus/),然后移动到该文件夹:
4shi1o@ubuntu:~$ mkdir prometheus
4shi1o@ubuntu:~$ cd prometheus
4shi1o@ubuntu:~/prometheus$
从Prometheus官方网站下载最新的二进制文件:
4shi1o@ubuntu:~/prometheus$ wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz
解压下载的tar.gz文件:
4shi1o@ubuntu:~/prometheus$ tar xfz prometheus-2.31.1.linux-amd64.tar.gz
2. 在 Prometheus 服务器上安装 Prometheus IPMI 导出器。
-
- 在适当的位置创建适当的工作文件夹(例如prometheus/),并进行移动。
4shi1o@ubuntu:~$ mkdir ipmi_exporter
4shi1o@ubuntu:~$ cd ipmi_exporter
4shi1o@ubuntu:~/ipmi_exporter$
从prometheus-community/ipmi_exporter的GitHub项目中下载最新版本的二进制文件。
4shi1o@ubuntu:~/ipmi_exporter$ wget https://github.com/prometheus-community/ipmi_exporter/releases/download/v1.4.0/ipmi_exporter-1.4.0.linux-amd64.tar.gz
解压下载的tar.gz文件。
4shi1o@ubuntu:~/ipmi_exporter$ tar xfz ipmi_exporter-1.4.0.linux-amd64.tar.gz
3. 安装freeipmi
为了收集IPMI信息,Prometheus IPMI 导出程序需要先安装freeipmi命令。
4shi1o@ubuntu:~$ sudo apt install freeipmi
用于获取远程机器的 IPMI 信息的配置文件。
Prometheus: prometheus.yml
prometheus.yml は、下記 2 つの場所で紹介されているサンプルを組み合わせて作成します。
Prometheus の Getting started ドキュメント に記載されているサンプル
scrape_interval に特別なこだわりがなければ、サンプルをそのまま利用します。
デフォルトで、Prometheus プロセスは、9090 ポートで起動します。
Prometheus IPMI Exporter の Configuration ドキュメント に記載されているサンプル
修正すべき箇所が 2 つあります。
file_sd_configs 内の files で指定するファイル名およびパス: 今回の例では、ipmi_targets.yml と指定します。
separator 内の replacement で指定する Prometheus IPMI Exporter が起動する IP アドレスとポート番号の組み合わせ: 今回の例では、localhost:9290 と指定します。
global:
scrape_interval: 15s
scrape_configs:
- job_name: "prometheus"
scrape_interval: 5s
static_configs:
- targets: ["localhost:9090"]
# ここまで: Prometheus の Gettubg started ドキュメントのサンプルを利用
# ここから: Prometheus IPMI Exporter の Configuration ドキュメントのサンプルを利用
- job_name: "ipmi"
params:
module: ['default']
scrape_interval: 30s
scrape_timeout: 15s
metrics_path: /ipmi
scheme: http
file_sd_configs:
- files:
- ipmi_targets.yml
refresh_interval: 5m
relabel_configs:
- source_labels: [__address__]
separator: ;
regex: (.*)
target_label: __param_target
replacement: ${1}
action: replace
- source_labels: [__param_target]
separator: ;
regex: (.*)
target_label: instance
replacement: ${1}
action: replace
- separator: ;
regex: .*
target_label: __address__
replacement: localhost:9290
action: replace
Prometheus: ipmi_targets.yml
ipmi_targets.yml は、下記サンプルを利用します。
Prometheus IPMI Exporter の Configuration ドキュメント に記載されているサンプル
targets で指定する IP アドレスは、監視対象マシンの IP アドレスに修正してください。
---
- targets:
- 10.1.2.23 # 例えば、これが監視対象マシンの IP アドレスだとする
labels:
job: ipmi_exporter
Prometheus IPMI Exporter: ipmi_remote.yml
ipmi_remote.yml は、下記サンプルを利用します。
Prometheus IPMI Exporter の ipmi_remote.yml
各 module 内に記載されている user と pass を監視対象マシンの IPMI ユーザ、パスワードに修正してください。
今回の例では、default モジュールのみ実行するので、他のモジュールに関する設定は削除していますが、そのまま残しておいても問題ありません。
modules:
default:
# These settings are used if no module is specified, the
# specified module doesn't exist, or of course if
# module=default is specified.
user: "default_user"
pass: "example_pw"
# The below settings correspond to driver-type, privilege-level, and
# session-timeout respectively, see `man 5 freeipmi.conf` (and e.g.
# `man 8 ipmi-sensors` for a list of driver types).
driver: "LAN_2_0"
privilege: "user"
# The session timeout is in milliseconds. Note that a scrape can take up
# to (session-timeout * #-of-collectors) milliseconds, so set the scrape
# timeout in Prometheus accordingly.
timeout: 10000
# Available collectors are bmc, ipmi, chassis, dcmi, sel, and sm-lan-mode
# If _not_ specified, bmc, ipmi, chassis, and dcmi are used
collectors:
- bmc
- ipmi
- chassis
# Got any sensors you don't care about? Add them here.
exclude_sensor_ids:
- 2
- 29
- 32
- 50
- 52
- 55
请尝试具体执行一下

请提供相关的网址
普罗米修斯公式文件
-
- First Steps with Prometheus
-
- Download
- Exporters and Integrations
Prometheus相关的GitHub存储库
Prometheus
Getting started
Prometheus IPMI Exporter
Configuration
ipmi_remote.yml