Message ID | 20210506194616.2972714-1-holger.sunke@posteo.de |
---|---|
Headers |
Return-Path: <development-bounces@lists.ipfire.org> Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4FbkcC5N2Dz44RT for <patchwork@web04.haj.ipfire.org>; Thu, 6 May 2021 19:46:51 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4Fbkc93TYDz2BD; Thu, 6 May 2021 19:46:49 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4Fbkc90Llhz2xmx; Thu, 6 May 2021 19:46:49 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4Fbkc752vkz2xCN for <development@lists.ipfire.org>; Thu, 6 May 2021 19:46:47 +0000 (UTC) Received: from mout01.posteo.de (mout01.posteo.de [185.67.36.65]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPS id 4Fbkc662tTzjb for <development@lists.ipfire.org>; Thu, 6 May 2021 19:46:46 +0000 (UTC) Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id CE23B240028 for <development@lists.ipfire.org>; Thu, 6 May 2021 21:46:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1620330405; bh=11RVMKWdrVp9EJdfBvs5NeXFgI0d6JOMJr5TMBv4kV4=; h=From:To:Cc:Subject:Date:From; b=OCX02mG7Z2rnVznwAorYBjy85RJf2tx8ND6sOx1e/GZzNa+fxVD9mqryUlkdtw1vC 5A7UJThc0iFPOU4yM0rmwqdD1xYm6hiy+4OBD7b/HG8N+p51dyDbTAwEG6MzWlPng/ dymlYGH9DbClwAQ9WaOXVMJpXnxSq9jnTEaoJEyPfWPLPX3mP7CviuSB23zvegH2/7 o1E4nMq7FyHIGpA1CmWW2l6sqgD10TbSxH45DduGxi7zmo87hhJDzQnBFer3O+xw1W 2rw/xImMWJfZcn+jer0kX2/tW55TRwe9QJWZ/VIXdefrJ5+Vt8zAMYQSSPCCipBcoR duwN7tjYKiqLA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Fbkc502Tyz9rxd; Thu, 6 May 2021 21:46:44 +0200 (CEST) From: Holger Sunke <holger.sunke@posteo.de> To: development@lists.ipfire.org Subject: [PATCH 0/2] Added new Package node_exporter Date: Thu, 6 May 2021 19:46:14 +0000 Message-Id: <20210506194616.2972714-1-holger.sunke@posteo.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Authentication-Results: i=1; mail01.ipfire.org; dkim=pass header.d=posteo.de header.s=2017 header.b=OCX02mG7; dmarc=pass (policy=none) header.from=posteo.de; spf=pass (mail01.ipfire.org: domain of holger.sunke@posteo.de designates 185.67.36.65 as permitted sender) smtp.mailfrom=holger.sunke@posteo.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.ipfire.org; s=202003rsa; t=1620330406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:dkim-signature; bh=shu/RQ4V9mcbrlama7TJr6nNUnqtqdSkEVPQ0lz6+z0=; b=Oe4C7CNQNuvdvQi/lPo7wRLr2evCdebVQzV0qKt25zDoU6qOprv9VdgD+N25KPTCmH9h90 mSVokUmzzVUlVCHl6MB4JOMqMf+DiIGoodwrkQ71sHFCjwrUlyir/df8P3nzREFuQsfr4J XUCcy25onazqCpetwAeZXcv3N7Vc8g7otCbGKq6Bzhu97ayHrazaTx/x+dtX49rxfOLl38 D6gCJf9qSfADwlY275rOYPrUy2/Xerb/Y2mi4g6DLpJmFMEW4fUQd39rDXBwjDTBdb/3Bk zlW1WKGvBWzDVkpHocFyTccopid5qg1MuB1vsNPgtZ08hbYi0m4g9YXLMTfbFA== ARC-Seal: i=1; s=202003rsa; d=lists.ipfire.org; t=1620330406; a=rsa-sha256; cv=none; b=tp2rgDg3cBJSN5XaaWjmD9kq6t8M6KC8GZcy78B+w3L9HktpLc2ey5VeAGPYmdhkhbIdbN QxppEuNX2KrD80j1LJdL5jlKn6aqt8pJWDE2Btes67L+cJ3BZikNN6Lt6tkM/dsUkDBEaY u61B3G2W9ZmRUloZxnEfSGeEGmsEqFnEc/TZ/YSAFMgwDmK5cZLah4/wx0c2ix1HPvdHc4 1FR+Zfk+awzcZbIFQqodbb2NnqvD1gVKKGo5q00yul6IuGGuHjqBHN0lk4NY5BY+Wog/9b dhLhYp5Mc/GiwalxkAyhQyAbtIlRpL/kW7kdO9kNHvCTXc8VpZIy7M0k4jlkrg== Authentication-Results: mail01.ipfire.org; dkim=pass header.d=posteo.de header.s=2017 header.b=OCX02mG7; dmarc=pass (policy=none) header.from=posteo.de; spf=pass (mail01.ipfire.org: domain of holger.sunke@posteo.de designates 185.67.36.65 as permitted sender) smtp.mailfrom=holger.sunke@posteo.de X-Rspamd-Server: mail01.haj.ipfire.org X-Spamd-Result: default: False [-0.72 / 11.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:185.67.36.0/23:c]; R_MISSING_CHARSET(2.50)[]; RWL_MAILSPIKE_GOOD(0.00)[185.67.36.65:from]; IP_REPUTATION_HAM(-0.01)[asn: 8495(0.00), country: DE(-0.01), ip: 185.67.36.65(0.00)]; BROKEN_CONTENT_TYPE(1.50)[]; RCVD_DKIM_ARC_DNSWL_MED(-0.50)[]; ARC_SIGNED(0.00)[lists.ipfire.org:s=202003rsa:i=1]; RCVD_COUNT_THREE(0.00)[3]; RCVD_IN_DNSWL_MED(-0.20)[185.67.36.65:from]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[posteo.de,none]; MX_GOOD(-0.01)[]; DKIM_TRACE(0.00)[posteo.de:+]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:8495, ipnet:185.67.36.0/23, country:DE]; BAYES_HAM(-3.00)[99.99%]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[posteo.de:s=2017]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[development@lists.ipfire.org]; DWL_DNSWL_LOW(-1.00)[posteo.de:dkim]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MID_CONTAINS_FROM(1.00)[]; RCVD_TLS_ALL(0.00)[] X-Rspamd-Queue-Id: 4Fbkc662tTzjb X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk <development.lists.ipfire.org> List-Unsubscribe: <https://lists.ipfire.org/mailman/options/development>, <mailto:development-request@lists.ipfire.org?subject=unsubscribe> List-Archive: <http://lists.ipfire.org/pipermail/development/> List-Post: <mailto:development@lists.ipfire.org> List-Help: <mailto:development-request@lists.ipfire.org?subject=help> List-Subscribe: <https://lists.ipfire.org/mailman/listinfo/development>, <mailto:development-request@lists.ipfire.org?subject=subscribe> Errors-To: development-bounces@lists.ipfire.org Sender: "Development" <development-bounces@lists.ipfire.org> |
Series |
Added new Package node_exporter
|
|
Message
Holger Sunke
May 6, 2021, 7:46 p.m. UTC
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
Comments
Hi Holger, Welcome to the development team and thanks for your patch submission. I think that there is some additional information required in this covering note. I think that it would be good to have some additional information about the use case for node_exporter compared to icinga, monit, zabbix_agentd, nagios, etc that already exist as addons in IPFire. What is it that node_exporter brings that cannot be accomplished by those other packages and warrants it being added to the list. Historically many addons have been launched and then shortly afterwards the person who introduced the addon has stopped supporting the maintenance of it with updates, fixes etc. Typically then the package has ended up getting out of date. 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 >
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://[firewall]: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 # HELP go_memstats_alloc_bytes_total Total number of bytes allocated, 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, allowing applications like Grafana simply aggregating and visualizing 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. These would be simply written regularly into a text file (ending with .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 >>
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://[firewall]: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 > > > >