• Stars
    star
    112
  • Rank 312,240 (Top 7 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Prometheus exporter for Dell Hardware components using Dell OMSA.

dellhw_exporter

build_release

Prometheus exporter for Dell Hardware components using OMSA.

The exporter was originally made by PrFalken. Due to some issues in the code, I rewrote the whole exporter using the "node_exporter" pattern and therefore moved it from being a fork out, to a standalone repository.

Omreport parsing functions were borrowed from the Bosun project, thank you very much for that, they are the most tedious part of the job.

This exporter wraps the "omreport" command from Dell OMSA. If you can't run omreport on your system, the exporter won't export any metrics.

Compatibility

Tested Dell OMSA Compatibility

The dellhw_exporter has been tested with the following OMSA versions:

  • 7.4
  • 8.4
  • 9.1

Kernel Compatibility

Please note that only kernel versions that are supported by DELL DSU / OMSA tools are working!

State 07.06.2019: Dell OMSA DSU_19.05.00 is not compatible with 5.x kernel it seems (e.g., Fedora uses that kernel).

Should you run into issues when using the Container image, please follow the Troubleshooting - No metrics being exported.

Collectors

For a list of the available collectors, see Collectors doc page.

Configuration

For flags and environment variables, see Configuration doc page.

Caching

Optional caching can be enabled to prevent performance issues caused by this exporter, see Caching doc page.

Running in Container

Container Image available from:

(Docker Hub is not receiving new images begining from release v1.10.0)

Pull the Container Image

Each Git tag is built and published as a release and container image.

Quay.io

docker pull quay.io/galexrt/dellhw_exporter

GHCR.IO

docker pull ghcr.io/galexrt/dellhw_exporter

Run the Container Image

NOTE The --privileged flag is required as the OMSA needs to access the host's devices and other components.

docker run -d --name dellhw_exporter --privileged -p 9137:9137 quay.io/galexrt/dellhw_exporter

Running without Docker / Podman

To run without Docker / Podman either download a release binary or build it (using make build command):

./dellhw_exporter
./dellhw_exporter --help
./dellhw_exporter YOUR_FLAGS

The DELL OMSA services must already be running for the exporter to be able to collect metrics!

E.g., run /opt/dell/srvadmin/sbin/srvadmin-services.sh start and / or systemctl start SERVICE_NAME (to enable autostart use systemctl enable SERVICE_NAME; where SERVICE_NAME are the DELL OMSA service(s) you installed).

Prometheus

The exporter runs on port 9137 TCP.

Example static Prometheus Job config:

[...]
  - job_name: 'dellhw_exporter'
    # Override the global default and scrape targets from this job every 60 seconds.
    scrape_interval: 60s
    static_configs:
      - targets:
        - 'YOUR_SERVER_HERE:9137'
[...]

Monitoring

Checkout the files in the contrib/monitoring/ directory.

Installation

See Installation doc page.

Troubleshooting

See Troubleshooting doc page.

Development

Golang version 1.18 is used for testing and building the dellhw_exporter.

go mod is used for "vendoring" of the dependencies.

Creating a new Release

  1. Update the version in the VERSION file.
  2. Create an entry in the CHANGELOG.md file. Example of a changelog entry:
    ## 1.12.0 / 2022-02-02
    
    * [ENHANCEMENT] Added Pdisk Remaining Rated Write Endurance Metric by @adityaborgaonkar
    * [BUGFIX] ci: fix build routine issues
    
    The following "kinds" of entries can be added:
    • CHANGE
    • FEATURE
    • ENHANCEMENT
    • BUGFIX
  3. Commit the version increase with a commit messages in format: version: bump to v1.12.0
  4. Create the git tag using git tag v1.12.0
  5. Now push the changes and commit using git push && git push --tags
  6. In a few minutes the new release should be available for "approval" under the releases section. Edit and save the release on GitHub and the release is complete.

More Repositories

1

k8s-vagrant-multi-node

A Kubernetes Vagrant Multi node environment using kubeadm.
Makefile
166
star
2

presentation-gitlab-k8s

These are the example files for my presentation and blog post about GitLab + Kubernetes for Continuous Delivery.
Go
165
star
3

container-healthchecks

Simple to use Container Image for https://github.com/healthchecks/healthchecks.
Dockerfile
63
star
4

kubernetes-keycloak

This repo contains manifests to run Keycloak by Red Hat inside of Kubernetes with "host discovery".
36
star
5

srcds_exporter

Prometheus exporter for SRCDS Gameserver using Source RCON.
Go
25
star
6

docker-sinusbot

Docker container for the famous TeamSpeak 3 SinusBot by Michael Friese.
Dockerfile
25
star
7

container-staytus

adamcooke/staytus (https://staytus.co/) as a Container Image without the MySQL server.
Dockerfile
20
star
8

container-vlc

VLC Media Player in a Container Image.
Makefile
20
star
9

docker-nginx-php-fpm

Run Nginx with PHP-FPM on Kubernetes.
Dockerfile
18
star
10

container-node_exporter-textfiles

Container Image for easily running textfile exporter scripts to be collected by the prometheus/node_exporter.
Smarty
17
star
11

kubernetes-manifests

Contains a collection of several Kubernetes manifests for applications (mostly from my blog posts).
16
star
12

presentation-distributed-storage-with-rook

Demo files for the "Distributed storage with Rook" talk by Kim-Norman Sahm and me, and other Rook related presentations.
Shell
13
star
13

docker-taigaio

Taiga.Io as a Docker Image. Ready to docker-compose up.
Shell
13
star
14

elasticsearch-operator

Elasticsearch Operator creates/configures/manages Elasticsearch clusters atop Kubernetes
Go
8
star
15

workshop-docker

Workshop about Docker and Kubernetes.
Shell
7
star
16

ansible-ntp

Ansible NTP client role.
Jinja
6
star
17

docker-percona-xtradb-cluster

percona/percona-docker Percona xtraDB optimized for Kubernetes clustering.
Shell
5
star
18

alertmanager-githubfiles-receiver

An Alertmanager webhook receiver which creates files in a GitHub repository based on the received alert(s), e.g., when using cstate/cstate Status page.
Go
5
star
19

ansible-timezone

Ansible role for setting/changing the timezone.
4
star
20

ansible-ntpdate

Ansible role for running ntpdate. To "force" update the time.
4
star
21

kubernetes-mailserver

Work in progress! Mail server in Kubernetes.
Shell
3
star
22

ansible-kernel-modules

Ansible role for simple management of kernel modules including persisting module loading, blacklisting.
3
star
23

fivenet

From searching the state's citizen and vehicles database, filling documents for investigations, court, and a livemap of your colleagues and dispatches. All that and more is (mostly) ready in this net, the FiveNet.
Vue
3
star
24

vanilla-steamsignin

Vanilla Forums Steam Sign-in Plugin (fork of https://github.com/daigo75 aeliasteamsignin-plugin).
PHP
3
star
25

presentation-gitlab-k8s-php

These are the example files for my article and presentation about GitLab + Kubernetes for Continuous Delivery with an example PHP "Hello World!" application.
PHP
3
star
26

container-jts3servermod

JTS3ServerMod by Stefan1200 as a Container Image.
Dockerfile
3
star
27

container-backups

Have you ever wanted to backup applications running in containers? Yeah ... about that.
Shell
3
star
28

owncloud-kubernetes-rook

Running OwnCloud on Kubernetes using Rook Ceph for storage.
2
star
29

dotfiles

My personal Doty McDotface files.
Shell
2
star
30

presentation-k8s-prometheus

Smarty
2
star
31

ansible-cockpit

An Ansible role to "setup" features of Fedora's Cockpit.
2
star
32

extended-ceph-exporter

A Prometheus exporter to provide "extended" metrics about a Ceph cluster's running components (e.g., RGW).
Go
2
star
33

k8sglue

WIP "Kleber" for Kubernetes in public and private (cloud) environments with Salt, kubeadm and some magic glue.
Go
2
star
34

k8s-minecraft

Minecraft in K8S because why not?
Shell
2
star
35

container-gameserver

Container Image for running (some) Gameservers easily in Containers.
Dockerfile
2
star
36

docs.galexrt.moe

Source of https://docs.galexrt.moe/
Makefile
2
star
37

goytdler

Simple webinterface to use youtube-dl.
Go
1
star
38

docker-steamcmd

Docker SteamCMD Image
1
star
39

workshop-k8s-basics

1
star
40

presentation-golang-microthingy

These are the live code example files for my presentation about "Writing your first Golang Microthingy".
Makefile
1
star
41

ansible-sshkeymgt

Ansible role for simple SSH key management.
1
star
42

ansible-firewall

A try at at an Ansible ipset and iptables managing role.
Jinja
1
star
43

srcds_controller

Go
1
star
44

go-gitlab-webhooks

Go GitLab webhooks struct
Go
1
star
45

go-rcon

Go library for querying Source RCON servers
Go
1
star
46

ansible-raid-check

Ansible role for configuring raid-check settings.
1
star
47

container-restic-sftp

Container image with Restic + SSH + Wrapper for simply SFTP backups with restic.
Shell
1
star
48

container-toolbox

A toolbox container for debugging and stuff in containers.
Dockerfile
1
star
49

desktop-helper

Small helper for "configuration"-less switching of workplaces (run scripts on "events").
Go
1
star
50

workshop-container-docker-kubernetes

Tasks / Files / Examples for my upcoming workshop about Containers, Docker and Kubernetes.
HCL
1
star
51

docker-nginx-php-fpm-pagespeed

Docker Image with Nginx + PHP-FPM and Google Pagespeed Module.
1
star