about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/monitoring/nagios
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/monitoring/nagios')
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/default.nix43
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/nagios.patch23
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix36
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix36
4 files changed, 138 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/default.nix b/nixpkgs/pkgs/servers/monitoring/nagios/default.nix
new file mode 100644
index 000000000000..a58ec2bf7b29
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchurl, perl, php, gd, libpng, zlib, unzip, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "nagios";
+  version = "4.4.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/nagios/nagios-4.x/${pname}-${version}/${pname}-${version}.tar.gz";
+    sha256 = "1x5hb97zbvkm73q53ydp1gwj8nnznm72q9c4rm6ny7phr995l3db";
+  };
+
+  patches = [ ./nagios.patch ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ php perl gd libpng zlib ];
+
+  configureFlags = [ "--localstatedir=/var/lib/nagios" ];
+  buildFlags = [ "all" ];
+  CFLAGS = "-ldl";
+
+  # Do not create /var directories
+  preInstall = ''
+    substituteInPlace Makefile --replace '$(MAKE) install-basic' ""
+  '';
+  installTargets = "install install-config";
+  postInstall = ''
+    # don't make default files use hardcoded paths to commands
+    sed -i 's@command_line *[^ ]*/\([^/]*\) @command_line \1 @'  $out/etc/objects/commands.cfg
+    sed -i 's@/usr/bin/@@g' $out/etc/objects/commands.cfg
+    sed -i 's@/bin/@@g' $out/etc/objects/commands.cfg
+  '';
+
+  passthru.tests = {
+    inherit (nixosTests) nagios;
+  };
+
+  meta = {
+    description = "A host, service and network monitoring program";
+    homepage    = "https://www.nagios.org/";
+    license     = lib.licenses.gpl2;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ immae thoughtpolice relrod ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/nagios.patch b/nixpkgs/pkgs/servers/monitoring/nagios/nagios.patch
new file mode 100644
index 000000000000..cec4c4942b53
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/nagios.patch
@@ -0,0 +1,23 @@
+diff -ruN nagios-4.0.7.orig/configure nagios-4.0.7/configure
+--- nagios-4.0.7.orig/configure	2014-06-03 10:41:42.000000000 -0400
++++ nagios-4.0.7/configure	2014-06-12 00:30:17.516468583 -0400
+@@ -6014,7 +6014,8 @@
+ #define DEFAULT_NAGIOS_GROUP "$nagios_grp"
+ _ACEOF
+ 
+-INSTALL_OPTS="-o $nagios_user -g $nagios_grp"
++#INSTALL_OPTS="-o $nagios_user -g $nagios_grp"
++INSTALL_OPTS=""
+ 
+ 
+ 
+@@ -6035,7 +6036,8 @@
+ 
+ 
+ 
+-COMMAND_OPTS="-o $command_user -g $command_grp"
++#COMMAND_OPTS="-o $command_user -g $command_grp"
++COMMAND_OPTS=""
+ 
+ 
+ MAIL_PROG=no
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
new file mode 100644
index 000000000000..eba2347333ab
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, file, openssl, makeWrapper, which, curl, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  pname = "check_ssl_cert";
+  version = "1.80.0";
+
+  src = fetchFromGitHub {
+    owner = "matteocorti";
+    repo = "check_ssl_cert";
+    rev = "v${version}";
+    sha256 = "1jkwii45hynil1jail9gmz4bak066rdi8zfcczicjsa6npbz50w4";
+  };
+
+  patches = [
+    # https://github.com/matteocorti/check_ssl_cert/pull/114
+    (fetchpatch {
+      url = "https://github.com/matteocorti/check_ssl_cert/commit/2b7aad583d507a70605dd44d918739a65b267bfd.patch";
+      sha256 = "1jk872jgm6k3qc1ks1h3v6p804spjlnxcj2wc8v0hkmwfwiwd2k4";
+    })
+  ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  makeFlags = [ "DESTDIR=$(out)/bin" "MANDIR=$(out)/share/man" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/check_ssl_cert \
+      --prefix PATH : "${lib.makeBinPath [ openssl file which curl ]}"
+  '';
+
+  meta = with lib; {
+    description = "A Nagios plugin to check the CA and validity of an X.509 certificate";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix
new file mode 100644
index 000000000000..06cd0cf9b2d6
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub, python3Packages, lib }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "check_systemd";
+  version = "2.2.1";
+
+  src = fetchFromGitHub {
+    owner = "Josef-Friedrich";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04r14dhqzrdndn235dvr6afy4s4g4asynsgvj99cmyq55nah4asn";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ nagiosplugin ];
+
+  postInstall = ''
+    # check_systemd is only a broken stub calling check_systemd.py
+    mv $out/bin/check_systemd{.py,}
+  '';
+
+  # the test scripts run ./check_systemd.py and check_systemd. Patch to
+  # the installed, patchShebanged executable in $out/bin
+  preCheck = ''
+    find test -name "*.py" -execdir sed -i "s@./check_systemd.py@$out/bin/check_systemd@" '{}' ";"
+    export PATH=$PATH:$out/bin
+  '';
+  checkInputs = [ python3Packages.pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Nagios / Icinga monitoring plugin to check systemd for failed units";
+    inherit (src.meta) homepage;
+    maintainers = with maintainers; [ symphorien ];
+    license = licenses.lgpl2Only;
+    platforms = platforms.linux;
+  };
+}