dns = {
commands = {
check_dns = "$USER1$/check_dns -H $ARG1$ -s $HOSTADDRESS$ $ARG2$";
+ check_dns_soa = "$USER2$/check_dns_soa -H $ARG1$ -z $ARG2$ -M $ARG3$";
+ check_dnssec = "$USER2$/check_dnssec -z $ARG1$";
check_external_dns = "$USER1$/check_dns -H $ARG2$ -s $ARG1$ $ARG3$";
};
+ chunk = let
+ soa_plugin = pkgs.fetchurl {
+ name = "check_dns_soa";
+ url = "https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=1429&cf_id=24";
+ sha256 = "sha256-Yy4XO19Fb7WdHZZmhUfyyAGBnxJyFWwc7U3HiWyE8wc=";
+ };
+ in ''
+ cp ${./plugins}/check_dnssec $out/
+ patchShebangs $out/check_dnssec
+ wrapProgram $out/check_dnssec --prefix PATH : ${lib.makeBinPath [
+ pkgs.bind.dnsutils pkgs.gnugrep pkgs.gawk pkgs.which pkgs.coreutils
+ ]}
+
+ cp ${soa_plugin} $out/check_dns_soa
+ chmod +xw $out/check_dns_soa
+ patchShebangs $out/check_dns_soa
+ sed -i -e 's/^use utils qw.*$/my %ERRORS = ("OK" => 0, "WARNING" => 1, "CRITICAL" => 2, "UNKNOWN" => 3);my $TIMEOUT = 10;/' -e '/^use lib /d' $out/check_dns_soa
+ wrapProgram $out/check_dns_soa --prefix PERL5LIB : ${pkgs.perlPackages.makePerlPath [
+ pkgs.perlPackages.NetDNS
+ ]}
+ '';
};
mdadm = {
commands = {
]}
'';
};
+ smartctl = {
+ commands = {
+ check_smartctl = "$USER2$/check_smartctl -i auto -d $ARG1$";
+ };
+ chunk = let
+ smartPlugin = pkgs.fetchurl {
+ url = "https://www.claudiokuenzler.com/monitoring-plugins/check_smart.pl";
+ sha256 = "sha256-gxGkzyycUl+I3WziKhOnZSoQjpqbPqjbunfUQxmeb7w=";
+ };
+ in ''
+ cp ${smartPlugin} $out/check_smartctl
+ chmod +x $out/check_smartctl
+ patchShebangs $out
+ substituteInPlace $out/check_smartctl --replace "/usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/sbin" "${pkgs.smartmontools}/bin"
+ substituteInPlace $out/check_smartctl --replace "sudo" "${sudo}"
+ '';
+
+ sudo = _: {
+ commands = [
+ { command = "${pkgs.smartmontools}/bin/smartctl *"; options = [ "NOPASSWD" ]; }
+ ];
+ runAs = "root";
+ };
+ };
mysql = {
commands = {
check_mysql_replication = "${sudo} -u mysql $USER2$/check_mysql_replication \"$ARG1$\" \"$ARG2$\"";