Go to file
Conrad Hoffmann 03d3c8c42a Update LICENSE
All source files have headers designating them as Apache-2.0-licensed.
The `LICENSE` file however contains the text of the LGPL 3. This causes
e.g. Github to declare the project as being LGPL licensed and also
causes problems for packagers who need to figure out the project's
license.

Since the `LICENSE` file seems to be a remnant of a distant past, update
it to contain the Apache license, which seems to be what the project is
intended to be licensed under.

Signed-off-by: Conrad Hoffmann <ch@bitfehler.net>
2023-03-03 10:01:24 +01:00
.circleci Release v0.9.1 2022-11-06 12:42:41 +01:00
.github Update common Prometheus files 2022-06-17 19:51:12 +00:00
gentoo/app-metrics/smartctl_exporter Cleanup obsolete yaml config 2022-10-03 17:35:37 +02:00
scripts Refactor exporter config (#68) 2022-10-03 11:16:00 +02:00
systemd systemd service 2019-08-15 00:04:32 +03:00
.gitignore Fix Dockerfile (#53) 2022-08-08 17:03:53 +02:00
.golangci.yml Refactor exporter config (#68) 2022-10-03 11:16:00 +02:00
.promu.yml Release v0.9.1 2022-11-06 12:42:41 +01:00
.yamllint Update build for prometheus-community 2022-06-17 12:04:48 +02:00
CHANGELOG.md Release v0.9.1 2022-11-06 12:42:41 +01:00
CODE_OF_CONDUCT.md Update common Prometheus files 2022-06-17 19:51:12 +00:00
Dockerfile Drop arm64 Docker image 2022-10-05 14:06:48 +02:00
EXAMPLE.md Added disk form_factor meta label 2022-10-17 14:28:05 +07:00
LICENSE Update LICENSE 2023-03-03 10:01:24 +01:00
Makefile Drop arm64 Docker image 2022-10-05 14:06:48 +02:00
Makefile.common Update common Prometheus files 2022-12-14 17:49:59 +00:00
README.md Fix typo in "smarctl" 2023-01-31 13:35:51 +01:00
SECURITY.md Update common Prometheus files 2022-06-17 19:51:12 +00:00
VERSION Release v0.9.1 2022-11-06 12:42:41 +01:00
collect_fake_json.sh Parsing smartctl error code; parsing resulting json for smartctl errors; docker moved to subfolder 2020-10-30 00:35:49 +03:00
device_filter.go Add device filtering 2022-12-09 21:12:08 +01:00
device_filter_test.go Add device filtering 2022-12-09 21:12:08 +01:00
gjsonext.go Release 0.7.0 (#50) 2022-08-05 03:37:13 +02:00
go.mod Bump github.com/tidwall/gjson from 1.14.3 to 1.14.4 (#102) 2022-12-08 16:00:23 +01:00
go.sum Bump github.com/tidwall/gjson from 1.14.3 to 1.14.4 (#102) 2022-12-08 16:00:23 +01:00
main.go Fix typo in "smarctl" 2023-01-31 13:35:51 +01:00
metrics.go Added disk form_factor meta label 2022-10-17 14:28:05 +07:00
readjson.go Remove useless error message 2022-11-06 11:56:41 +01:00
smartctl.go Merge pull request #28 from lahwaacz/master 2022-10-20 11:42:19 +01:00
smartctlinfo.go Avoid running mineVersion when the SMARTctlInfo struct is not ready 2022-11-06 11:56:43 +01:00

README.md

CircleCI Container Repository on Quay

smartctl_exporter

Export smartctl statistics to prometheus

Example output you can show in EXAMPLE.md

Need more?

If you need additional metrics - contact me :) Create a feature request, describe the metric that you would like to have and attach exported from smartctl json file

Requirements

smartmontools >= 7.0, because export to json released in 7.0

Configuration

Command line options

The exporter will scan the system for available devices if no --smartctl.device flags are used.

usage: smartctl_exporter [<flags>]

Flags:
  -h, --help                   Show context-sensitive help (also try --help-long and --help-man).
      --smartctl.path="/usr/sbin/smartctl"  
                               The path to the smartctl binary
      --smartctl.interval=60s  The interval between smartctl polls
      --smartctl.device=SMARTCTL.DEVICE ...  
                               The device to monitor (repeatable)
      --smartctl.device-exclude=""
                               Regexp of devices to exclude from automatic scanning. (mutually exclusive to
                               device-include)
      --smartctl.device-include=""
                               Regexp of devices to exclude from automatic scanning. (mutually exclusive to
                               device-exclude)
      --web.telemetry-path="/metrics"  
                               Path under which to expose metrics
      --web.systemd-socket     Use systemd socket activation listeners instead of port listeners (Linux only).
      --web.listen-address=:9633 ...
                               Addresses on which to expose metrics and web interface. Repeatable for multiple
                               addresses.
      --web.config.file=""     [EXPERIMENTAL] Path to configuration file that can enable TLS or authentication.
      --log.level=info         Only log messages with the given severity or above. One of: [debug, info, warn,
                               error]
      --log.format=logfmt      Output format of log messages. One of: [logfmt, json]
      --version                Show application version.

TLS and basic authentication

This exporter supports TLS and basic authentication.

To use TLS and/or basic authentication, you need to pass a configuration file using the --web.config.file parameter. The format of the file is described in the exporter-toolkit repository.