Go to file
2021-06-11 02:13:27 +02:00
doc Improve logging for empty metrics and update example dashboards. 2021-06-11 02:12:02 +02:00
gradle/wrapper Update gradle and 3rd party dependencies. 2021-06-03 18:08:58 +02:00
src Merged development into tracefiles 2021-06-11 02:13:27 +02:00
.editorconfig Fix data-source in dashboards. 2021-06-04 08:27:16 +02:00
.gitattributes Initial code commit 2020-08-07 08:13:48 +02:00
.gitignore Cleanup code. 2020-12-01 11:48:05 +01:00
bitbucket-pipelines.yml Refactoring work for more Java compatibility and static compilation. 2020-10-09 10:20:50 +02:00
build.gradle Update gradle and 3rd party dependencies. 2021-06-03 18:08:58 +02:00
gradle.properties Improve logging for empty metrics and update example dashboards. 2021-06-11 02:12:02 +02:00
gradlew Update gradle and 3rd party dependencies. 2021-06-03 18:08:58 +02:00
gradlew.bat Update gradle and 3rd party dependencies. 2021-06-03 18:08:58 +02:00
LICENSE Added LICENSE information 2020-08-18 13:49:48 +02:00
README.md Improve logging for empty metrics and update example dashboards. 2021-06-11 02:12:02 +02:00
settings.gradle Initial code commit 2020-08-07 08:13:48 +02:00

HMC Insights

HMCi is a utility that collects metrics from one or more IBM Power HMC. The metric data is processed and saved into an InfluxDB time-series database. Grafana can be used to visualize the metrics from InfluxDB. This software is free to use and is licensed under the Apache 2.0 License, but is not supported or endorsed by International Business Machines (IBM).

Metrics includes:

  • Managed Systems - the physical Power servers
  • Logical Partitions - the virtualized servers running AIX, Linux and IBM-i (AS/400)
  • Virtual I/O Servers - the i/o partition(s) taking care of network and storage
  • Energy - power consumption and temperatures (needs to be enabled and is not available for Power7, E870, E880 and E980)

architecture

Installation and Setup

Power HMC Setup Instructions

  • Login to your HMC
  • Navigate to Console Settings
    • Go to Change Date and Time
      • Set correct timezone, if not done already
      • Configure one or more NTP servers, if not done already
      • Enable the NTP client, if not done already
  • Navigate to Users and Security
    • Create a new read-only hmci user, which will be used to connect to the REST API.
    • Click Manage User Profiles and Access, edit the newly created hmci user and click User Properties:
      • Enable Allow remote access via the web
      • Set Session timeout minutes to 120
      • Set Verify timeout minutes to 15
      • Set Idle timeout minutes to 15
      • Set Minimum time in days between password changes to 0
  • Navigate to HMC Management and Console Settings
    • Click Change Performance Monitoring Settings:
      • Enable Performance Monitoring Data Collection for Managed Servers: All On
      • Set Performance Data Storage to 1 day or preferable more

InfluxDB and Grafana Installation

Install InfluxDB on an LPAR or other server, which is network accessible by the HMCi utility (the default InfluxDB port is 8086). You can install Grafana on the same server or any server which are able to connect to the InfluxDB database. The Grafana installation needs to be accessible from your browser. The default settings for both InfluxDB and Grafana will work fine as a start.

HMCi Installation & Configuration

  • Ensure you have correct date/time and NTPd running to keep it accurate!
  • The only requirement for hmci is the Java runtime, version 8 (or later)
  • Install HMCi from downloads (rpm, deb or jar) or build from source
  • Copy the doc/hmci.toml configuration example into /etc/hmci.toml and edit the configuration to suit your environment. The location of the configuration file can be changed with the --conf option.
  • Run the bin/hmci program in a shell, as a @reboot cron task or setup a proper service :) There is a systemd service example in the doc/ folder.
  • When started, hmci will try to create the InfluxDB database named hmci, if not found.

Grafana Configuration

  • Configure Grafana to use InfluxDB as a new datasource
    • NOTE: set Min time interval to 30s or 1m depending on your HMCi refresh setting.
  • Import example dashboards from the doc/ folder into Grafana as a starting point and get creative making your own cool dashboards :)

Notes

Compatibility with nextract Plus

From version 1.2 HMCi is made compatible with the similar nextract Plus tool from Nigel Griffiths. This means you can use the excellent Grafana dashboards made by Nigel with HMCi.

Start InfluxDB and Grafana at boot on RedHat 7+

systemctl enable influxdb
systemctl start influxdb

systemctl enable grafana-server
systemctl start grafana-server

InfluxDB Retention Policy

Per default the hmci influx database has no retention policy, so data will be kept forever. It is recommended to set a retention policy, which is shown below.

Examples for changing the default InfluxDB retention policy for the hmci database:

ALTER RETENTION POLICY "autogen" ON "hmci" DURATION 156w
ALTER RETENTION POLICY "autogen" ON "hmci" DURATION 90d

Grafana Screenshots

Below are screenshots of the provided Grafana dashboards (found in the doc/ folder), which can be used as a starting point.

Known problems

Naming collision

You can't have partitions (or Virtual I/O Servers) on different Systems with the same name, as these cannot be distinguished when metrics are written to InfluxDB (which uses the name as key).

Renaming partitions

If you rename a partition, the metrics in InfluxDB will still be available by the old name, and new metrics will be available by the new name of the partition. There is no easy way to migrate the old data, but you can delete it easily:

DELETE WHERE lparname = 'name';

Development Information

You need Java (JDK) version 8 or later to build hmci.

Build & Test

Use the gradle build tool, which will download all required dependencies:

./gradlew clean build

Local Testing

InfluxDB container

Start the InfluxDB container:

docker run --name=influxdb --rm -d -p 8086:8086 influxdb:1.8-alpine

To execute the Influx client from within the container:

docker exec -it influxdb influx

Grafana container

Start the Grafana container, linking it to the InfluxDB container:

docker run --name grafana --link influxdb:influxdb --rm -d -p 3000:3000 grafana/grafana:7.1.3

Setup Grafana to connect to the InfluxDB container by defining a new datasource on URL http://influxdb:8086 named hmci.

The hmci database must be created beforehand, which can be done by running the hmci tool first.

Grafana dashboards can be imported from the doc/ folder.