Hi all
I wanted to add that Zabbix server can also interpret Prometheus format out-of-the-box, so installing node_exporter on IPFire could provide a possibly more light-weight alternative to installing zabbix_agentd for monitoring IPFire with Zabbix (however already quite light-weight). Or an addition as both will probably have different capabilities and possibilities...Zabbix can fetch info from both.
Regards Robin
Holger Sunke schreef op vr 07-05-2021 om 18:05 [+0000]:
Hello Adolf,
the node_exporter provides a simple http download on port 9100 (default) that common measures around the OS runtime in a plain text form like this:
http://%5Bfirewall%5D:9100/metrics
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 5.3912e-05 go_gc_duration_seconds{quantile="0.25"} 7.1192e-05 go_gc_duration_seconds{quantile="0.5"} 7.947e-05 go_gc_duration_seconds{quantile="0.75"} 9.8797e-05 go_gc_duration_seconds{quantile="1"} 0.004091312 go_gc_duration_seconds_sum 1.5650559450000001 go_gc_duration_seconds_count 7994 # HELP go_goroutines Number of goroutines that currently exist. # TYPE go_goroutines gauge go_goroutines 8 # HELP go_info Information about the Go environment. # TYPE go_info gauge go_info{version="go1.15.4"} 1 # HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. # TYPE go_memstats_alloc_bytes gauge go_memstats_alloc_bytes 3.542504e+06 even if freed. .... +about 1k additional lines
This is useful for those who have a Prometheus instance up and running somewhere in their network that collects these kind of measures from an arbitrary amount of machines. Prometheus then stores these in a time series database and provides easy query access against these data, all them or configuring arbitrary kind of alerts.
Summing it up it is very lightweight, simple to integrate but useful only when there's a prometheus runnung for you. You'd not setup a prometheus/grafana stack just because ipfire can run a node_exporter.
In this first step, only general OS and IO stats are supported as node_exporter is nativly shipping with. In a later step we can think about adding metrics from log analyzis (number of packets dopped/rejected, number of suspectibles by intrusion detections, ...) or other custom stuff. .prom) and placed in some specific local folder on the ipFire file system and would then be picked by node_exporter and simply appended to the http://...:9100/metrics response.
Yes, i'd like to maintain this package for the ipfire. I think this would include beside others:
- Keep track of and upgrade to new versions
- Keep track especially on security alerts
- Being reponsive on questions regarding the package
- Testing for each supported architecture
Kind regards
Holger
I believe that the core devs will expect, if the addon is agreed to be a valuable additional package, a longer term commitment from yourself to take on the role of maintainer for the package. It would be good to have that commitment in this covering note.
Regards,
Adolf.
On 06/05/2021 21:46, Holger Sunke wrote:
These patches add the new package node_exporter as discussed in the form thread: https://community.ipfire.org/t/please-add-prometheus-exporter/3555
GO language is required to compile node_exporter. In order to compile node_exporter for i586 arch, "go" package supported architecture must be extended for this. You'll likely want to download packages and adjust DL_FROM variables in "go" and "node_exporter" LFS scripts.
Holger Sunke (2): Added i586/386 support for GO language required for node_exporter. Added new node_exporter package.
config/rootfiles/packages/node_exporter | 3 + lfs/Config | 4 + lfs/go | 6 +- lfs/node_exporter | 88 +++++++++++++++++++ make.sh | 1 + src/paks/node_exporter/install.sh | 31 +++++++ src/paks/node_exporter/uninstall.sh | 30 +++++++ src/paks/node_exporter/update.sh | 27 ++++++ ..._exporter-configurable-initd-options.patch | 48 ++++++++++ 9 files changed, 235 insertions(+), 3 deletions(-) create mode 100644 config/rootfiles/packages/node_exporter create mode 100644 lfs/node_exporter create mode 100644 src/paks/node_exporter/install.sh create mode 100644 src/paks/node_exporter/uninstall.sh create mode 100644 src/paks/node_exporter/update.sh create mode 100644 src/patches/node_exporter-configurable-initd-options.patch