nix/pkgs: add prometheus-snmp-config
This commit is contained in:
parent
a763c85e3d
commit
a71f4a47f9
3 changed files with 96 additions and 0 deletions
|
@ -25,5 +25,6 @@
|
||||||
hp-rom = import ./hp-rom.nix args;
|
hp-rom = import ./hp-rom.nix args;
|
||||||
enigma = import ./enigma.nix args;
|
enigma = import ./enigma.nix args;
|
||||||
alertmanager-discord = pkgs.callPackage ./alertmanager-discord.nix {};
|
alertmanager-discord = pkgs.callPackage ./alertmanager-discord.nix {};
|
||||||
|
prometheus-snmp-config = import ./prometheus-snmp-config args;
|
||||||
} // (import ./heptapod-runner.nix args)
|
} // (import ./heptapod-runner.nix args)
|
||||||
// (import ./lightspeed args)
|
// (import ./lightspeed args)
|
||||||
|
|
84
nix/pkgs/prometheus-snmp-config/default.nix
Normal file
84
nix/pkgs/prometheus-snmp-config/default.nix
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
{ depot, pkgs, ... }:
|
||||||
|
let
|
||||||
|
inherit (pkgs) prometheus-snmp-exporter curl cacert unzip p7zip;
|
||||||
|
|
||||||
|
hpMibs = pkgs.stdenvNoCC.mkDerivation rec {
|
||||||
|
pname = "hp-mibs";
|
||||||
|
version = "11.50";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "https://downloads.hpe.com/pub/softlib2/software1/pubsw-linux/p1580676047/v188074/upd11.50mib.tar.gz";
|
||||||
|
hash = "sha256:0jxxcirbvhlqrflj0j2vzddqaq7wl7v3g7xi0gcjmxlj6rfkk7i9";
|
||||||
|
};
|
||||||
|
sourceRoot = ".";
|
||||||
|
|
||||||
|
buildPhase = ":";
|
||||||
|
installPhase = ''
|
||||||
|
mkdir $out
|
||||||
|
cp $(ls | grep -i '\.mib$') $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
mibsDrv = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
pname = "prometheus-snmp-mibs";
|
||||||
|
version = "lukegb-${prometheus-snmp-exporter.version}";
|
||||||
|
|
||||||
|
outputHashMode = "recursive";
|
||||||
|
outputHash = "sha256:164zv3cvxj9i1parww9nx8a7xihiklwyn7635r0xqdfj365g2fdh";
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
curl
|
||||||
|
p7zip
|
||||||
|
prometheus-snmp-exporter
|
||||||
|
unzip
|
||||||
|
];
|
||||||
|
passthru.hp = hpMibs;
|
||||||
|
|
||||||
|
CURL_OPTS = "--retry 3 --retry-delay 3 --compressed --location --fail";
|
||||||
|
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||||
|
|
||||||
|
src = prometheus-snmp-exporter.src;
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
mkdir $NIX_BUILD_TOP/build
|
||||||
|
cp $src/generator/Makefile $NIX_BUILD_TOP/build/Makefile
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
pushd $NIX_BUILD_TOP/build
|
||||||
|
make CURL_OPTS="$CURL_OPTS"
|
||||||
|
|
||||||
|
# Additional mibs...
|
||||||
|
cp ${hpMibs}/cpqhost.mib ./mibs/
|
||||||
|
awk 'BEGIN { p=1 } /INDEX\s+{.+cpqRackServerBladeRack,/ { print " INDEX { cpqRackServerBladeIndex }"; p=0 } /}/ { if (p==0) { p=2 } } { if (p==1) { print } if (p==2) { p=1 } }' ${hpMibs}/cpqrack.mib > ./mibs/cpqrack.mib
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
cp -R $NIX_BUILD_TOP/build/mibs $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
pname = "prometheus-snmp-config";
|
||||||
|
version = "lukegb";
|
||||||
|
|
||||||
|
src = prometheus-snmp-exporter.src;
|
||||||
|
passthru.mibs = mibsDrv;
|
||||||
|
|
||||||
|
buildInputs = [ prometheus-snmp-exporter ];
|
||||||
|
MIBDIRS = mibsDrv;
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
mkdir $NIX_BUILD_TOP/build
|
||||||
|
cat $src/generator/generator.yml ${./generator.yml} > $NIX_BUILD_TOP/build/generator.yml
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
pushd $NIX_BUILD_TOP/build
|
||||||
|
generator generate
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
cp $NIX_BUILD_TOP/build/snmp.yml $out
|
||||||
|
'';
|
||||||
|
}
|
11
nix/pkgs/prometheus-snmp-config/generator.yml
Normal file
11
nix/pkgs/prometheus-snmp-config/generator.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# This isn't really a proper YAML file; it is just appended to the generator.yml from upstream.
|
||||||
|
|
||||||
|
hpe:
|
||||||
|
walk:
|
||||||
|
- sysUpTime
|
||||||
|
- cpqRackPowerSupplyTable
|
||||||
|
- cpqRackServerBladeTable
|
||||||
|
lookups:
|
||||||
|
- source_indexes:
|
||||||
|
- cpqRackServerBladeIndex
|
||||||
|
lookup: cpqRackServerBladeName
|
Loading…
Reference in a new issue