Replace telegraf with node exporter

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2025-04-19 17:57:34 +03:00
parent 3f1531fbd1
commit 1a445ab6fd
37 changed files with 3099 additions and 421 deletions

View File

@@ -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"

View 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" = { };
};
};
}

View 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

View 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" = { };
};
};
}

View 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" = { };
};
};
}

View 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

View 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" = { };
};
};
}

View File

@@ -14,5 +14,8 @@ pkgs.dockerTools.buildImage {
ExposedPorts = {
"9090/tcp" = { };
};
Volumes = {
"/var/lib/prometheus" = { };
};
};
}