IPMI Exporter Setup

Installing and configuring Prometheus IPMI Exporter for hardware monitoring

Prerequisites

Before installing the IPMI Exporter, ensure that:

  1. The target system has IPMI-capable hardware

  2. You have administrative access to the system

  3. The following packages are installed:

    # For Debian/Ubuntu
    sudo apt-get install -y freeipmi-tools
    
    # For RHEL/CentOS
    sudo yum install -y freeipmi-tools
    

BMC Access:

The IPMI Exporter requires access to the Baseboard Management Controller (BMC). Make sure you have appropriate credentials and network access to the BMC.

Installation

Basic Installation

  1. Download the latest release from the official GitHub releases page:

    export VERSION=<latest_version>     # Replace with the current version number
    wget https://github.com/prometheus-community/ipmi_exporter/releases/download/v${VERSION}/ipmi_exporter-${VERSION}.linux-amd64.tar.gz
    
  2. Extract the tarball:

    tar -xvf ipmi_exporter-${VERSION}.linux-amd64.tar.gz
    
  3. Move the binary to the correct location:

    sudo mv ipmi_exporter-${VERSION}.linux-amd64/ipmi_exporter /usr/local/bin/
    
  4. Create a system user for the IPMI exporter:

    sudo useradd -rs /bin/false ipmi_exporter
    
  5. Create a configuration directory and file:

    sudo mkdir -p /etc/ipmi_exporter
    sudo nano /etc/ipmi_exporter/ipmi_config.yml
    

    Basic configuration example:

    # Example IPMI Exporter configuration
    modules:
      default:
        collectors:
          - bmc
          - ipmi
          - chassis
          - dcmi
        user: admin
        pass: password
        privilege: user
    
  6. Create a systemd service file:

    sudo nano /etc/systemd/system/ipmi_exporter.service
    

    Add the following content:

    [Unit]
    Description=IPMI Exporter
    After=network.target
    
    [Service]
    User=ipmi_exporter
    Group=ipmi_exporter
    Type=simple
    ExecStart=/usr/local/bin/ipmi_exporter --config.file=/etc/ipmi_exporter/ipmi_config.yml
    
    [Install]
    WantedBy=multi-user.target
    
  7. Enable and start the service:

    sudo systemctl daemon-reload
    sudo systemctl enable ipmi_exporter
    sudo systemctl start ipmi_exporter
    
  8. Verify installation:

    sudo systemctl status ipmi_exporter
    

    Also check if the metrics endpoint is accessible:

    curl http://localhost:9290/metrics
    

Configuration Options

The IPMI Exporter configuration file (ipmi_config.yml) supports several options:

Remote Monitoring

To monitor remote IPMI-enabled devices:

  1. In your Prometheus configuration, use the target parameter:

    scrape_configs:
      - job_name: "ipmi"
        params:
          module: [default]
          target: [192.168.1.100] # IP of the remote BMC
        static_configs:
          - targets: ["ipmi-exporter:9290"]
    
  2. Update the IPMI exporter configuration to handle remote targets:

    modules:
      default:
        collectors:
          - bmc
          - ipmi
        user: admin
        pass: password
        driver: LAN_2_0
    

Troubleshooting

  1. Connection issues:

    • Try using the ipmitool command directly to test connectivity
  2. Missing sensors:

    • Some hardware may not expose all sensor types
    • Try different collector configurations
    • Check if the BMC firmware is up to date

Resource Usage:

IPMI Exporter has low resource requirements compared to other exporters. However, be mindful of the scrape interval, as each IPMI request generates some load on the BMC.