Well only because I did not found Prometheus anywhere here, I add the request for a Prometheus Export for ipfire.org firewalls, basically it*s a JSON webservice listening on a port (default 9100) with a scraper before (how to develop).
P.S. No this is not an promoting ad for Prometheus. I am just using it for my own servers and would be happy to include my ipfire.org firewalls somehow.
P.S.S. I would contribute the development with a small bounty, maybe we find some more conributors?
This would be really excellent. Weâre doing all of our monitoring with alerting in Prometheus / Grafana (especially in light of the recent SolarWinds debacle) and IPFire will need to confirm to that model eventually as well.
This link gives information on how to do this. Initially this can be done as a local add-on. Once the add-on has been proved to work successfully then a patch can be provided into the development mailing list following this link.
Without someone being willing to take this package up then I doubt it will get done.
The core developers are focussing on the core programs in IPFire and there are a lot of things being worked on and only a small group of core developers.
There are already several monitoring add-ons in IPFire - Icinga, Monit, Nagios, Zabbix Agent and Observium Agent.
as a first step Iâd like to test the prometheus node-exporter locally on my ipfire.
I managed to compile it on Ubuntu Focal (current LTS) and I set up an ipfire build environment.
As node-exporter requires go and a go-compiler to build, I guess next step is to include these into the ipfire build system.
How do I add these to the toolchain, or is it enough to have it present within the Ubuntu host OS?
Thatâs true, I have placed my script at the last position of the buildipfire() function, but I keep getting âgo: command not foundâ errors and a subsequent build failure:
+ cd /usr/src/lfs
+ make -f node_exporter LFS_BASEDIR=/usr/src install
====================================== Installing node_exporter-1.1.2 ...
Install started; saving file list to /usr/src/lsalr ...
cd /usr/src/node_exporter-1.1.2 && make build -j17
make[1]: Entering directory '/usr/src/node_exporter-1.1.2'
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
make[1]: go: Command not found
curl -s -L https://github.com/prometheus/promu/releases/download/v0.7.0/promu-0.7.0.-.tar.gz | tar -xvzf - -C /tmp/tmp.JrMCbAvlo9
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
make[1]: *** [Makefile.common:265: /bin/promu] Error 2
make[1]: Leaving directory '/usr/src/node_exporter-1.1.2'
make: *** [node_exporter:79: /usr/src/log/node_exporter-1.1.2] Error 2
downloadsrc succeeds and MD5 matches, but the error is still the same. It failes while actually processing a Makefile from within the node_exporter package.
Only suggestion I have then is that you go into an IPFire build shell and run the commands and see what exactly is not working
./make.sh shell
This will start a chrooted shell in the IPFire build environment
cd /usr/src
This puts you in the same place for building as the lfs script would. Then run the tar command
tar zxf /build/cache/node_exporter-1.1.2.tar.gz
Change into the extracted source directory and run the make command from the lfs
cd node_exporter-1.1.2
make build -j17
When you get the error, all the files in the src directory will still be there so you can check what it is looking for and what is missing.
You can also compare what is happening in the shell compared to what happened when you built it on Ubuntu. Hopefully the error messages give more guidance on what is not working.
Brining this thread alive again as I have a different way to solve this. âprometheus node-exporterâ simply gives you system stats. SNMP has been the standard for the monitoring of network-connected devices for many years and is supported by IPFire (through packfire, netsnmp). Simply install that on ipFire, then use a SNMP collector to get the information into Prometheus.
I personally use Grafana, with InfluxDB, and Telegraf as the collector. For Prometheus I believe SNMP_Exporter is the package youâll need. (Install that on the prometheus box).
Here is example of Grafana using output from IPFires netsnmp.
Note:-
S.M.A.R.T Disk & Internet speed information are not handled by SNMP, I gather that information in a different manor.
There is a lot more information available over SNMP that not displayed.