Improve documentation.

This commit is contained in:
Mark Nellemann 2020-12-07 10:51:50 +01:00
parent 76b6ad24ab
commit fecaac34b4

View file

@ -1,56 +1,86 @@
# HMC Insights
HMCi is a small utility to fetch metrics from one or more HMC's and push those to an InfluxDB time-series database.
**HMCi** is a utility that collects metrics from one or more *IBM Power HMC* systems. The metrics data is processed and saved into an InfluxDB time-series database. Grafana is used to visualize the metrics from InfluxDB.
*This project is in no way associated with, supported or endorsed by, International Business Machines Corporation (IBM).*
Metrics includes *Managed Systems* (the physical Power servers) and *Logical Partitions* (the virtualized servers) running AIX, Linux and IBM-i.
![screenshot](https://bitbucket.org/mnellemann/hmci/downloads/HMCi.png)
## Installation and Setup
## Usage Instructions
### HMC Setup Instructions
- Ensure you have correct date/time and use a NTP service to keep it accurate!
- Install the HMCi package (*.deb* or *.rpm*) from [downloads](https://bitbucket.org/mnellemann/hmci/downloads/) or compile from source.
- Copy the *doc/hmci.tpml* configuration template into */etc/hmci.toml* and edit the configuration to suit your environment. You can use the *-c* option if you place this file elsewhere.
- Configure Grafana to communicate with your InfluxDB and import dashboards from *doc/* into Grafana (The dashboards are slightly modified versions of the dashboard provided by the nmon2influxdb tool).
- Login to your HMC
- 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 in minutes* to **0**
- Navigate to *HMC Mangement* 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 more
### InfluxDB and Grafana Setup Instructions
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.
- You can download [Grafana ppc64le](https://www.power-devops.com/grafana) and [InfluxDB ppc64le](https://www.power-devops.com/influxdb) packages for most Linux distributions and AIX on the [Power DevOps](https://www.power-devops.com/) site.
- Binaries for amd64/x86 are available from the [Grafana website](https://grafana.com/grafana/download) and [InfluxDB website](https://portal.influxdata.com/downloads/) and most likely directly from your Linux distributions repositories.
### HMCi Installation Instructions
- 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](https://bitbucket.org/mnellemann/hmci/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 a flag when running hmci.
- Run the *bin/hmci* program in a shell, as a @reboot cron task or setup a proper service :)
- When started, *hmci* will try to create the InfluxDB database named hmci, if not found.
- Configure Grafana to communicate with your InfluxDB and import dashboards from the *doc/* folder into Grafana (The dashboards are slightly modified versions of the dashboard provided by the nmon2influxdb tool)
### InfluxDB and Grafana Packages
You can download [Grafana ppc64le](https://www.power-devops.com/grafana) and [InfluxDB ppc64le](https://www.power-devops.com/influxdb) packages for most Linux distributions and AIX on the [Power DevOps](https://www.power-devops.com/) site.
Binaries for amd64/x86 are available from the [Grafana website](https://grafana.com/grafana/download) and [InfluxDB website](https://portal.influxdata.com/downloads/) and also directly from your Linux distribution repository in some cases.
## Notes
### Notes
### InfluxDB
Examples on how to change the default InfluxDB retention policy:
Examples on how to change 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
## Development Information
You need JDK version 8 or later.
You need Java (JDK) version 8 or later to build hmci.
### Build & Test
Use the gradle build tool, which will download all required dependencies.
Use the gradle build tool, which will download all required dependencies:
./gradlew clean build
#### InfluxDB for local testing
Start the InfluxDB container
### Local Testing
#### InfluxDB container
Start the InfluxDB container:
docker run --name=influxdb --rm -d -p 8086:8086 influxdb
To use the Influx client from the same container
To execute the Influx client from within the container:
docker exec -it influxdb influx
#### Grafana for local testing
Start the Grafana container, linking it to the InfluxDB container
#### 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
Configure a new InfluxDB datasource on *http://influxdb:8086* named *hmci* to connect to the InfluxDB container. The database must be created beforehand, this can be done by running the hmci tool first. Grafana dashboards can be imported from the *doc/* folder.
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.