Replace telegraf with node exporter
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -16,6 +16,16 @@
|
||||
docker-ntfy = import ./docker/ntfy { inherit pkgs; };
|
||||
docker-postgresql = import ./docker/postgresql { inherit pkgs; };
|
||||
docker-prometheus = import ./docker/prometheus { inherit pkgs; };
|
||||
docker-prometheus-fail2ban-exporter = import ./docker/prometheus-fail2ban-exporter {
|
||||
inherit pkgs inputs system;
|
||||
};
|
||||
docker-prometheus-node-exporter = import ./docker/prometheus-node-exporter { inherit pkgs; };
|
||||
docker-prometheus-podman-exporter = import ./docker/prometheus-podman-exporter {
|
||||
inherit pkgs inputs system;
|
||||
};
|
||||
docker-prometheus-smartctl-exporter = import ./docker/prometheus-smartctl-exporter {
|
||||
inherit pkgs;
|
||||
};
|
||||
docker-redis = import ./docker/redis { inherit pkgs; };
|
||||
docker-traefik = import ./docker/traefik { inherit pkgs; };
|
||||
docker-whoami = import ./docker/whoami { inherit pkgs; };
|
||||
@@ -38,6 +48,9 @@
|
||||
|
||||
obsidian-theme-minimal = import ./obsidian/themes/minimal { inherit pkgs; };
|
||||
|
||||
prometheus-fail2ban-exporter = import ./prometheus-fail2ban-exporter { inherit pkgs; };
|
||||
prometheus-podman-exporter = import ./prometheus-podman-exporter { inherit pkgs; };
|
||||
|
||||
ssh-known-hosts-github = import ./ssh/known-hosts/github { inherit pkgs inputs system; };
|
||||
|
||||
# SAS
|
||||
|
@@ -14,7 +14,7 @@ mkfifo "$LOG_PIPE"
|
||||
|
||||
(
|
||||
while IFS= read -r line; do
|
||||
if echo "$line" | grep -qE "ERROR|FATAL|PANIC"; then
|
||||
if echo "$line" | grep -qEi "ERROR|FATAL|PANIC"; then
|
||||
echo "$line" >&2
|
||||
else
|
||||
echo "$line"
|
||||
|
36
packages/docker/prometheus-fail2ban-exporter/default.nix
Normal file
36
packages/docker/prometheus-fail2ban-exporter/default.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
|
||||
entrypoint = pkgs.writeTextFile {
|
||||
name = "entrypoint";
|
||||
executable = true;
|
||||
destination = "/bin/entrypoint";
|
||||
text = builtins.readFile ./entrypoint.sh;
|
||||
};
|
||||
in
|
||||
pkgs.dockerTools.buildImage {
|
||||
name = "prometheus-fail2ban-exporter";
|
||||
fromImage = import ../base { inherit pkgs; };
|
||||
|
||||
copyToRoot = pkgs.buildEnv {
|
||||
name = "root";
|
||||
paths = [
|
||||
entrypoint
|
||||
selfPkgs.prometheus-fail2ban-exporter
|
||||
];
|
||||
pathsToLink = [ "/bin" ];
|
||||
};
|
||||
|
||||
config = {
|
||||
Entrypoint = [ "/bin/entrypoint" ];
|
||||
ExposedPorts = {
|
||||
"9191/tcp" = { };
|
||||
};
|
||||
};
|
||||
}
|
23
packages/docker/prometheus-fail2ban-exporter/entrypoint.sh
Normal file
23
packages/docker/prometheus-fail2ban-exporter/entrypoint.sh
Normal file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
|
||||
mkdir -p /tmp
|
||||
LOG_PIPE="$(mktemp -u)"
|
||||
mkfifo "$LOG_PIPE"
|
||||
|
||||
(
|
||||
while IFS= read -r line; do
|
||||
if echo "$line" | grep -qEi "WARN|ERROR|FATAL"; then
|
||||
echo "$line" >&2
|
||||
else
|
||||
echo "$line"
|
||||
fi
|
||||
done < "$LOG_PIPE"
|
||||
) &
|
||||
LOG_PID=$!
|
||||
|
||||
trap 'kill $LOG_PID' EXIT
|
||||
|
||||
exec /bin/prometheus-fail2ban-exporter "$@" > "$LOG_PIPE" 2>&1
|
19
packages/docker/prometheus-node-exporter/default.nix
Normal file
19
packages/docker/prometheus-node-exporter/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ pkgs, ... }:
|
||||
pkgs.dockerTools.buildImage {
|
||||
name = "prometheus-node-exporter";
|
||||
fromImage = import ../base { inherit pkgs; };
|
||||
|
||||
copyToRoot = pkgs.buildEnv {
|
||||
name = "root";
|
||||
paths = with pkgs; [ prometheus-node-exporter ];
|
||||
pathsToLink = [ "/bin" ];
|
||||
};
|
||||
|
||||
config = {
|
||||
Entrypoint = [ "/bin/node_exporter" ];
|
||||
Cmd = [ "--log.level=warn" ];
|
||||
ExposedPorts = {
|
||||
"9100/tcp" = { };
|
||||
};
|
||||
};
|
||||
}
|
40
packages/docker/prometheus-podman-exporter/default.nix
Normal file
40
packages/docker/prometheus-podman-exporter/default.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
|
||||
entrypoint = pkgs.writeTextFile {
|
||||
name = "entrypoint";
|
||||
executable = true;
|
||||
destination = "/bin/entrypoint";
|
||||
text = builtins.readFile ./entrypoint.sh;
|
||||
};
|
||||
in
|
||||
pkgs.dockerTools.buildImage {
|
||||
name = "prometheus-podman-exporter";
|
||||
fromImage = import ../base { inherit pkgs; };
|
||||
|
||||
copyToRoot = pkgs.buildEnv {
|
||||
name = "root";
|
||||
paths = [
|
||||
entrypoint
|
||||
selfPkgs.prometheus-podman-exporter
|
||||
];
|
||||
pathsToLink = [ "/bin" ];
|
||||
};
|
||||
|
||||
runAsRoot = ''
|
||||
${pkgs.dockerTools.shadowSetup}
|
||||
'';
|
||||
|
||||
config = {
|
||||
Entrypoint = [ "/bin/entrypoint" ];
|
||||
ExposedPorts = {
|
||||
"9882/tcp" = { };
|
||||
};
|
||||
};
|
||||
}
|
23
packages/docker/prometheus-podman-exporter/entrypoint.sh
Normal file
23
packages/docker/prometheus-podman-exporter/entrypoint.sh
Normal file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
|
||||
mkdir -p /tmp
|
||||
LOG_PIPE="$(mktemp -u)"
|
||||
mkfifo "$LOG_PIPE"
|
||||
|
||||
(
|
||||
while IFS= read -r line; do
|
||||
if echo "$line" | grep -qEi "WARN|ERROR|FATAL"; then
|
||||
echo "$line" >&2
|
||||
else
|
||||
echo "$line"
|
||||
fi
|
||||
done < "$LOG_PIPE"
|
||||
) &
|
||||
LOG_PID=$!
|
||||
|
||||
trap 'kill $LOG_PID' EXIT
|
||||
|
||||
exec /bin/prometheus-podman-exporter "$@" > "$LOG_PIPE" 2>&1
|
19
packages/docker/prometheus-smartctl-exporter/default.nix
Normal file
19
packages/docker/prometheus-smartctl-exporter/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ pkgs, ... }:
|
||||
pkgs.dockerTools.buildImage {
|
||||
name = "prometheus-smartctl-exporter";
|
||||
fromImage = import ../base { inherit pkgs; };
|
||||
|
||||
copyToRoot = pkgs.buildEnv {
|
||||
name = "root";
|
||||
paths = with pkgs; [ prometheus-smartctl-exporter ];
|
||||
pathsToLink = [ "/bin" ];
|
||||
};
|
||||
|
||||
config = {
|
||||
Entrypoint = [ "/bin/smartctl_exporter" ];
|
||||
Cmd = [ "--log.level=warn" ];
|
||||
ExposedPorts = {
|
||||
"9633/tcp" = { };
|
||||
};
|
||||
};
|
||||
}
|
@@ -14,5 +14,8 @@ pkgs.dockerTools.buildImage {
|
||||
ExposedPorts = {
|
||||
"9090/tcp" = { };
|
||||
};
|
||||
Volumes = {
|
||||
"/var/lib/prometheus" = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
31
packages/prometheus-fail2ban-exporter/default.nix
Normal file
31
packages/prometheus-fail2ban-exporter/default.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{ pkgs, ... }:
|
||||
# AUTO-UPDATE: nix-update --flake prometheus-fail2ban-exporter
|
||||
pkgs.buildGoModule rec {
|
||||
pname = "prometheus-fail2ban-exporter";
|
||||
version = "0.10.3";
|
||||
|
||||
src = pkgs.fetchFromGitLab {
|
||||
owner = "hctrdev";
|
||||
repo = "fail2ban-prometheus-exporter";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-CyYGY6SovnvgExB22G+LEKRDRzbDZWhWUjctJMkprYs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-ogdRXbS1EG402qlnj5SfuI/1P/Pi0+xwJrJsc6vwdds=";
|
||||
|
||||
env.CGO_ENABLED = 0;
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X main.version=${version}"
|
||||
"-X main.commit=${version}"
|
||||
"-X main.date=1970-01-01T00:00:00Z"
|
||||
"-X main.builtBy=NixOS"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -r "$GOPATH/bin/fail2ban-prometheus-exporter" $out/bin/prometheus-fail2ban-exporter
|
||||
'';
|
||||
}
|
51
packages/prometheus-podman-exporter/default.nix
Normal file
51
packages/prometheus-podman-exporter/default.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{ pkgs, ... }:
|
||||
# AUTO-UPDATE: nix-update --flake prometheus-podman-exporter
|
||||
pkgs.buildGoModule rec {
|
||||
pname = "prometheus-podman-exporter";
|
||||
version = "1.15.0";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "prometheus-podman-exporter";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-eXuLiJx0WsPlPAN5ZwQIp89thXiNS6AGE9p3aqjD+K8=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
makeWrapper
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
btrfs-progs
|
||||
gpgme
|
||||
];
|
||||
|
||||
tags = [
|
||||
"containers_image_openpgp"
|
||||
"remote"
|
||||
];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/containers/prometheus-podman-exporter/cmd.buildVersion=${version}"
|
||||
"-X github.com/containers/prometheus-podman-exporter/cmd.buildRevision=${builtins.head (pkgs.lib.strings.splitString "." version)}"
|
||||
"-X github.com/containers/prometheus-podman-exporter/cmd.buildBranch=HEAD"
|
||||
];
|
||||
|
||||
# Don't run tests because they require a running podman daemon
|
||||
doCheck = false;
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/prometheus-podman-exporter \
|
||||
--run '
|
||||
: "''${CONTAINER_HOST:=}"
|
||||
if [ -z "$CONTAINER_HOST" ]; then
|
||||
export CONTAINER_HOST=$([ "$UID" -eq 0 ] && echo "unix:///run/podman/podman.sock" || echo "unix://''${XDG_RUNTIME_DIR:-/run/user/$UID}/podman/podman.sock")
|
||||
fi
|
||||
'
|
||||
'';
|
||||
}
|
Reference in New Issue
Block a user