ipmi_sensor

package
v0.0.0-...-bdb06d8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 17, 2018 License: MIT Imports: 9 Imported by: 0

README

IPMI Sensor Input Plugin

Get bare metal metrics using the command line utility ipmitool.

If no servers are specified, the plugin will query the local machine sensor stats via the following command:

ipmitool sdr

When one or more servers are specified, the plugin will use the following command to collect remote host sensor stats:

ipmitool -I lan -H SERVER -U USERID -P PASSW0RD sdr
Configuration
# Read metrics from the bare metal servers via IPMI
[[inputs.ipmi_sensor]]
  ## optionally specify the path to the ipmitool executable
  # path = "/usr/bin/ipmitool"
  ##
  ## optionally force session privilege level. Can be CALLBACK, USER, OPERATOR, ADMINISTRATOR
  # privilege = "ADMINISTRATOR"
  ##
  ## optionally specify one or more servers via a url matching
  ##  [username[:password]@][protocol[(address)]]
  ##  e.g.
  ##    root:passwd@lan(127.0.0.1)
  ##
  ## if no servers are specified, local machine sensor stats will be queried
  ##
  # servers = ["USERID:PASSW0RD@lan(192.168.1.1)"]

  ## Recomended: use metric 'interval' that is a multiple of 'timeout' to avoid
  ## gaps or overlap in pulled data
  interval = "30s"

  ## Timeout for the ipmitool command to complete. Default is 20 seconds.
  timeout = "20s"
Measurements
  • ipmi_sensor:
    • tags:
      • name
      • unit
      • server (only when retrieving stats from remote servers)
    • fields:
      • status (int)
      • value (float)
Permissions

When gathering from the local system, Telegraf will need permission to the ipmi device node. When using udev you can create the device node giving rw permissions to the telegraf user by adding the following rule to /etc/udev/rules.d/52-telegraf-ipmi.rules:

KERNEL=="ipmi*", MODE="660", GROUP="telegraf"
Example Output

When retrieving stats from a remote server:

ipmi_sensor,server=10.20.2.203,unit=degrees_c,name=ambient_temp status=1i,value=20 1458488465012559455
ipmi_sensor,server=10.20.2.203,unit=feet,name=altitude status=1i,value=80 1458488465012688613
ipmi_sensor,server=10.20.2.203,unit=watts,name=avg_power status=1i,value=220 1458488465012776511
ipmi_sensor,server=10.20.2.203,unit=volts,name=planar_3.3v status=1i,value=3.28 1458488465012861875
ipmi_sensor,server=10.20.2.203,unit=volts,name=planar_vbat status=1i,value=3.04 1458488465013072508
ipmi_sensor,server=10.20.2.203,unit=rpm,name=fan_1a_tach status=1i,value=2610 1458488465013137932
ipmi_sensor,server=10.20.2.203,unit=rpm,name=fan_1b_tach status=1i,value=1775 1458488465013279896

When retrieving stats from the local machine (no server specified):

ipmi_sensor,unit=degrees_c,name=ambient_temp status=1i,value=20 1458488465012559455
ipmi_sensor,unit=feet,name=altitude status=1i,value=80 1458488465012688613
ipmi_sensor,unit=watts,name=avg_power status=1i,value=220 1458488465012776511
ipmi_sensor,unit=volts,name=planar_3.3v status=1i,value=3.28 1458488465012861875
ipmi_sensor,unit=volts,name=planar_vbat status=1i,value=3.04 1458488465013072508
ipmi_sensor,unit=rpm,name=fan_1a_tach status=1i,value=2610 1458488465013137932
ipmi_sensor,unit=rpm,name=fan_1b_tach status=1i,value=1775 1458488465013279896

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Atofloat

func Atofloat(val string) float64

Types

type Connection

type Connection struct {
	Hostname  string
	Username  string
	Password  string
	Port      int
	Interface string
	Privilege string
}

Connection properties for a Client

func NewConnection

func NewConnection(server string, privilege string) *Connection

func (*Connection) LocalIP

func (c *Connection) LocalIP() string

LocalIP returns the local (client) IP address of the Connection

func (*Connection) RemoteIP

func (c *Connection) RemoteIP() string

RemoteIP returns the remote (bmc) IP address of the Connection

type Ipmi

type Ipmi struct {
	Path      string
	Privilege string
	Servers   []string
	Timeout   itscripts.Duration
}

func (*Ipmi) Description

func (m *Ipmi) Description() string

func (*Ipmi) Gather

func (m *Ipmi) Gather(acc tinymonitor.Accumulator) error

func (*Ipmi) SampleConfig

func (m *Ipmi) SampleConfig() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL